; LLVM IR from tensorflow/tflite-micro :: tensorflow/lite/micro/kernels (quantization_util_test)

; 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.tflite::QuantizationParams" = type { i32, double }
%class.anon = type { i8 }
%"struct.std::pair" = type { i32, i32 }

@_ZN10micro_test12tests_passedE = external dso_local global i32, align 4
@_ZN10micro_test12tests_failedE = external dso_local global i32, align 4
@_ZN10micro_test16is_test_completeE = external dso_local global i8, align 1
@_ZN10micro_test13did_test_failE = external dso_local global i8, align 1
@.str = external hidden unnamed_addr constant [38 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.weights = external hidden unnamed_addr constant [13 x double], align 16
@__const.main.expected_effective_scale_significand = external hidden unnamed_addr constant [13 x i32], align 16
@__const.main.expected_effective_scale_shift = external hidden unnamed_addr constant [13 x i32], align 16
@.str.119 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %"struct.tflite::QuantizationParams", align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca i32, align 4
  %15 = alloca %"struct.tflite::QuantizationParams", align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca %"struct.tflite::QuantizationParams", align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i8, align 1
  %31 = alloca i8, align 1
  %32 = alloca i32, align 4
  %33 = alloca %"struct.tflite::QuantizationParams", align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i8, align 1
  %40 = alloca i8, align 1
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i64, align 8
  %44 = alloca i32, align 4
  %45 = alloca i64, align 8
  %46 = alloca i8, align 1
  %47 = alloca i8, align 1
  %48 = alloca i64, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i8, align 1
  %52 = alloca i8, align 1
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i8, align 1
  %60 = alloca i8, align 1
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i8, align 1
  %68 = alloca i8, align 1
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i8, align 1
  %76 = alloca i8, align 1
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i8, align 1
  %84 = alloca i8, align 1
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i8, align 1
  %92 = alloca i8, align 1
  %93 = alloca i32, align 4
  %94 = alloca i64, align 8
  %95 = alloca i64, align 8
  %96 = alloca i64, align 8
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i8, align 1
  %100 = alloca i8, align 1
  %101 = alloca i32, align 4
  %102 = alloca i64, align 8
  %103 = alloca i64, align 8
  %104 = alloca i64, align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i8, align 1
  %108 = alloca i8, align 1
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i8, align 1
  %115 = alloca i8, align 1
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i8, align 1
  %120 = alloca i8, align 1
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca double, align 8
  %124 = alloca double, align 8
  %125 = alloca i32, align 4
  %126 = alloca i8, align 1
  %127 = alloca i8, align 1
  %128 = alloca double, align 8
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i8, align 1
  %132 = alloca i8, align 1
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i8, align 1
  %140 = alloca i8, align 1
  %141 = alloca i32, align 4
  %142 = alloca double, align 8
  %143 = alloca double, align 8
  %144 = alloca double, align 8
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i8, align 1
  %148 = alloca i8, align 1
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i8, align 1
  %156 = alloca i8, align 1
  %157 = alloca i32, align 4
  %158 = alloca double, align 8
  %159 = alloca double, align 8
  %160 = alloca double, align 8
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i8, align 1
  %164 = alloca i8, align 1
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i8, align 1
  %172 = alloca i8, align 1
  %173 = alloca i32, align 4
  %174 = alloca double, align 8
  %175 = alloca double, align 8
  %176 = alloca double, align 8
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i8, align 1
  %180 = alloca i8, align 1
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca double, align 8
  %184 = alloca double, align 8
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i8, align 1
  %188 = alloca i8, align 1
  %189 = alloca i32, align 4
  %190 = alloca double, align 8
  %191 = alloca double, align 8
  %192 = alloca double, align 8
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i8, align 1
  %196 = alloca i8, align 1
  %197 = alloca i32, align 4
  %198 = alloca double, align 8
  %199 = alloca i32, align 4
  %200 = alloca double, align 8
  %201 = alloca i8, align 1
  %202 = alloca i8, align 1
  %203 = alloca double, align 8
  %204 = alloca double, align 8
  %205 = alloca double, align 8
  %206 = alloca double, align 8
  %207 = alloca double, align 8
  %208 = alloca double, align 8
  %209 = alloca double, align 8
  %210 = alloca i32, align 4
  %211 = alloca i64, align 8
  %212 = alloca double, align 8
  %213 = alloca double, align 8
  %214 = alloca double, align 8
  %215 = alloca double, align 8
  %216 = alloca double, align 8
  %217 = alloca double, align 8
  %218 = alloca double, align 8
  %219 = alloca double, align 8
  %220 = alloca double, align 8
  %221 = alloca double, align 8
  %222 = alloca double, align 8
  %223 = alloca double, align 8
  %224 = alloca double, align 8
  %225 = alloca double, align 8
  %226 = alloca double, align 8
  %227 = alloca double, align 8
  %228 = alloca double, align 8
  %229 = alloca double, align 8
  %230 = alloca double, align 8
  %231 = alloca double, align 8
  %232 = alloca double, align 8
  %233 = alloca double, align 8
  %234 = alloca double, align 8
  %235 = alloca double, align 8
  %236 = alloca double, align 8
  %237 = alloca double, align 8
  %238 = alloca double, align 8
  %239 = alloca double, align 8
  %240 = alloca double, align 8
  %241 = alloca double, align 8
  %242 = alloca double, align 8
  %243 = alloca double, align 8
  %244 = alloca double, align 8
  %245 = alloca double, align 8
  %246 = alloca double, align 8
  %247 = alloca double, align 8
  %248 = alloca double, align 8
  %249 = alloca double, align 8
  %250 = alloca double, align 8
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca i8, align 1
  %254 = alloca i8, align 1
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i8, align 1
  %259 = alloca i8, align 1
  %260 = alloca i32, align 4
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca i8, align 1
  %264 = alloca i8, align 1
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i8, align 1
  %269 = alloca i8, align 1
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca i8, align 1
  %274 = alloca i8, align 1
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i8, align 1
  %279 = alloca i8, align 1
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca i8, align 1
  %284 = alloca i8, align 1
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca i32, align 4
  %288 = alloca i8, align 1
  %289 = alloca i8, align 1
  %290 = alloca i32, align 4
  %291 = alloca %class.anon, align 1
  %292 = alloca %"struct.std::pair", align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca i8, align 1
  %296 = alloca i8, align 1
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca i8, align 1
  %301 = alloca i8, align 1
  %302 = alloca i32, align 4
  %303 = alloca %"struct.std::pair", align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca i8, align 1
  %307 = alloca i8, align 1
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca i8, align 1
  %312 = alloca i8, align 1
  %313 = alloca i32, align 4
  %314 = alloca %"struct.std::pair", align 4
  %315 = alloca i32, align 4
  %316 = alloca i32, align 4
  %317 = alloca i8, align 1
  %318 = alloca i8, align 1
  %319 = alloca i32, align 4
  %320 = alloca i32, align 4
  %321 = alloca i32, align 4
  %322 = alloca i8, align 1
  %323 = alloca i8, align 1
  %324 = alloca i32, align 4
  %325 = alloca %"struct.std::pair", align 4
  %326 = alloca i32, align 4
  %327 = alloca i32, align 4
  %328 = alloca i8, align 1
  %329 = alloca i8, align 1
  %330 = alloca i32, align 4
  %331 = alloca i32, align 4
  %332 = alloca i32, align 4
  %333 = alloca i8, align 1
  %334 = alloca i8, align 1
  %335 = alloca i32, align 4
  %336 = alloca i32, align 4
  %337 = alloca i32, align 4
  %338 = alloca i8, align 1
  %339 = alloca i8, align 1
  %340 = alloca i32, align 4
  %341 = alloca i32, align 4
  %342 = alloca i32, align 4
  %343 = alloca i8, align 1
  %344 = alloca i8, align 1
  %345 = alloca i32, align 4
  %346 = alloca i32, align 4
  %347 = alloca i32, align 4
  %348 = alloca i8, align 1
  %349 = alloca i8, align 1
  %350 = alloca i32, align 4
  %351 = alloca i32, align 4
  %352 = alloca i32, align 4
  %353 = alloca i8, align 1
  %354 = alloca i8, align 1
  %355 = alloca i32, align 4
  %356 = alloca [13 x double], align 16
  %357 = alloca i32, align 4
  %358 = alloca [13 x i32], align 16
  %359 = alloca [13 x i32], align 16
  %360 = alloca [13 x i32], align 16
  %361 = alloca [13 x i32], align 16
  %362 = alloca i32, align 4
  %363 = alloca i32, align 4
  %364 = alloca i32, align 4
  %365 = alloca i8, align 1
  %366 = alloca i8, align 1
  %367 = alloca i32, align 4
  %368 = alloca i32, align 4
  %369 = alloca i32, align 4
  %370 = alloca i8, align 1
  %371 = alloca i8, align 1
  %372 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  store i32 0, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  store i32 0, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void @_ZN6tflite14InitializeTestEv()
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %373

373:                                              ; preds = %378, %2
  %374 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %375 = trunc i8 %374 to i1
  %376 = xor i1 %375, true
  br i1 %376, label %377, label %391

377:                                              ; preds = %373
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfaEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdaEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfsEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdsEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfiEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdiEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIflEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdlEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfhEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdhEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIftEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdtEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfjEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdjEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfmEEvv()
  call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdmEEvv()
  br label %378

378:                                              ; preds = %377
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %379 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc i8 %379 to i1
  %381 = zext i1 %380 to i64
  %382 = select i1 %380, i32 0, i32 1
  %383 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %384 = add nsw i32 %383, %382
  store i32 %384, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %385 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %386 = trunc i8 %385 to i1
  %387 = zext i1 %386 to i64
  %388 = select i1 %386, i32 1, i32 0
  %389 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %390 = add nsw i32 %389, %388
  store i32 %390, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %373, !llvm.loop !15

391:                                              ; preds = %373
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.1)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %392

392:                                              ; preds = %479, %391
  %393 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %394 = trunc i8 %393 to i1
  %395 = xor i1 %394, true
  br i1 %395, label %396, label %492

396:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #8
  %397 = call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef -1.000000e+01, double noundef 3.000000e+01)
  %398 = getelementptr inbounds { i32, double }, ptr %6, i32 0, i32 0
  %399 = extractvalue { i32, double } %397, 0
  store i32 %399, ptr %398, align 8
  %400 = getelementptr inbounds { i32, double }, ptr %6, i32 0, i32 1
  %401 = extractvalue { i32, double } %397, 1
  store double %401, ptr %400, align 8
  br label %402

402:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %403 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %6, i32 0, i32 1
  %404 = load double, ptr %403, align 8, !tbaa !17
  store double %404, ptr %7, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  store double 1.568630e-01, ptr %8, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  %405 = load double, ptr %7, align 8, !tbaa !20
  %406 = load double, ptr %8, align 8, !tbaa !20
  %407 = fcmp ogt double %405, %406
  br i1 %407, label %408, label %412

408:                                              ; preds = %402
  %409 = load double, ptr %7, align 8, !tbaa !20
  %410 = load double, ptr %8, align 8, !tbaa !20
  %411 = fsub double %409, %410
  br label %416

412:                                              ; preds = %402
  %413 = load double, ptr %8, align 8, !tbaa !20
  %414 = load double, ptr %7, align 8, !tbaa !20
  %415 = fsub double %413, %414
  br label %416

416:                                              ; preds = %412, %408
  %417 = phi double [ %411, %408 ], [ %415, %412 ]
  store double %417, ptr %9, align 8, !tbaa !20
  %418 = load double, ptr %7, align 8, !tbaa !20
  %419 = load double, ptr %8, align 8, !tbaa !20
  %420 = fcmp une double %418, %419
  br i1 %420, label %421, label %427

421:                                              ; preds = %416
  %422 = load double, ptr %9, align 8, !tbaa !20
  %423 = fcmp ogt double %422, 1.000000e-05
  br i1 %423, label %424, label %427

424:                                              ; preds = %421
  %425 = load double, ptr %7, align 8, !tbaa !20
  %426 = load double, ptr %8, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.2, double noundef %425, double noundef %426, ptr noundef @.str.3, i32 noundef 207)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %427

427:                                              ; preds = %424, %421, %416
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %431 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %6, i32 0, i32 0
  %432 = load i32, ptr %431, align 8, !tbaa !21
  store i32 %432, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 64, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  store i8 0, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #8
  store i8 0, ptr %13, align 1, !tbaa !11
  %433 = load i8, ptr %12, align 1, !tbaa !11, !range !13, !noundef !14
  %434 = trunc i8 %433 to i1
  br i1 %434, label %435, label %461

435:                                              ; preds = %430
  %436 = load i8, ptr %13, align 1, !tbaa !11, !range !13, !noundef !14
  %437 = trunc i8 %436 to i1
  br i1 %437, label %438, label %461

438:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %439 = load i32, ptr %10, align 4, !tbaa !5
  %440 = load i32, ptr %11, align 4, !tbaa !5
  %441 = icmp sgt i32 %439, %440
  br i1 %441, label %442, label %446

442:                                              ; preds = %438
  %443 = load i32, ptr %10, align 4, !tbaa !5
  %444 = load i32, ptr %11, align 4, !tbaa !5
  %445 = sub nsw i32 %443, %444
  br label %450

446:                                              ; preds = %438
  %447 = load i32, ptr %11, align 4, !tbaa !5
  %448 = load i32, ptr %10, align 4, !tbaa !5
  %449 = sub nsw i32 %447, %448
  br label %450

450:                                              ; preds = %446, %442
  %451 = phi i32 [ %445, %442 ], [ %449, %446 ]
  store i32 %451, ptr %14, align 4, !tbaa !5
  %452 = load i32, ptr %14, align 4, !tbaa !5
  %453 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %454 = icmp sgt i32 %452, %453
  br i1 %454, label %455, label %460

455:                                              ; preds = %450
  %456 = load i32, ptr %10, align 4, !tbaa !5
  %457 = sitofp i32 %456 to double
  %458 = load i32, ptr %11, align 4, !tbaa !5
  %459 = sitofp i32 %458 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.4, ptr noundef @.str.3, i32 noundef 208, double noundef %457, double noundef %459)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %460

460:                                              ; preds = %455, %450
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %476

461:                                              ; preds = %435, %430
  %462 = load i32, ptr %10, align 4, !tbaa !5
  %463 = load i32, ptr %11, align 4, !tbaa !5
  %464 = icmp ne i32 %462, %463
  br i1 %464, label %465, label %475

465:                                              ; preds = %461
  %466 = load i32, ptr %10, align 4, !tbaa !5
  %467 = load i32, ptr %11, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.5, ptr noundef @.str.3, i32 noundef 208, i32 noundef %466, i32 noundef %467)
  %468 = load i8, ptr %12, align 1, !tbaa !11, !range !13, !noundef !14
  %469 = trunc i8 %468 to i1
  br i1 %469, label %473, label %470

470:                                              ; preds = %465
  %471 = load i8, ptr %13, align 1, !tbaa !11, !range !13, !noundef !14
  %472 = trunc i8 %471 to i1
  br i1 %472, label %473, label %474

473:                                              ; preds = %470, %465
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %474

474:                                              ; preds = %473, %470
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %475

475:                                              ; preds = %474, %461
  br label %476

476:                                              ; preds = %475, %460
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #8
  br label %479

479:                                              ; preds = %478
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %480 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %481 = trunc i8 %480 to i1
  %482 = zext i1 %481 to i64
  %483 = select i1 %481, i32 0, i32 1
  %484 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %485 = add nsw i32 %484, %483
  store i32 %485, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %486 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %487 = trunc i8 %486 to i1
  %488 = zext i1 %487 to i64
  %489 = select i1 %487, i32 1, i32 0
  %490 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %491 = add nsw i32 %490, %489
  store i32 %491, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %392, !llvm.loop !22

492:                                              ; preds = %392
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.8)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %493

493:                                              ; preds = %580, %492
  %494 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %495 = trunc i8 %494 to i1
  %496 = xor i1 %495, true
  br i1 %496, label %497, label %593

497:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #8
  %498 = call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef 0.000000e+00, double noundef 3.000000e+01)
  %499 = getelementptr inbounds { i32, double }, ptr %15, i32 0, i32 0
  %500 = extractvalue { i32, double } %498, 0
  store i32 %500, ptr %499, align 8
  %501 = getelementptr inbounds { i32, double }, ptr %15, i32 0, i32 1
  %502 = extractvalue { i32, double } %498, 1
  store double %502, ptr %501, align 8
  br label %503

503:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %504 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %15, i32 0, i32 1
  %505 = load double, ptr %504, align 8, !tbaa !17
  store double %505, ptr %16, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  store double 1.176470e-01, ptr %17, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %506 = load double, ptr %16, align 8, !tbaa !20
  %507 = load double, ptr %17, align 8, !tbaa !20
  %508 = fcmp ogt double %506, %507
  br i1 %508, label %509, label %513

509:                                              ; preds = %503
  %510 = load double, ptr %16, align 8, !tbaa !20
  %511 = load double, ptr %17, align 8, !tbaa !20
  %512 = fsub double %510, %511
  br label %517

513:                                              ; preds = %503
  %514 = load double, ptr %17, align 8, !tbaa !20
  %515 = load double, ptr %16, align 8, !tbaa !20
  %516 = fsub double %514, %515
  br label %517

517:                                              ; preds = %513, %509
  %518 = phi double [ %512, %509 ], [ %516, %513 ]
  store double %518, ptr %18, align 8, !tbaa !20
  %519 = load double, ptr %16, align 8, !tbaa !20
  %520 = load double, ptr %17, align 8, !tbaa !20
  %521 = fcmp une double %519, %520
  br i1 %521, label %522, label %528

522:                                              ; preds = %517
  %523 = load double, ptr %18, align 8, !tbaa !20
  %524 = fcmp ogt double %523, 1.000000e-05
  br i1 %524, label %525, label %528

525:                                              ; preds = %522
  %526 = load double, ptr %16, align 8, !tbaa !20
  %527 = load double, ptr %17, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.9, double noundef %526, double noundef %527, ptr noundef @.str.3, i32 noundef 215)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %528

528:                                              ; preds = %525, %522, %517
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %529

529:                                              ; preds = %528
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %532 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %15, i32 0, i32 0
  %533 = load i32, ptr %532, align 8, !tbaa !21
  store i32 %533, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  store i32 0, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #8
  store i8 0, ptr %21, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  store i8 0, ptr %22, align 1, !tbaa !11
  %534 = load i8, ptr %21, align 1, !tbaa !11, !range !13, !noundef !14
  %535 = trunc i8 %534 to i1
  br i1 %535, label %536, label %562

536:                                              ; preds = %531
  %537 = load i8, ptr %22, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc i8 %537 to i1
  br i1 %538, label %539, label %562

539:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %540 = load i32, ptr %19, align 4, !tbaa !5
  %541 = load i32, ptr %20, align 4, !tbaa !5
  %542 = icmp sgt i32 %540, %541
  br i1 %542, label %543, label %547

543:                                              ; preds = %539
  %544 = load i32, ptr %19, align 4, !tbaa !5
  %545 = load i32, ptr %20, align 4, !tbaa !5
  %546 = sub nsw i32 %544, %545
  br label %551

547:                                              ; preds = %539
  %548 = load i32, ptr %20, align 4, !tbaa !5
  %549 = load i32, ptr %19, align 4, !tbaa !5
  %550 = sub nsw i32 %548, %549
  br label %551

551:                                              ; preds = %547, %543
  %552 = phi i32 [ %546, %543 ], [ %550, %547 ]
  store i32 %552, ptr %23, align 4, !tbaa !5
  %553 = load i32, ptr %23, align 4, !tbaa !5
  %554 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %555 = icmp sgt i32 %553, %554
  br i1 %555, label %556, label %561

556:                                              ; preds = %551
  %557 = load i32, ptr %19, align 4, !tbaa !5
  %558 = sitofp i32 %557 to double
  %559 = load i32, ptr %20, align 4, !tbaa !5
  %560 = sitofp i32 %559 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 216, double noundef %558, double noundef %560)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %561

561:                                              ; preds = %556, %551
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %577

562:                                              ; preds = %536, %531
  %563 = load i32, ptr %19, align 4, !tbaa !5
  %564 = load i32, ptr %20, align 4, !tbaa !5
  %565 = icmp ne i32 %563, %564
  br i1 %565, label %566, label %576

566:                                              ; preds = %562
  %567 = load i32, ptr %19, align 4, !tbaa !5
  %568 = load i32, ptr %20, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 216, i32 noundef %567, i32 noundef %568)
  %569 = load i8, ptr %21, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc i8 %569 to i1
  br i1 %570, label %574, label %571

571:                                              ; preds = %566
  %572 = load i8, ptr %22, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc i8 %572 to i1
  br i1 %573, label %574, label %575

574:                                              ; preds = %571, %566
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %575

575:                                              ; preds = %574, %571
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %576

576:                                              ; preds = %575, %562
  br label %577

577:                                              ; preds = %576, %561
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #8
  br label %580

580:                                              ; preds = %579
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %581 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %582 = trunc i8 %581 to i1
  %583 = zext i1 %582 to i64
  %584 = select i1 %582, i32 0, i32 1
  %585 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %586 = add nsw i32 %585, %584
  store i32 %586, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %587 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %588 = trunc i8 %587 to i1
  %589 = zext i1 %588 to i64
  %590 = select i1 %588, i32 1, i32 0
  %591 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %592 = add nsw i32 %591, %590
  store i32 %592, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %493, !llvm.loop !23

593:                                              ; preds = %493
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.12)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %594

594:                                              ; preds = %681, %593
  %595 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc i8 %595 to i1
  %597 = xor i1 %596, true
  br i1 %597, label %598, label %694

598:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #8
  %599 = call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef 0.000000e+00, double noundef 0.000000e+00)
  %600 = getelementptr inbounds { i32, double }, ptr %24, i32 0, i32 0
  %601 = extractvalue { i32, double } %599, 0
  store i32 %601, ptr %600, align 8
  %602 = getelementptr inbounds { i32, double }, ptr %24, i32 0, i32 1
  %603 = extractvalue { i32, double } %599, 1
  store double %603, ptr %602, align 8
  br label %604

604:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %605 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %24, i32 0, i32 1
  %606 = load double, ptr %605, align 8, !tbaa !17
  store double %606, ptr %25, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  store double 0.000000e+00, ptr %26, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %607 = load double, ptr %25, align 8, !tbaa !20
  %608 = load double, ptr %26, align 8, !tbaa !20
  %609 = fcmp ogt double %607, %608
  br i1 %609, label %610, label %614

610:                                              ; preds = %604
  %611 = load double, ptr %25, align 8, !tbaa !20
  %612 = load double, ptr %26, align 8, !tbaa !20
  %613 = fsub double %611, %612
  br label %618

614:                                              ; preds = %604
  %615 = load double, ptr %26, align 8, !tbaa !20
  %616 = load double, ptr %25, align 8, !tbaa !20
  %617 = fsub double %615, %616
  br label %618

618:                                              ; preds = %614, %610
  %619 = phi double [ %613, %610 ], [ %617, %614 ]
  store double %619, ptr %27, align 8, !tbaa !20
  %620 = load double, ptr %25, align 8, !tbaa !20
  %621 = load double, ptr %26, align 8, !tbaa !20
  %622 = fcmp une double %620, %621
  br i1 %622, label %623, label %629

623:                                              ; preds = %618
  %624 = load double, ptr %27, align 8, !tbaa !20
  %625 = fcmp ogt double %624, 1.000000e-05
  br i1 %625, label %626, label %629

626:                                              ; preds = %623
  %627 = load double, ptr %25, align 8, !tbaa !20
  %628 = load double, ptr %26, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.13, double noundef %627, double noundef %628, ptr noundef @.str.3, i32 noundef 223)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %629

629:                                              ; preds = %626, %623, %618
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %633 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %24, i32 0, i32 0
  %634 = load i32, ptr %633, align 8, !tbaa !21
  store i32 %634, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  store i32 0, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #8
  store i8 0, ptr %30, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #8
  store i8 0, ptr %31, align 1, !tbaa !11
  %635 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %636 = trunc i8 %635 to i1
  br i1 %636, label %637, label %663

637:                                              ; preds = %632
  %638 = load i8, ptr %31, align 1, !tbaa !11, !range !13, !noundef !14
  %639 = trunc i8 %638 to i1
  br i1 %639, label %640, label %663

640:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %641 = load i32, ptr %28, align 4, !tbaa !5
  %642 = load i32, ptr %29, align 4, !tbaa !5
  %643 = icmp sgt i32 %641, %642
  br i1 %643, label %644, label %648

644:                                              ; preds = %640
  %645 = load i32, ptr %28, align 4, !tbaa !5
  %646 = load i32, ptr %29, align 4, !tbaa !5
  %647 = sub nsw i32 %645, %646
  br label %652

648:                                              ; preds = %640
  %649 = load i32, ptr %29, align 4, !tbaa !5
  %650 = load i32, ptr %28, align 4, !tbaa !5
  %651 = sub nsw i32 %649, %650
  br label %652

652:                                              ; preds = %648, %644
  %653 = phi i32 [ %647, %644 ], [ %651, %648 ]
  store i32 %653, ptr %32, align 4, !tbaa !5
  %654 = load i32, ptr %32, align 4, !tbaa !5
  %655 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %656 = icmp sgt i32 %654, %655
  br i1 %656, label %657, label %662

657:                                              ; preds = %652
  %658 = load i32, ptr %28, align 4, !tbaa !5
  %659 = sitofp i32 %658 to double
  %660 = load i32, ptr %29, align 4, !tbaa !5
  %661 = sitofp i32 %660 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 224, double noundef %659, double noundef %661)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %662

662:                                              ; preds = %657, %652
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %678

663:                                              ; preds = %637, %632
  %664 = load i32, ptr %28, align 4, !tbaa !5
  %665 = load i32, ptr %29, align 4, !tbaa !5
  %666 = icmp ne i32 %664, %665
  br i1 %666, label %667, label %677

667:                                              ; preds = %663
  %668 = load i32, ptr %28, align 4, !tbaa !5
  %669 = load i32, ptr %29, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 224, i32 noundef %668, i32 noundef %669)
  %670 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %671 = trunc i8 %670 to i1
  br i1 %671, label %675, label %672

672:                                              ; preds = %667
  %673 = load i8, ptr %31, align 1, !tbaa !11, !range !13, !noundef !14
  %674 = trunc i8 %673 to i1
  br i1 %674, label %675, label %676

675:                                              ; preds = %672, %667
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %676

676:                                              ; preds = %675, %672
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %677

677:                                              ; preds = %676, %663
  br label %678

678:                                              ; preds = %677, %662
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %679

679:                                              ; preds = %678
  br label %680

680:                                              ; preds = %679
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  br label %681

681:                                              ; preds = %680
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %682 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %683 = trunc i8 %682 to i1
  %684 = zext i1 %683 to i64
  %685 = select i1 %683, i32 0, i32 1
  %686 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %687 = add nsw i32 %686, %685
  store i32 %687, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %688 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %689 = trunc i8 %688 to i1
  %690 = zext i1 %689 to i64
  %691 = select i1 %689, i32 1, i32 0
  %692 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %693 = add nsw i32 %692, %691
  store i32 %693, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %594, !llvm.loop !24

694:                                              ; preds = %594
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.14)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %695

695:                                              ; preds = %782, %694
  %696 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %697 = trunc i8 %696 to i1
  %698 = xor i1 %697, true
  br i1 %698, label %699, label %795

699:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #8
  %700 = call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef -1.000000e+01, double noundef 0.000000e+00)
  %701 = getelementptr inbounds { i32, double }, ptr %33, i32 0, i32 0
  %702 = extractvalue { i32, double } %700, 0
  store i32 %702, ptr %701, align 8
  %703 = getelementptr inbounds { i32, double }, ptr %33, i32 0, i32 1
  %704 = extractvalue { i32, double } %700, 1
  store double %704, ptr %703, align 8
  br label %705

705:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %706 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %33, i32 0, i32 1
  %707 = load double, ptr %706, align 8, !tbaa !17
  store double %707, ptr %34, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store double 3.921600e-02, ptr %35, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %708 = load double, ptr %34, align 8, !tbaa !20
  %709 = load double, ptr %35, align 8, !tbaa !20
  %710 = fcmp ogt double %708, %709
  br i1 %710, label %711, label %715

711:                                              ; preds = %705
  %712 = load double, ptr %34, align 8, !tbaa !20
  %713 = load double, ptr %35, align 8, !tbaa !20
  %714 = fsub double %712, %713
  br label %719

715:                                              ; preds = %705
  %716 = load double, ptr %35, align 8, !tbaa !20
  %717 = load double, ptr %34, align 8, !tbaa !20
  %718 = fsub double %716, %717
  br label %719

719:                                              ; preds = %715, %711
  %720 = phi double [ %714, %711 ], [ %718, %715 ]
  store double %720, ptr %36, align 8, !tbaa !20
  %721 = load double, ptr %34, align 8, !tbaa !20
  %722 = load double, ptr %35, align 8, !tbaa !20
  %723 = fcmp une double %721, %722
  br i1 %723, label %724, label %730

724:                                              ; preds = %719
  %725 = load double, ptr %36, align 8, !tbaa !20
  %726 = fcmp ogt double %725, 1.000000e-05
  br i1 %726, label %727, label %730

727:                                              ; preds = %724
  %728 = load double, ptr %34, align 8, !tbaa !20
  %729 = load double, ptr %35, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.15, double noundef %728, double noundef %729, ptr noundef @.str.3, i32 noundef 231)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %730

730:                                              ; preds = %727, %724, %719
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %731

731:                                              ; preds = %730
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %734 = getelementptr inbounds %"struct.tflite::QuantizationParams", ptr %33, i32 0, i32 0
  %735 = load i32, ptr %734, align 8, !tbaa !21
  store i32 %735, ptr %37, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 255, ptr %38, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  store i8 0, ptr %39, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  store i8 0, ptr %40, align 1, !tbaa !11
  %736 = load i8, ptr %39, align 1, !tbaa !11, !range !13, !noundef !14
  %737 = trunc i8 %736 to i1
  br i1 %737, label %738, label %764

738:                                              ; preds = %733
  %739 = load i8, ptr %40, align 1, !tbaa !11, !range !13, !noundef !14
  %740 = trunc i8 %739 to i1
  br i1 %740, label %741, label %764

741:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %742 = load i32, ptr %37, align 4, !tbaa !5
  %743 = load i32, ptr %38, align 4, !tbaa !5
  %744 = icmp sgt i32 %742, %743
  br i1 %744, label %745, label %749

745:                                              ; preds = %741
  %746 = load i32, ptr %37, align 4, !tbaa !5
  %747 = load i32, ptr %38, align 4, !tbaa !5
  %748 = sub nsw i32 %746, %747
  br label %753

749:                                              ; preds = %741
  %750 = load i32, ptr %38, align 4, !tbaa !5
  %751 = load i32, ptr %37, align 4, !tbaa !5
  %752 = sub nsw i32 %750, %751
  br label %753

753:                                              ; preds = %749, %745
  %754 = phi i32 [ %748, %745 ], [ %752, %749 ]
  store i32 %754, ptr %41, align 4, !tbaa !5
  %755 = load i32, ptr %41, align 4, !tbaa !5
  %756 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %757 = icmp sgt i32 %755, %756
  br i1 %757, label %758, label %763

758:                                              ; preds = %753
  %759 = load i32, ptr %37, align 4, !tbaa !5
  %760 = sitofp i32 %759 to double
  %761 = load i32, ptr %38, align 4, !tbaa !5
  %762 = sitofp i32 %761 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 232, double noundef %760, double noundef %762)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %763

763:                                              ; preds = %758, %753
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %779

764:                                              ; preds = %738, %733
  %765 = load i32, ptr %37, align 4, !tbaa !5
  %766 = load i32, ptr %38, align 4, !tbaa !5
  %767 = icmp ne i32 %765, %766
  br i1 %767, label %768, label %778

768:                                              ; preds = %764
  %769 = load i32, ptr %37, align 4, !tbaa !5
  %770 = load i32, ptr %38, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.17, ptr noundef @.str.3, i32 noundef 232, i32 noundef %769, i32 noundef %770)
  %771 = load i8, ptr %39, align 1, !tbaa !11, !range !13, !noundef !14
  %772 = trunc i8 %771 to i1
  br i1 %772, label %776, label %773

773:                                              ; preds = %768
  %774 = load i8, ptr %40, align 1, !tbaa !11, !range !13, !noundef !14
  %775 = trunc i8 %774 to i1
  br i1 %775, label %776, label %777

776:                                              ; preds = %773, %768
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %777

777:                                              ; preds = %776, %773
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %778

778:                                              ; preds = %777, %764
  br label %779

779:                                              ; preds = %778, %763
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %780

780:                                              ; preds = %779
  br label %781

781:                                              ; preds = %780
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #8
  br label %782

782:                                              ; preds = %781
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %783 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %784 = trunc i8 %783 to i1
  %785 = zext i1 %784 to i64
  %786 = select i1 %784, i32 0, i32 1
  %787 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %788 = add nsw i32 %787, %786
  store i32 %788, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %789 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %790 = trunc i8 %789 to i1
  %791 = zext i1 %790 to i64
  %792 = select i1 %790, i32 1, i32 0
  %793 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %794 = add nsw i32 %793, %792
  store i32 %794, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %695, !llvm.loop !25

795:                                              ; preds = %695
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.18)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %796

796:                                              ; preds = %1471, %795
  %797 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %798 = trunc i8 %797 to i1
  %799 = xor i1 %798, true
  br i1 %799, label %800, label %1484

800:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %801 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0.000000e+00, ptr noundef %42)
  store i64 %801, ptr %43, align 8, !tbaa !26
  br label %802

802:                                              ; preds = %800
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  store i32 0, ptr %44, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %803 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %803, ptr %45, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #8
  store i8 0, ptr %46, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #8
  store i8 0, ptr %47, align 1, !tbaa !11
  %804 = load i8, ptr %46, align 1, !tbaa !11, !range !13, !noundef !14
  %805 = trunc i8 %804 to i1
  br i1 %805, label %806, label %835

806:                                              ; preds = %802
  %807 = load i8, ptr %47, align 1, !tbaa !11, !range !13, !noundef !14
  %808 = trunc i8 %807 to i1
  br i1 %808, label %809, label %835

809:                                              ; preds = %806
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %810 = load i32, ptr %44, align 4, !tbaa !5
  %811 = sext i32 %810 to i64
  %812 = load i64, ptr %45, align 8, !tbaa !26
  %813 = icmp sgt i64 %811, %812
  br i1 %813, label %814, label %819

814:                                              ; preds = %809
  %815 = load i32, ptr %44, align 4, !tbaa !5
  %816 = sext i32 %815 to i64
  %817 = load i64, ptr %45, align 8, !tbaa !26
  %818 = sub nsw i64 %816, %817
  br label %824

819:                                              ; preds = %809
  %820 = load i64, ptr %45, align 8, !tbaa !26
  %821 = load i32, ptr %44, align 4, !tbaa !5
  %822 = sext i32 %821 to i64
  %823 = sub nsw i64 %820, %822
  br label %824

824:                                              ; preds = %819, %814
  %825 = phi i64 [ %818, %814 ], [ %823, %819 ]
  store i64 %825, ptr %48, align 8, !tbaa !26
  %826 = load i64, ptr %48, align 8, !tbaa !26
  %827 = call noundef i64 @_ZNSt14numeric_limitsIlE7epsilonEv() #8
  %828 = icmp sgt i64 %826, %827
  br i1 %828, label %829, label %834

829:                                              ; preds = %824
  %830 = load i32, ptr %44, align 4, !tbaa !5
  %831 = sitofp i32 %830 to double
  %832 = load i64, ptr %45, align 8, !tbaa !26
  %833 = sitofp i64 %832 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 238, double noundef %831, double noundef %833)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %834

834:                                              ; preds = %829, %824
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  br label %852

835:                                              ; preds = %806, %802
  %836 = load i32, ptr %44, align 4, !tbaa !5
  %837 = sext i32 %836 to i64
  %838 = load i64, ptr %45, align 8, !tbaa !26
  %839 = icmp ne i64 %837, %838
  br i1 %839, label %840, label %851

840:                                              ; preds = %835
  %841 = load i32, ptr %44, align 4, !tbaa !5
  %842 = load i64, ptr %45, align 8, !tbaa !26
  %843 = trunc i64 %842 to i32
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 238, i32 noundef %841, i32 noundef %843)
  %844 = load i8, ptr %46, align 1, !tbaa !11, !range !13, !noundef !14
  %845 = trunc i8 %844 to i1
  br i1 %845, label %849, label %846

846:                                              ; preds = %840
  %847 = load i8, ptr %47, align 1, !tbaa !11, !range !13, !noundef !14
  %848 = trunc i8 %847 to i1
  br i1 %848, label %849, label %850

849:                                              ; preds = %846, %840
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %850

850:                                              ; preds = %849, %846
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %851

851:                                              ; preds = %850, %835
  br label %852

852:                                              ; preds = %851, %834
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %853

853:                                              ; preds = %852
  br label %854

854:                                              ; preds = %853
  br label %855

855:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  store i32 0, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %856 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %856, ptr %50, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #8
  store i8 0, ptr %51, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #8
  store i8 0, ptr %52, align 1, !tbaa !11
  %857 = load i8, ptr %51, align 1, !tbaa !11, !range !13, !noundef !14
  %858 = trunc i8 %857 to i1
  br i1 %858, label %859, label %885

859:                                              ; preds = %855
  %860 = load i8, ptr %52, align 1, !tbaa !11, !range !13, !noundef !14
  %861 = trunc i8 %860 to i1
  br i1 %861, label %862, label %885

862:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %863 = load i32, ptr %49, align 4, !tbaa !5
  %864 = load i32, ptr %50, align 4, !tbaa !5
  %865 = icmp sgt i32 %863, %864
  br i1 %865, label %866, label %870

866:                                              ; preds = %862
  %867 = load i32, ptr %49, align 4, !tbaa !5
  %868 = load i32, ptr %50, align 4, !tbaa !5
  %869 = sub nsw i32 %867, %868
  br label %874

870:                                              ; preds = %862
  %871 = load i32, ptr %50, align 4, !tbaa !5
  %872 = load i32, ptr %49, align 4, !tbaa !5
  %873 = sub nsw i32 %871, %872
  br label %874

874:                                              ; preds = %870, %866
  %875 = phi i32 [ %869, %866 ], [ %873, %870 ]
  store i32 %875, ptr %53, align 4, !tbaa !5
  %876 = load i32, ptr %53, align 4, !tbaa !5
  %877 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %878 = icmp sgt i32 %876, %877
  br i1 %878, label %879, label %884

879:                                              ; preds = %874
  %880 = load i32, ptr %49, align 4, !tbaa !5
  %881 = sitofp i32 %880 to double
  %882 = load i32, ptr %50, align 4, !tbaa !5
  %883 = sitofp i32 %882 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 239, double noundef %881, double noundef %883)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %884

884:                                              ; preds = %879, %874
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %900

885:                                              ; preds = %859, %855
  %886 = load i32, ptr %49, align 4, !tbaa !5
  %887 = load i32, ptr %50, align 4, !tbaa !5
  %888 = icmp ne i32 %886, %887
  br i1 %888, label %889, label %899

889:                                              ; preds = %885
  %890 = load i32, ptr %49, align 4, !tbaa !5
  %891 = load i32, ptr %50, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 239, i32 noundef %890, i32 noundef %891)
  %892 = load i8, ptr %51, align 1, !tbaa !11, !range !13, !noundef !14
  %893 = trunc i8 %892 to i1
  br i1 %893, label %897, label %894

894:                                              ; preds = %889
  %895 = load i8, ptr %52, align 1, !tbaa !11, !range !13, !noundef !14
  %896 = trunc i8 %895 to i1
  br i1 %896, label %897, label %898

897:                                              ; preds = %894, %889
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %898

898:                                              ; preds = %897, %894
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %899

899:                                              ; preds = %898, %885
  br label %900

900:                                              ; preds = %899, %884
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901
  %903 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.000000e+00, ptr noundef %42)
  store i64 %903, ptr %43, align 8, !tbaa !26
  br label %904

904:                                              ; preds = %902
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  store i32 1073741824, ptr %54, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %905 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %905, ptr %55, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %906 = load i32, ptr %54, align 4, !tbaa !5
  %907 = sext i32 %906 to i64
  %908 = load i64, ptr %55, align 8, !tbaa !26
  %909 = icmp sgt i64 %907, %908
  br i1 %909, label %910, label %915

910:                                              ; preds = %904
  %911 = load i32, ptr %54, align 4, !tbaa !5
  %912 = sext i32 %911 to i64
  %913 = load i64, ptr %55, align 8, !tbaa !26
  %914 = sub nsw i64 %912, %913
  br label %920

915:                                              ; preds = %904
  %916 = load i64, ptr %55, align 8, !tbaa !26
  %917 = load i32, ptr %54, align 4, !tbaa !5
  %918 = sext i32 %917 to i64
  %919 = sub nsw i64 %916, %918
  br label %920

920:                                              ; preds = %915, %910
  %921 = phi i64 [ %914, %910 ], [ %919, %915 ]
  store i64 %921, ptr %56, align 8, !tbaa !26
  %922 = load i32, ptr %54, align 4, !tbaa !5
  %923 = sext i32 %922 to i64
  %924 = load i64, ptr %55, align 8, !tbaa !26
  %925 = icmp ne i64 %923, %924
  br i1 %925, label %926, label %934

926:                                              ; preds = %920
  %927 = load i64, ptr %56, align 8, !tbaa !26
  %928 = icmp sgt i64 %927, 1
  br i1 %928, label %929, label %934

929:                                              ; preds = %926
  %930 = load i32, ptr %54, align 4, !tbaa !5
  %931 = sitofp i32 %930 to double
  %932 = load i64, ptr %55, align 8, !tbaa !26
  %933 = sitofp i64 %932 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.23, double noundef %931, double noundef %933, ptr noundef @.str.3, i32 noundef 242)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %934

934:                                              ; preds = %929, %926, %920
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %935

935:                                              ; preds = %934
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  store i32 1, ptr %57, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %938 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %938, ptr %58, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #8
  store i8 0, ptr %59, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #8
  store i8 0, ptr %60, align 1, !tbaa !11
  %939 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %940 = trunc i8 %939 to i1
  br i1 %940, label %941, label %967

941:                                              ; preds = %937
  %942 = load i8, ptr %60, align 1, !tbaa !11, !range !13, !noundef !14
  %943 = trunc i8 %942 to i1
  br i1 %943, label %944, label %967

944:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %945 = load i32, ptr %57, align 4, !tbaa !5
  %946 = load i32, ptr %58, align 4, !tbaa !5
  %947 = icmp sgt i32 %945, %946
  br i1 %947, label %948, label %952

948:                                              ; preds = %944
  %949 = load i32, ptr %57, align 4, !tbaa !5
  %950 = load i32, ptr %58, align 4, !tbaa !5
  %951 = sub nsw i32 %949, %950
  br label %956

952:                                              ; preds = %944
  %953 = load i32, ptr %58, align 4, !tbaa !5
  %954 = load i32, ptr %57, align 4, !tbaa !5
  %955 = sub nsw i32 %953, %954
  br label %956

956:                                              ; preds = %952, %948
  %957 = phi i32 [ %951, %948 ], [ %955, %952 ]
  store i32 %957, ptr %61, align 4, !tbaa !5
  %958 = load i32, ptr %61, align 4, !tbaa !5
  %959 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %960 = icmp sgt i32 %958, %959
  br i1 %960, label %961, label %966

961:                                              ; preds = %956
  %962 = load i32, ptr %57, align 4, !tbaa !5
  %963 = sitofp i32 %962 to double
  %964 = load i32, ptr %58, align 4, !tbaa !5
  %965 = sitofp i32 %964 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 243, double noundef %963, double noundef %965)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %966

966:                                              ; preds = %961, %956
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %982

967:                                              ; preds = %941, %937
  %968 = load i32, ptr %57, align 4, !tbaa !5
  %969 = load i32, ptr %58, align 4, !tbaa !5
  %970 = icmp ne i32 %968, %969
  br i1 %970, label %971, label %981

971:                                              ; preds = %967
  %972 = load i32, ptr %57, align 4, !tbaa !5
  %973 = load i32, ptr %58, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 243, i32 noundef %972, i32 noundef %973)
  %974 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %975 = trunc i8 %974 to i1
  br i1 %975, label %979, label %976

976:                                              ; preds = %971
  %977 = load i8, ptr %60, align 1, !tbaa !11, !range !13, !noundef !14
  %978 = trunc i8 %977 to i1
  br i1 %978, label %979, label %980

979:                                              ; preds = %976, %971
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %980

980:                                              ; preds = %979, %976
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %981

981:                                              ; preds = %980, %967
  br label %982

982:                                              ; preds = %981, %966
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  br label %983

983:                                              ; preds = %982
  br label %984

984:                                              ; preds = %983
  %985 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 2.500000e-01, ptr noundef %42)
  store i64 %985, ptr %43, align 8, !tbaa !26
  br label %986

986:                                              ; preds = %984
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  store i32 1073741824, ptr %62, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  %987 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %987, ptr %63, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  %988 = load i32, ptr %62, align 4, !tbaa !5
  %989 = sext i32 %988 to i64
  %990 = load i64, ptr %63, align 8, !tbaa !26
  %991 = icmp sgt i64 %989, %990
  br i1 %991, label %992, label %997

992:                                              ; preds = %986
  %993 = load i32, ptr %62, align 4, !tbaa !5
  %994 = sext i32 %993 to i64
  %995 = load i64, ptr %63, align 8, !tbaa !26
  %996 = sub nsw i64 %994, %995
  br label %1002

997:                                              ; preds = %986
  %998 = load i64, ptr %63, align 8, !tbaa !26
  %999 = load i32, ptr %62, align 4, !tbaa !5
  %1000 = sext i32 %999 to i64
  %1001 = sub nsw i64 %998, %1000
  br label %1002

1002:                                             ; preds = %997, %992
  %1003 = phi i64 [ %996, %992 ], [ %1001, %997 ]
  store i64 %1003, ptr %64, align 8, !tbaa !26
  %1004 = load i32, ptr %62, align 4, !tbaa !5
  %1005 = sext i32 %1004 to i64
  %1006 = load i64, ptr %63, align 8, !tbaa !26
  %1007 = icmp ne i64 %1005, %1006
  br i1 %1007, label %1008, label %1016

1008:                                             ; preds = %1002
  %1009 = load i64, ptr %64, align 8, !tbaa !26
  %1010 = icmp sgt i64 %1009, 1
  br i1 %1010, label %1011, label %1016

1011:                                             ; preds = %1008
  %1012 = load i32, ptr %62, align 4, !tbaa !5
  %1013 = sitofp i32 %1012 to double
  %1014 = load i64, ptr %63, align 8, !tbaa !26
  %1015 = sitofp i64 %1014 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.23, double noundef %1013, double noundef %1015, ptr noundef @.str.3, i32 noundef 246)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1016

1016:                                             ; preds = %1011, %1008, %1002
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

1019:                                             ; preds = %1018
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  store i32 -1, ptr %65, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  %1020 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %1020, ptr %66, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #8
  store i8 0, ptr %67, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #8
  store i8 0, ptr %68, align 1, !tbaa !11
  %1021 = load i8, ptr %67, align 1, !tbaa !11, !range !13, !noundef !14
  %1022 = trunc i8 %1021 to i1
  br i1 %1022, label %1023, label %1049

1023:                                             ; preds = %1019
  %1024 = load i8, ptr %68, align 1, !tbaa !11, !range !13, !noundef !14
  %1025 = trunc i8 %1024 to i1
  br i1 %1025, label %1026, label %1049

1026:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #8
  %1027 = load i32, ptr %65, align 4, !tbaa !5
  %1028 = load i32, ptr %66, align 4, !tbaa !5
  %1029 = icmp sgt i32 %1027, %1028
  br i1 %1029, label %1030, label %1034

1030:                                             ; preds = %1026
  %1031 = load i32, ptr %65, align 4, !tbaa !5
  %1032 = load i32, ptr %66, align 4, !tbaa !5
  %1033 = sub nsw i32 %1031, %1032
  br label %1038

1034:                                             ; preds = %1026
  %1035 = load i32, ptr %66, align 4, !tbaa !5
  %1036 = load i32, ptr %65, align 4, !tbaa !5
  %1037 = sub nsw i32 %1035, %1036
  br label %1038

1038:                                             ; preds = %1034, %1030
  %1039 = phi i32 [ %1033, %1030 ], [ %1037, %1034 ]
  store i32 %1039, ptr %69, align 4, !tbaa !5
  %1040 = load i32, ptr %69, align 4, !tbaa !5
  %1041 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1042 = icmp sgt i32 %1040, %1041
  br i1 %1042, label %1043, label %1048

1043:                                             ; preds = %1038
  %1044 = load i32, ptr %65, align 4, !tbaa !5
  %1045 = sitofp i32 %1044 to double
  %1046 = load i32, ptr %66, align 4, !tbaa !5
  %1047 = sitofp i32 %1046 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 247, double noundef %1045, double noundef %1047)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1048

1048:                                             ; preds = %1043, %1038
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  br label %1064

1049:                                             ; preds = %1023, %1019
  %1050 = load i32, ptr %65, align 4, !tbaa !5
  %1051 = load i32, ptr %66, align 4, !tbaa !5
  %1052 = icmp ne i32 %1050, %1051
  br i1 %1052, label %1053, label %1063

1053:                                             ; preds = %1049
  %1054 = load i32, ptr %65, align 4, !tbaa !5
  %1055 = load i32, ptr %66, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 247, i32 noundef %1054, i32 noundef %1055)
  %1056 = load i8, ptr %67, align 1, !tbaa !11, !range !13, !noundef !14
  %1057 = trunc i8 %1056 to i1
  br i1 %1057, label %1061, label %1058

1058:                                             ; preds = %1053
  %1059 = load i8, ptr %68, align 1, !tbaa !11, !range !13, !noundef !14
  %1060 = trunc i8 %1059 to i1
  br i1 %1060, label %1061, label %1062

1061:                                             ; preds = %1058, %1053
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1062

1062:                                             ; preds = %1061, %1058
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1063

1063:                                             ; preds = %1062, %1049
  br label %1064

1064:                                             ; preds = %1063, %1048
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065
  %1067 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef -1.000000e+00, ptr noundef %42)
  store i64 %1067, ptr %43, align 8, !tbaa !26
  br label %1068

1068:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #8
  store i32 -1073741824, ptr %70, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %1069 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %1069, ptr %71, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %1070 = load i32, ptr %70, align 4, !tbaa !5
  %1071 = sext i32 %1070 to i64
  %1072 = load i64, ptr %71, align 8, !tbaa !26
  %1073 = icmp sgt i64 %1071, %1072
  br i1 %1073, label %1074, label %1079

1074:                                             ; preds = %1068
  %1075 = load i32, ptr %70, align 4, !tbaa !5
  %1076 = sext i32 %1075 to i64
  %1077 = load i64, ptr %71, align 8, !tbaa !26
  %1078 = sub nsw i64 %1076, %1077
  br label %1084

1079:                                             ; preds = %1068
  %1080 = load i64, ptr %71, align 8, !tbaa !26
  %1081 = load i32, ptr %70, align 4, !tbaa !5
  %1082 = sext i32 %1081 to i64
  %1083 = sub nsw i64 %1080, %1082
  br label %1084

1084:                                             ; preds = %1079, %1074
  %1085 = phi i64 [ %1078, %1074 ], [ %1083, %1079 ]
  store i64 %1085, ptr %72, align 8, !tbaa !26
  %1086 = load i32, ptr %70, align 4, !tbaa !5
  %1087 = sext i32 %1086 to i64
  %1088 = load i64, ptr %71, align 8, !tbaa !26
  %1089 = icmp ne i64 %1087, %1088
  br i1 %1089, label %1090, label %1098

1090:                                             ; preds = %1084
  %1091 = load i64, ptr %72, align 8, !tbaa !26
  %1092 = icmp sgt i64 %1091, 1
  br i1 %1092, label %1093, label %1098

1093:                                             ; preds = %1090
  %1094 = load i32, ptr %70, align 4, !tbaa !5
  %1095 = sitofp i32 %1094 to double
  %1096 = load i64, ptr %71, align 8, !tbaa !26
  %1097 = sitofp i64 %1096 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.28, double noundef %1095, double noundef %1097, ptr noundef @.str.3, i32 noundef 250)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1098

1098:                                             ; preds = %1093, %1090, %1084
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #8
  store i32 1, ptr %73, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  %1102 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %1102, ptr %74, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #8
  store i8 0, ptr %75, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #8
  store i8 0, ptr %76, align 1, !tbaa !11
  %1103 = load i8, ptr %75, align 1, !tbaa !11, !range !13, !noundef !14
  %1104 = trunc i8 %1103 to i1
  br i1 %1104, label %1105, label %1131

1105:                                             ; preds = %1101
  %1106 = load i8, ptr %76, align 1, !tbaa !11, !range !13, !noundef !14
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1131

1108:                                             ; preds = %1105
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %1109 = load i32, ptr %73, align 4, !tbaa !5
  %1110 = load i32, ptr %74, align 4, !tbaa !5
  %1111 = icmp sgt i32 %1109, %1110
  br i1 %1111, label %1112, label %1116

1112:                                             ; preds = %1108
  %1113 = load i32, ptr %73, align 4, !tbaa !5
  %1114 = load i32, ptr %74, align 4, !tbaa !5
  %1115 = sub nsw i32 %1113, %1114
  br label %1120

1116:                                             ; preds = %1108
  %1117 = load i32, ptr %74, align 4, !tbaa !5
  %1118 = load i32, ptr %73, align 4, !tbaa !5
  %1119 = sub nsw i32 %1117, %1118
  br label %1120

1120:                                             ; preds = %1116, %1112
  %1121 = phi i32 [ %1115, %1112 ], [ %1119, %1116 ]
  store i32 %1121, ptr %77, align 4, !tbaa !5
  %1122 = load i32, ptr %77, align 4, !tbaa !5
  %1123 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1124 = icmp sgt i32 %1122, %1123
  br i1 %1124, label %1125, label %1130

1125:                                             ; preds = %1120
  %1126 = load i32, ptr %73, align 4, !tbaa !5
  %1127 = sitofp i32 %1126 to double
  %1128 = load i32, ptr %74, align 4, !tbaa !5
  %1129 = sitofp i32 %1128 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 251, double noundef %1127, double noundef %1129)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1130

1130:                                             ; preds = %1125, %1120
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %1146

1131:                                             ; preds = %1105, %1101
  %1132 = load i32, ptr %73, align 4, !tbaa !5
  %1133 = load i32, ptr %74, align 4, !tbaa !5
  %1134 = icmp ne i32 %1132, %1133
  br i1 %1134, label %1135, label %1145

1135:                                             ; preds = %1131
  %1136 = load i32, ptr %73, align 4, !tbaa !5
  %1137 = load i32, ptr %74, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 251, i32 noundef %1136, i32 noundef %1137)
  %1138 = load i8, ptr %75, align 1, !tbaa !11, !range !13, !noundef !14
  %1139 = trunc i8 %1138 to i1
  br i1 %1139, label %1143, label %1140

1140:                                             ; preds = %1135
  %1141 = load i8, ptr %76, align 1, !tbaa !11, !range !13, !noundef !14
  %1142 = trunc i8 %1141 to i1
  br i1 %1142, label %1143, label %1144

1143:                                             ; preds = %1140, %1135
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1144

1144:                                             ; preds = %1143, %1140
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1145

1145:                                             ; preds = %1144, %1131
  br label %1146

1146:                                             ; preds = %1145, %1130
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %1147

1147:                                             ; preds = %1146
  br label %1148

1148:                                             ; preds = %1147
  %1149 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.234500e+02, ptr noundef %42)
  store i64 %1149, ptr %43, align 8, !tbaa !26
  br label %1150

1150:                                             ; preds = %1148
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #8
  store i32 2071147315, ptr %78, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  %1151 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %1151, ptr %79, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %1152 = load i32, ptr %78, align 4, !tbaa !5
  %1153 = sext i32 %1152 to i64
  %1154 = load i64, ptr %79, align 8, !tbaa !26
  %1155 = icmp sgt i64 %1153, %1154
  br i1 %1155, label %1156, label %1161

1156:                                             ; preds = %1150
  %1157 = load i32, ptr %78, align 4, !tbaa !5
  %1158 = sext i32 %1157 to i64
  %1159 = load i64, ptr %79, align 8, !tbaa !26
  %1160 = sub nsw i64 %1158, %1159
  br label %1166

1161:                                             ; preds = %1150
  %1162 = load i64, ptr %79, align 8, !tbaa !26
  %1163 = load i32, ptr %78, align 4, !tbaa !5
  %1164 = sext i32 %1163 to i64
  %1165 = sub nsw i64 %1162, %1164
  br label %1166

1166:                                             ; preds = %1161, %1156
  %1167 = phi i64 [ %1160, %1156 ], [ %1165, %1161 ]
  store i64 %1167, ptr %80, align 8, !tbaa !26
  %1168 = load i32, ptr %78, align 4, !tbaa !5
  %1169 = sext i32 %1168 to i64
  %1170 = load i64, ptr %79, align 8, !tbaa !26
  %1171 = icmp ne i64 %1169, %1170
  br i1 %1171, label %1172, label %1180

1172:                                             ; preds = %1166
  %1173 = load i64, ptr %80, align 8, !tbaa !26
  %1174 = icmp sgt i64 %1173, 1
  br i1 %1174, label %1175, label %1180

1175:                                             ; preds = %1172
  %1176 = load i32, ptr %78, align 4, !tbaa !5
  %1177 = sitofp i32 %1176 to double
  %1178 = load i64, ptr %79, align 8, !tbaa !26
  %1179 = sitofp i64 %1178 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.29, double noundef %1177, double noundef %1179, ptr noundef @.str.3, i32 noundef 254)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1180

1180:                                             ; preds = %1175, %1172, %1166
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  br label %1181

1181:                                             ; preds = %1180
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  store i32 7, ptr %81, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %1184 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %1184, ptr %82, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #8
  store i8 0, ptr %83, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #8
  store i8 0, ptr %84, align 1, !tbaa !11
  %1185 = load i8, ptr %83, align 1, !tbaa !11, !range !13, !noundef !14
  %1186 = trunc i8 %1185 to i1
  br i1 %1186, label %1187, label %1213

1187:                                             ; preds = %1183
  %1188 = load i8, ptr %84, align 1, !tbaa !11, !range !13, !noundef !14
  %1189 = trunc i8 %1188 to i1
  br i1 %1189, label %1190, label %1213

1190:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #8
  %1191 = load i32, ptr %81, align 4, !tbaa !5
  %1192 = load i32, ptr %82, align 4, !tbaa !5
  %1193 = icmp sgt i32 %1191, %1192
  br i1 %1193, label %1194, label %1198

1194:                                             ; preds = %1190
  %1195 = load i32, ptr %81, align 4, !tbaa !5
  %1196 = load i32, ptr %82, align 4, !tbaa !5
  %1197 = sub nsw i32 %1195, %1196
  br label %1202

1198:                                             ; preds = %1190
  %1199 = load i32, ptr %82, align 4, !tbaa !5
  %1200 = load i32, ptr %81, align 4, !tbaa !5
  %1201 = sub nsw i32 %1199, %1200
  br label %1202

1202:                                             ; preds = %1198, %1194
  %1203 = phi i32 [ %1197, %1194 ], [ %1201, %1198 ]
  store i32 %1203, ptr %85, align 4, !tbaa !5
  %1204 = load i32, ptr %85, align 4, !tbaa !5
  %1205 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1206 = icmp sgt i32 %1204, %1205
  br i1 %1206, label %1207, label %1212

1207:                                             ; preds = %1202
  %1208 = load i32, ptr %81, align 4, !tbaa !5
  %1209 = sitofp i32 %1208 to double
  %1210 = load i32, ptr %82, align 4, !tbaa !5
  %1211 = sitofp i32 %1210 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.30, ptr noundef @.str.3, i32 noundef 255, double noundef %1209, double noundef %1211)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1212

1212:                                             ; preds = %1207, %1202
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #8
  br label %1228

1213:                                             ; preds = %1187, %1183
  %1214 = load i32, ptr %81, align 4, !tbaa !5
  %1215 = load i32, ptr %82, align 4, !tbaa !5
  %1216 = icmp ne i32 %1214, %1215
  br i1 %1216, label %1217, label %1227

1217:                                             ; preds = %1213
  %1218 = load i32, ptr %81, align 4, !tbaa !5
  %1219 = load i32, ptr %82, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.31, ptr noundef @.str.3, i32 noundef 255, i32 noundef %1218, i32 noundef %1219)
  %1220 = load i8, ptr %83, align 1, !tbaa !11, !range !13, !noundef !14
  %1221 = trunc i8 %1220 to i1
  br i1 %1221, label %1225, label %1222

1222:                                             ; preds = %1217
  %1223 = load i8, ptr %84, align 1, !tbaa !11, !range !13, !noundef !14
  %1224 = trunc i8 %1223 to i1
  br i1 %1224, label %1225, label %1226

1225:                                             ; preds = %1222, %1217
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1226

1226:                                             ; preds = %1225, %1222
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1227

1227:                                             ; preds = %1226, %1213
  br label %1228

1228:                                             ; preds = %1227, %1212
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229
  %1231 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF8000000000000, ptr noundef %42)
  store i64 %1231, ptr %43, align 8, !tbaa !26
  br label %1232

1232:                                             ; preds = %1230
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #8
  store i32 0, ptr %86, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #8
  %1233 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %1233, ptr %87, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  %1234 = load i32, ptr %86, align 4, !tbaa !5
  %1235 = sext i32 %1234 to i64
  %1236 = load i64, ptr %87, align 8, !tbaa !26
  %1237 = icmp sgt i64 %1235, %1236
  br i1 %1237, label %1238, label %1243

1238:                                             ; preds = %1232
  %1239 = load i32, ptr %86, align 4, !tbaa !5
  %1240 = sext i32 %1239 to i64
  %1241 = load i64, ptr %87, align 8, !tbaa !26
  %1242 = sub nsw i64 %1240, %1241
  br label %1248

1243:                                             ; preds = %1232
  %1244 = load i64, ptr %87, align 8, !tbaa !26
  %1245 = load i32, ptr %86, align 4, !tbaa !5
  %1246 = sext i32 %1245 to i64
  %1247 = sub nsw i64 %1244, %1246
  br label %1248

1248:                                             ; preds = %1243, %1238
  %1249 = phi i64 [ %1242, %1238 ], [ %1247, %1243 ]
  store i64 %1249, ptr %88, align 8, !tbaa !26
  %1250 = load i32, ptr %86, align 4, !tbaa !5
  %1251 = sext i32 %1250 to i64
  %1252 = load i64, ptr %87, align 8, !tbaa !26
  %1253 = icmp ne i64 %1251, %1252
  br i1 %1253, label %1254, label %1262

1254:                                             ; preds = %1248
  %1255 = load i64, ptr %88, align 8, !tbaa !26
  %1256 = icmp sgt i64 %1255, 1
  br i1 %1256, label %1257, label %1262

1257:                                             ; preds = %1254
  %1258 = load i32, ptr %86, align 4, !tbaa !5
  %1259 = sitofp i32 %1258 to double
  %1260 = load i64, ptr %87, align 8, !tbaa !26
  %1261 = sitofp i64 %1260 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.32, double noundef %1259, double noundef %1261, ptr noundef @.str.3, i32 noundef 258)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1262

1262:                                             ; preds = %1257, %1254, %1248
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

1265:                                             ; preds = %1264
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  store i32 2147483647, ptr %89, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  %1266 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %1266, ptr %90, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #8
  store i8 0, ptr %91, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #8
  store i8 0, ptr %92, align 1, !tbaa !11
  %1267 = load i8, ptr %91, align 1, !tbaa !11, !range !13, !noundef !14
  %1268 = trunc i8 %1267 to i1
  br i1 %1268, label %1269, label %1295

1269:                                             ; preds = %1265
  %1270 = load i8, ptr %92, align 1, !tbaa !11, !range !13, !noundef !14
  %1271 = trunc i8 %1270 to i1
  br i1 %1271, label %1272, label %1295

1272:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  %1273 = load i32, ptr %89, align 4, !tbaa !5
  %1274 = load i32, ptr %90, align 4, !tbaa !5
  %1275 = icmp sgt i32 %1273, %1274
  br i1 %1275, label %1276, label %1280

1276:                                             ; preds = %1272
  %1277 = load i32, ptr %89, align 4, !tbaa !5
  %1278 = load i32, ptr %90, align 4, !tbaa !5
  %1279 = sub nsw i32 %1277, %1278
  br label %1284

1280:                                             ; preds = %1272
  %1281 = load i32, ptr %90, align 4, !tbaa !5
  %1282 = load i32, ptr %89, align 4, !tbaa !5
  %1283 = sub nsw i32 %1281, %1282
  br label %1284

1284:                                             ; preds = %1280, %1276
  %1285 = phi i32 [ %1279, %1276 ], [ %1283, %1280 ]
  store i32 %1285, ptr %93, align 4, !tbaa !5
  %1286 = load i32, ptr %93, align 4, !tbaa !5
  %1287 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1288 = icmp sgt i32 %1286, %1287
  br i1 %1288, label %1289, label %1294

1289:                                             ; preds = %1284
  %1290 = load i32, ptr %89, align 4, !tbaa !5
  %1291 = sitofp i32 %1290 to double
  %1292 = load i32, ptr %90, align 4, !tbaa !5
  %1293 = sitofp i32 %1292 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 259, double noundef %1291, double noundef %1293)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1294

1294:                                             ; preds = %1289, %1284
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  br label %1310

1295:                                             ; preds = %1269, %1265
  %1296 = load i32, ptr %89, align 4, !tbaa !5
  %1297 = load i32, ptr %90, align 4, !tbaa !5
  %1298 = icmp ne i32 %1296, %1297
  br i1 %1298, label %1299, label %1309

1299:                                             ; preds = %1295
  %1300 = load i32, ptr %89, align 4, !tbaa !5
  %1301 = load i32, ptr %90, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 259, i32 noundef %1300, i32 noundef %1301)
  %1302 = load i8, ptr %91, align 1, !tbaa !11, !range !13, !noundef !14
  %1303 = trunc i8 %1302 to i1
  br i1 %1303, label %1307, label %1304

1304:                                             ; preds = %1299
  %1305 = load i8, ptr %92, align 1, !tbaa !11, !range !13, !noundef !14
  %1306 = trunc i8 %1305 to i1
  br i1 %1306, label %1307, label %1308

1307:                                             ; preds = %1304, %1299
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1308

1308:                                             ; preds = %1307, %1304
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1309

1309:                                             ; preds = %1308, %1295
  br label %1310

1310:                                             ; preds = %1309, %1294
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

1312:                                             ; preds = %1311
  %1313 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF0000000000000, ptr noundef %42)
  store i64 %1313, ptr %43, align 8, !tbaa !26
  br label %1314

1314:                                             ; preds = %1312
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  %1315 = call noundef i64 @_ZNSt14numeric_limitsIlE3maxEv() #8
  store i64 %1315, ptr %94, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %1316 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %1316, ptr %95, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  %1317 = load i64, ptr %94, align 8, !tbaa !26
  %1318 = load i64, ptr %95, align 8, !tbaa !26
  %1319 = icmp sgt i64 %1317, %1318
  br i1 %1319, label %1320, label %1324

1320:                                             ; preds = %1314
  %1321 = load i64, ptr %94, align 8, !tbaa !26
  %1322 = load i64, ptr %95, align 8, !tbaa !26
  %1323 = sub nsw i64 %1321, %1322
  br label %1328

1324:                                             ; preds = %1314
  %1325 = load i64, ptr %95, align 8, !tbaa !26
  %1326 = load i64, ptr %94, align 8, !tbaa !26
  %1327 = sub nsw i64 %1325, %1326
  br label %1328

1328:                                             ; preds = %1324, %1320
  %1329 = phi i64 [ %1323, %1320 ], [ %1327, %1324 ]
  store i64 %1329, ptr %96, align 8, !tbaa !26
  %1330 = load i64, ptr %94, align 8, !tbaa !26
  %1331 = load i64, ptr %95, align 8, !tbaa !26
  %1332 = icmp ne i64 %1330, %1331
  br i1 %1332, label %1333, label %1341

1333:                                             ; preds = %1328
  %1334 = load i64, ptr %96, align 8, !tbaa !26
  %1335 = icmp sgt i64 %1334, 1
  br i1 %1335, label %1336, label %1341

1336:                                             ; preds = %1333
  %1337 = load i64, ptr %94, align 8, !tbaa !26
  %1338 = sitofp i64 %1337 to double
  %1339 = load i64, ptr %95, align 8, !tbaa !26
  %1340 = sitofp i64 %1339 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.35, double noundef %1338, double noundef %1340, ptr noundef @.str.3, i32 noundef 262)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1341

1341:                                             ; preds = %1336, %1333, %1328
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1342

1342:                                             ; preds = %1341
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

1344:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  store i32 2147483647, ptr %97, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #8
  %1345 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %1345, ptr %98, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #8
  store i8 0, ptr %99, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #8
  store i8 0, ptr %100, align 1, !tbaa !11
  %1346 = load i8, ptr %99, align 1, !tbaa !11, !range !13, !noundef !14
  %1347 = trunc i8 %1346 to i1
  br i1 %1347, label %1348, label %1374

1348:                                             ; preds = %1344
  %1349 = load i8, ptr %100, align 1, !tbaa !11, !range !13, !noundef !14
  %1350 = trunc i8 %1349 to i1
  br i1 %1350, label %1351, label %1374

1351:                                             ; preds = %1348
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #8
  %1352 = load i32, ptr %97, align 4, !tbaa !5
  %1353 = load i32, ptr %98, align 4, !tbaa !5
  %1354 = icmp sgt i32 %1352, %1353
  br i1 %1354, label %1355, label %1359

1355:                                             ; preds = %1351
  %1356 = load i32, ptr %97, align 4, !tbaa !5
  %1357 = load i32, ptr %98, align 4, !tbaa !5
  %1358 = sub nsw i32 %1356, %1357
  br label %1363

1359:                                             ; preds = %1351
  %1360 = load i32, ptr %98, align 4, !tbaa !5
  %1361 = load i32, ptr %97, align 4, !tbaa !5
  %1362 = sub nsw i32 %1360, %1361
  br label %1363

1363:                                             ; preds = %1359, %1355
  %1364 = phi i32 [ %1358, %1355 ], [ %1362, %1359 ]
  store i32 %1364, ptr %101, align 4, !tbaa !5
  %1365 = load i32, ptr %101, align 4, !tbaa !5
  %1366 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1367 = icmp sgt i32 %1365, %1366
  br i1 %1367, label %1368, label %1373

1368:                                             ; preds = %1363
  %1369 = load i32, ptr %97, align 4, !tbaa !5
  %1370 = sitofp i32 %1369 to double
  %1371 = load i32, ptr %98, align 4, !tbaa !5
  %1372 = sitofp i32 %1371 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 263, double noundef %1370, double noundef %1372)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1373

1373:                                             ; preds = %1368, %1363
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  br label %1389

1374:                                             ; preds = %1348, %1344
  %1375 = load i32, ptr %97, align 4, !tbaa !5
  %1376 = load i32, ptr %98, align 4, !tbaa !5
  %1377 = icmp ne i32 %1375, %1376
  br i1 %1377, label %1378, label %1388

1378:                                             ; preds = %1374
  %1379 = load i32, ptr %97, align 4, !tbaa !5
  %1380 = load i32, ptr %98, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 263, i32 noundef %1379, i32 noundef %1380)
  %1381 = load i8, ptr %99, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc i8 %1381 to i1
  br i1 %1382, label %1386, label %1383

1383:                                             ; preds = %1378
  %1384 = load i8, ptr %100, align 1, !tbaa !11, !range !13, !noundef !14
  %1385 = trunc i8 %1384 to i1
  br i1 %1385, label %1386, label %1387

1386:                                             ; preds = %1383, %1378
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1387

1387:                                             ; preds = %1386, %1383
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1388

1388:                                             ; preds = %1387, %1374
  br label %1389

1389:                                             ; preds = %1388, %1373
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

1391:                                             ; preds = %1390
  %1392 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0xFFF0000000000000, ptr noundef %42)
  store i64 %1392, ptr %43, align 8, !tbaa !26
  br label %1393

1393:                                             ; preds = %1391
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #8
  %1394 = call noundef i64 @_ZNSt14numeric_limitsIlE3minEv() #8
  store i64 %1394, ptr %102, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #8
  %1395 = load i64, ptr %43, align 8, !tbaa !26
  store i64 %1395, ptr %103, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #8
  %1396 = load i64, ptr %102, align 8, !tbaa !26
  %1397 = load i64, ptr %103, align 8, !tbaa !26
  %1398 = icmp sgt i64 %1396, %1397
  br i1 %1398, label %1399, label %1403

1399:                                             ; preds = %1393
  %1400 = load i64, ptr %102, align 8, !tbaa !26
  %1401 = load i64, ptr %103, align 8, !tbaa !26
  %1402 = sub nsw i64 %1400, %1401
  br label %1407

1403:                                             ; preds = %1393
  %1404 = load i64, ptr %103, align 8, !tbaa !26
  %1405 = load i64, ptr %102, align 8, !tbaa !26
  %1406 = sub nsw i64 %1404, %1405
  br label %1407

1407:                                             ; preds = %1403, %1399
  %1408 = phi i64 [ %1402, %1399 ], [ %1406, %1403 ]
  store i64 %1408, ptr %104, align 8, !tbaa !26
  %1409 = load i64, ptr %102, align 8, !tbaa !26
  %1410 = load i64, ptr %103, align 8, !tbaa !26
  %1411 = icmp ne i64 %1409, %1410
  br i1 %1411, label %1412, label %1420

1412:                                             ; preds = %1407
  %1413 = load i64, ptr %104, align 8, !tbaa !26
  %1414 = icmp sgt i64 %1413, 1
  br i1 %1414, label %1415, label %1420

1415:                                             ; preds = %1412
  %1416 = load i64, ptr %102, align 8, !tbaa !26
  %1417 = sitofp i64 %1416 to double
  %1418 = load i64, ptr %103, align 8, !tbaa !26
  %1419 = sitofp i64 %1418 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.36, double noundef %1417, double noundef %1419, ptr noundef @.str.3, i32 noundef 266)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1420

1420:                                             ; preds = %1415, %1412, %1407
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #8
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

1423:                                             ; preds = %1422
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #8
  store i32 2147483647, ptr %105, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #8
  %1424 = load i32, ptr %42, align 4, !tbaa !5
  store i32 %1424, ptr %106, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #8
  store i8 0, ptr %107, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #8
  store i8 0, ptr %108, align 1, !tbaa !11
  %1425 = load i8, ptr %107, align 1, !tbaa !11, !range !13, !noundef !14
  %1426 = trunc i8 %1425 to i1
  br i1 %1426, label %1427, label %1453

1427:                                             ; preds = %1423
  %1428 = load i8, ptr %108, align 1, !tbaa !11, !range !13, !noundef !14
  %1429 = trunc i8 %1428 to i1
  br i1 %1429, label %1430, label %1453

1430:                                             ; preds = %1427
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #8
  %1431 = load i32, ptr %105, align 4, !tbaa !5
  %1432 = load i32, ptr %106, align 4, !tbaa !5
  %1433 = icmp sgt i32 %1431, %1432
  br i1 %1433, label %1434, label %1438

1434:                                             ; preds = %1430
  %1435 = load i32, ptr %105, align 4, !tbaa !5
  %1436 = load i32, ptr %106, align 4, !tbaa !5
  %1437 = sub nsw i32 %1435, %1436
  br label %1442

1438:                                             ; preds = %1430
  %1439 = load i32, ptr %106, align 4, !tbaa !5
  %1440 = load i32, ptr %105, align 4, !tbaa !5
  %1441 = sub nsw i32 %1439, %1440
  br label %1442

1442:                                             ; preds = %1438, %1434
  %1443 = phi i32 [ %1437, %1434 ], [ %1441, %1438 ]
  store i32 %1443, ptr %109, align 4, !tbaa !5
  %1444 = load i32, ptr %109, align 4, !tbaa !5
  %1445 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1446 = icmp sgt i32 %1444, %1445
  br i1 %1446, label %1447, label %1452

1447:                                             ; preds = %1442
  %1448 = load i32, ptr %105, align 4, !tbaa !5
  %1449 = sitofp i32 %1448 to double
  %1450 = load i32, ptr %106, align 4, !tbaa !5
  %1451 = sitofp i32 %1450 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 267, double noundef %1449, double noundef %1451)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1452

1452:                                             ; preds = %1447, %1442
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  br label %1468

1453:                                             ; preds = %1427, %1423
  %1454 = load i32, ptr %105, align 4, !tbaa !5
  %1455 = load i32, ptr %106, align 4, !tbaa !5
  %1456 = icmp ne i32 %1454, %1455
  br i1 %1456, label %1457, label %1467

1457:                                             ; preds = %1453
  %1458 = load i32, ptr %105, align 4, !tbaa !5
  %1459 = load i32, ptr %106, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 267, i32 noundef %1458, i32 noundef %1459)
  %1460 = load i8, ptr %107, align 1, !tbaa !11, !range !13, !noundef !14
  %1461 = trunc i8 %1460 to i1
  br i1 %1461, label %1465, label %1462

1462:                                             ; preds = %1457
  %1463 = load i8, ptr %108, align 1, !tbaa !11, !range !13, !noundef !14
  %1464 = trunc i8 %1463 to i1
  br i1 %1464, label %1465, label %1466

1465:                                             ; preds = %1462, %1457
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1466

1466:                                             ; preds = %1465, %1462
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1467

1467:                                             ; preds = %1466, %1453
  br label %1468

1468:                                             ; preds = %1467, %1452
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #8
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

1470:                                             ; preds = %1469
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1471

1471:                                             ; preds = %1470
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %1472 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %1473 = trunc i8 %1472 to i1
  %1474 = zext i1 %1473 to i64
  %1475 = select i1 %1473, i32 0, i32 1
  %1476 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %1477 = add nsw i32 %1476, %1475
  store i32 %1477, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %1478 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %1479 = trunc i8 %1478 to i1
  %1480 = zext i1 %1479 to i64
  %1481 = select i1 %1479, i32 1, i32 0
  %1482 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %1483 = add nsw i32 %1482, %1481
  store i32 %1483, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %796, !llvm.loop !28

1484:                                             ; preds = %796
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.37)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1485

1485:                                             ; preds = %2312, %1484
  %1486 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %1487 = trunc i8 %1486 to i1
  %1488 = xor i1 %1487, true
  br i1 %1488, label %1489, label %2325

1489:                                             ; preds = %1485
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #8
  %1490 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0.000000e+00, ptr noundef %110)
  %1491 = trunc i64 %1490 to i32
  store i32 %1491, ptr %111, align 4, !tbaa !5
  br label %1492

1492:                                             ; preds = %1489
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #8
  %1493 = load i32, ptr %111, align 4, !tbaa !5
  store i32 %1493, ptr %112, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #8
  store i32 0, ptr %113, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #8
  store i8 0, ptr %114, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #8
  store i8 0, ptr %115, align 1, !tbaa !11
  %1494 = load i8, ptr %114, align 1, !tbaa !11, !range !13, !noundef !14
  %1495 = trunc i8 %1494 to i1
  br i1 %1495, label %1496, label %1522

1496:                                             ; preds = %1492
  %1497 = load i8, ptr %115, align 1, !tbaa !11, !range !13, !noundef !14
  %1498 = trunc i8 %1497 to i1
  br i1 %1498, label %1499, label %1522

1499:                                             ; preds = %1496
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #8
  %1500 = load i32, ptr %112, align 4, !tbaa !5
  %1501 = load i32, ptr %113, align 4, !tbaa !5
  %1502 = icmp sgt i32 %1500, %1501
  br i1 %1502, label %1503, label %1507

1503:                                             ; preds = %1499
  %1504 = load i32, ptr %112, align 4, !tbaa !5
  %1505 = load i32, ptr %113, align 4, !tbaa !5
  %1506 = sub nsw i32 %1504, %1505
  br label %1511

1507:                                             ; preds = %1499
  %1508 = load i32, ptr %113, align 4, !tbaa !5
  %1509 = load i32, ptr %112, align 4, !tbaa !5
  %1510 = sub nsw i32 %1508, %1509
  br label %1511

1511:                                             ; preds = %1507, %1503
  %1512 = phi i32 [ %1506, %1503 ], [ %1510, %1507 ]
  store i32 %1512, ptr %116, align 4, !tbaa !5
  %1513 = load i32, ptr %116, align 4, !tbaa !5
  %1514 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1515 = icmp sgt i32 %1513, %1514
  br i1 %1515, label %1516, label %1521

1516:                                             ; preds = %1511
  %1517 = load i32, ptr %112, align 4, !tbaa !5
  %1518 = sitofp i32 %1517 to double
  %1519 = load i32, ptr %113, align 4, !tbaa !5
  %1520 = sitofp i32 %1519 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 273, double noundef %1518, double noundef %1520)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1521

1521:                                             ; preds = %1516, %1511
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #8
  br label %1537

1522:                                             ; preds = %1496, %1492
  %1523 = load i32, ptr %112, align 4, !tbaa !5
  %1524 = load i32, ptr %113, align 4, !tbaa !5
  %1525 = icmp ne i32 %1523, %1524
  br i1 %1525, label %1526, label %1536

1526:                                             ; preds = %1522
  %1527 = load i32, ptr %112, align 4, !tbaa !5
  %1528 = load i32, ptr %113, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.39, ptr noundef @.str.3, i32 noundef 273, i32 noundef %1527, i32 noundef %1528)
  %1529 = load i8, ptr %114, align 1, !tbaa !11, !range !13, !noundef !14
  %1530 = trunc i8 %1529 to i1
  br i1 %1530, label %1534, label %1531

1531:                                             ; preds = %1526
  %1532 = load i8, ptr %115, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc i8 %1532 to i1
  br i1 %1533, label %1534, label %1535

1534:                                             ; preds = %1531, %1526
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1535

1535:                                             ; preds = %1534, %1531
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1536

1536:                                             ; preds = %1535, %1522
  br label %1537

1537:                                             ; preds = %1536, %1521
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #8
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #8
  %1541 = load i32, ptr %110, align 4, !tbaa !5
  store i32 %1541, ptr %117, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #8
  store i32 0, ptr %118, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #8
  store i8 0, ptr %119, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %120) #8
  store i8 0, ptr %120, align 1, !tbaa !11
  %1542 = load i8, ptr %119, align 1, !tbaa !11, !range !13, !noundef !14
  %1543 = trunc i8 %1542 to i1
  br i1 %1543, label %1544, label %1570

1544:                                             ; preds = %1540
  %1545 = load i8, ptr %120, align 1, !tbaa !11, !range !13, !noundef !14
  %1546 = trunc i8 %1545 to i1
  br i1 %1546, label %1547, label %1570

1547:                                             ; preds = %1544
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #8
  %1548 = load i32, ptr %117, align 4, !tbaa !5
  %1549 = load i32, ptr %118, align 4, !tbaa !5
  %1550 = icmp sgt i32 %1548, %1549
  br i1 %1550, label %1551, label %1555

1551:                                             ; preds = %1547
  %1552 = load i32, ptr %117, align 4, !tbaa !5
  %1553 = load i32, ptr %118, align 4, !tbaa !5
  %1554 = sub nsw i32 %1552, %1553
  br label %1559

1555:                                             ; preds = %1547
  %1556 = load i32, ptr %118, align 4, !tbaa !5
  %1557 = load i32, ptr %117, align 4, !tbaa !5
  %1558 = sub nsw i32 %1556, %1557
  br label %1559

1559:                                             ; preds = %1555, %1551
  %1560 = phi i32 [ %1554, %1551 ], [ %1558, %1555 ]
  store i32 %1560, ptr %121, align 4, !tbaa !5
  %1561 = load i32, ptr %121, align 4, !tbaa !5
  %1562 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1563 = icmp sgt i32 %1561, %1562
  br i1 %1563, label %1564, label %1569

1564:                                             ; preds = %1559
  %1565 = load i32, ptr %117, align 4, !tbaa !5
  %1566 = sitofp i32 %1565 to double
  %1567 = load i32, ptr %118, align 4, !tbaa !5
  %1568 = sitofp i32 %1567 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.40, ptr noundef @.str.3, i32 noundef 274, double noundef %1566, double noundef %1568)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1569

1569:                                             ; preds = %1564, %1559
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #8
  br label %1585

1570:                                             ; preds = %1544, %1540
  %1571 = load i32, ptr %117, align 4, !tbaa !5
  %1572 = load i32, ptr %118, align 4, !tbaa !5
  %1573 = icmp ne i32 %1571, %1572
  br i1 %1573, label %1574, label %1584

1574:                                             ; preds = %1570
  %1575 = load i32, ptr %117, align 4, !tbaa !5
  %1576 = load i32, ptr %118, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 274, i32 noundef %1575, i32 noundef %1576)
  %1577 = load i8, ptr %119, align 1, !tbaa !11, !range !13, !noundef !14
  %1578 = trunc i8 %1577 to i1
  br i1 %1578, label %1582, label %1579

1579:                                             ; preds = %1574
  %1580 = load i8, ptr %120, align 1, !tbaa !11, !range !13, !noundef !14
  %1581 = trunc i8 %1580 to i1
  br i1 %1581, label %1582, label %1583

1582:                                             ; preds = %1579, %1574
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1583

1583:                                             ; preds = %1582, %1579
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1584

1584:                                             ; preds = %1583, %1570
  br label %1585

1585:                                             ; preds = %1584, %1569
  call void @llvm.lifetime.end.p0(i64 1, ptr %120) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #8
  br label %1586

1586:                                             ; preds = %1585
  br label %1587

1587:                                             ; preds = %1586
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #8
  %1588 = call double @frexp(double noundef 0.000000e+00, ptr noundef %122) #8
  store double %1588, ptr %123, align 8, !tbaa !20
  br label %1589

1589:                                             ; preds = %1587
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #8
  %1590 = load double, ptr %123, align 8, !tbaa !20
  store double %1590, ptr %124, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #8
  store i32 0, ptr %125, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %126) #8
  store i8 1, ptr %126, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %127) #8
  store i8 0, ptr %127, align 1, !tbaa !11
  %1591 = load i8, ptr %126, align 1, !tbaa !11, !range !13, !noundef !14
  %1592 = trunc i8 %1591 to i1
  br i1 %1592, label %1593, label %1621

1593:                                             ; preds = %1589
  %1594 = load i8, ptr %127, align 1, !tbaa !11, !range !13, !noundef !14
  %1595 = trunc i8 %1594 to i1
  br i1 %1595, label %1596, label %1621

1596:                                             ; preds = %1593
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #8
  %1597 = load double, ptr %124, align 8, !tbaa !20
  %1598 = load i32, ptr %125, align 4, !tbaa !5
  %1599 = sitofp i32 %1598 to double
  %1600 = fcmp ogt double %1597, %1599
  br i1 %1600, label %1601, label %1606

1601:                                             ; preds = %1596
  %1602 = load double, ptr %124, align 8, !tbaa !20
  %1603 = load i32, ptr %125, align 4, !tbaa !5
  %1604 = sitofp i32 %1603 to double
  %1605 = fsub double %1602, %1604
  br label %1611

1606:                                             ; preds = %1596
  %1607 = load i32, ptr %125, align 4, !tbaa !5
  %1608 = sitofp i32 %1607 to double
  %1609 = load double, ptr %124, align 8, !tbaa !20
  %1610 = fsub double %1608, %1609
  br label %1611

1611:                                             ; preds = %1606, %1601
  %1612 = phi double [ %1605, %1601 ], [ %1610, %1606 ]
  store double %1612, ptr %128, align 8, !tbaa !20
  %1613 = load double, ptr %128, align 8, !tbaa !20
  %1614 = call noundef double @_ZNSt14numeric_limitsIdE7epsilonEv() #8
  %1615 = fcmp ogt double %1613, %1614
  br i1 %1615, label %1616, label %1620

1616:                                             ; preds = %1611
  %1617 = load double, ptr %124, align 8, !tbaa !20
  %1618 = load i32, ptr %125, align 4, !tbaa !5
  %1619 = sitofp i32 %1618 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 278, double noundef %1617, double noundef %1619)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1620

1620:                                             ; preds = %1616, %1611
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #8
  br label %1638

1621:                                             ; preds = %1593, %1589
  %1622 = load double, ptr %124, align 8, !tbaa !20
  %1623 = load i32, ptr %125, align 4, !tbaa !5
  %1624 = sitofp i32 %1623 to double
  %1625 = fcmp une double %1622, %1624
  br i1 %1625, label %1626, label %1637

1626:                                             ; preds = %1621
  %1627 = load double, ptr %124, align 8, !tbaa !20
  %1628 = fptosi double %1627 to i32
  %1629 = load i32, ptr %125, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 278, i32 noundef %1628, i32 noundef %1629)
  %1630 = load i8, ptr %126, align 1, !tbaa !11, !range !13, !noundef !14
  %1631 = trunc i8 %1630 to i1
  br i1 %1631, label %1635, label %1632

1632:                                             ; preds = %1626
  %1633 = load i8, ptr %127, align 1, !tbaa !11, !range !13, !noundef !14
  %1634 = trunc i8 %1633 to i1
  br i1 %1634, label %1635, label %1636

1635:                                             ; preds = %1632, %1626
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1636

1636:                                             ; preds = %1635, %1632
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1637

1637:                                             ; preds = %1636, %1621
  br label %1638

1638:                                             ; preds = %1637, %1620
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  br label %1639

1639:                                             ; preds = %1638
  br label %1640

1640:                                             ; preds = %1639
  br label %1641

1641:                                             ; preds = %1640
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #8
  %1642 = load i32, ptr %122, align 4, !tbaa !5
  store i32 %1642, ptr %129, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #8
  store i32 0, ptr %130, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #8
  store i8 0, ptr %131, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %132) #8
  store i8 0, ptr %132, align 1, !tbaa !11
  %1643 = load i8, ptr %131, align 1, !tbaa !11, !range !13, !noundef !14
  %1644 = trunc i8 %1643 to i1
  br i1 %1644, label %1645, label %1671

1645:                                             ; preds = %1641
  %1646 = load i8, ptr %132, align 1, !tbaa !11, !range !13, !noundef !14
  %1647 = trunc i8 %1646 to i1
  br i1 %1647, label %1648, label %1671

1648:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #8
  %1649 = load i32, ptr %129, align 4, !tbaa !5
  %1650 = load i32, ptr %130, align 4, !tbaa !5
  %1651 = icmp sgt i32 %1649, %1650
  br i1 %1651, label %1652, label %1656

1652:                                             ; preds = %1648
  %1653 = load i32, ptr %129, align 4, !tbaa !5
  %1654 = load i32, ptr %130, align 4, !tbaa !5
  %1655 = sub nsw i32 %1653, %1654
  br label %1660

1656:                                             ; preds = %1648
  %1657 = load i32, ptr %130, align 4, !tbaa !5
  %1658 = load i32, ptr %129, align 4, !tbaa !5
  %1659 = sub nsw i32 %1657, %1658
  br label %1660

1660:                                             ; preds = %1656, %1652
  %1661 = phi i32 [ %1655, %1652 ], [ %1659, %1656 ]
  store i32 %1661, ptr %133, align 4, !tbaa !5
  %1662 = load i32, ptr %133, align 4, !tbaa !5
  %1663 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1664 = icmp sgt i32 %1662, %1663
  br i1 %1664, label %1665, label %1670

1665:                                             ; preds = %1660
  %1666 = load i32, ptr %129, align 4, !tbaa !5
  %1667 = sitofp i32 %1666 to double
  %1668 = load i32, ptr %130, align 4, !tbaa !5
  %1669 = sitofp i32 %1668 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.44, ptr noundef @.str.3, i32 noundef 279, double noundef %1667, double noundef %1669)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1670

1670:                                             ; preds = %1665, %1660
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #8
  br label %1686

1671:                                             ; preds = %1645, %1641
  %1672 = load i32, ptr %129, align 4, !tbaa !5
  %1673 = load i32, ptr %130, align 4, !tbaa !5
  %1674 = icmp ne i32 %1672, %1673
  br i1 %1674, label %1675, label %1685

1675:                                             ; preds = %1671
  %1676 = load i32, ptr %129, align 4, !tbaa !5
  %1677 = load i32, ptr %130, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.45, ptr noundef @.str.3, i32 noundef 279, i32 noundef %1676, i32 noundef %1677)
  %1678 = load i8, ptr %131, align 1, !tbaa !11, !range !13, !noundef !14
  %1679 = trunc i8 %1678 to i1
  br i1 %1679, label %1683, label %1680

1680:                                             ; preds = %1675
  %1681 = load i8, ptr %132, align 1, !tbaa !11, !range !13, !noundef !14
  %1682 = trunc i8 %1681 to i1
  br i1 %1682, label %1683, label %1684

1683:                                             ; preds = %1680, %1675
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1684

1684:                                             ; preds = %1683, %1680
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1685

1685:                                             ; preds = %1684, %1671
  br label %1686

1686:                                             ; preds = %1685, %1670
  call void @llvm.lifetime.end.p0(i64 1, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #8
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687
  %1689 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.000000e+00, ptr noundef %110)
  %1690 = trunc i64 %1689 to i32
  store i32 %1690, ptr %111, align 4, !tbaa !5
  br label %1691

1691:                                             ; preds = %1688
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #8
  %1692 = load i32, ptr %111, align 4, !tbaa !5
  store i32 %1692, ptr %134, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #8
  store i32 1073741824, ptr %135, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #8
  %1693 = load i32, ptr %134, align 4, !tbaa !5
  %1694 = load i32, ptr %135, align 4, !tbaa !5
  %1695 = icmp sgt i32 %1693, %1694
  br i1 %1695, label %1696, label %1700

1696:                                             ; preds = %1691
  %1697 = load i32, ptr %134, align 4, !tbaa !5
  %1698 = load i32, ptr %135, align 4, !tbaa !5
  %1699 = sub nsw i32 %1697, %1698
  br label %1704

1700:                                             ; preds = %1691
  %1701 = load i32, ptr %135, align 4, !tbaa !5
  %1702 = load i32, ptr %134, align 4, !tbaa !5
  %1703 = sub nsw i32 %1701, %1702
  br label %1704

1704:                                             ; preds = %1700, %1696
  %1705 = phi i32 [ %1699, %1696 ], [ %1703, %1700 ]
  store i32 %1705, ptr %136, align 4, !tbaa !5
  %1706 = load i32, ptr %134, align 4, !tbaa !5
  %1707 = load i32, ptr %135, align 4, !tbaa !5
  %1708 = icmp ne i32 %1706, %1707
  br i1 %1708, label %1709, label %1717

1709:                                             ; preds = %1704
  %1710 = load i32, ptr %136, align 4, !tbaa !5
  %1711 = icmp sgt i32 %1710, 1
  br i1 %1711, label %1712, label %1717

1712:                                             ; preds = %1709
  %1713 = load i32, ptr %134, align 4, !tbaa !5
  %1714 = sitofp i32 %1713 to double
  %1715 = load i32, ptr %135, align 4, !tbaa !5
  %1716 = sitofp i32 %1715 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.46, double noundef %1714, double noundef %1716, ptr noundef @.str.3, i32 noundef 282)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1717

1717:                                             ; preds = %1712, %1709, %1704
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #8
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #8
  %1721 = load i32, ptr %110, align 4, !tbaa !5
  store i32 %1721, ptr %137, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #8
  store i32 1, ptr %138, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #8
  store i8 0, ptr %139, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %140) #8
  store i8 0, ptr %140, align 1, !tbaa !11
  %1722 = load i8, ptr %139, align 1, !tbaa !11, !range !13, !noundef !14
  %1723 = trunc i8 %1722 to i1
  br i1 %1723, label %1724, label %1750

1724:                                             ; preds = %1720
  %1725 = load i8, ptr %140, align 1, !tbaa !11, !range !13, !noundef !14
  %1726 = trunc i8 %1725 to i1
  br i1 %1726, label %1727, label %1750

1727:                                             ; preds = %1724
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #8
  %1728 = load i32, ptr %137, align 4, !tbaa !5
  %1729 = load i32, ptr %138, align 4, !tbaa !5
  %1730 = icmp sgt i32 %1728, %1729
  br i1 %1730, label %1731, label %1735

1731:                                             ; preds = %1727
  %1732 = load i32, ptr %137, align 4, !tbaa !5
  %1733 = load i32, ptr %138, align 4, !tbaa !5
  %1734 = sub nsw i32 %1732, %1733
  br label %1739

1735:                                             ; preds = %1727
  %1736 = load i32, ptr %138, align 4, !tbaa !5
  %1737 = load i32, ptr %137, align 4, !tbaa !5
  %1738 = sub nsw i32 %1736, %1737
  br label %1739

1739:                                             ; preds = %1735, %1731
  %1740 = phi i32 [ %1734, %1731 ], [ %1738, %1735 ]
  store i32 %1740, ptr %141, align 4, !tbaa !5
  %1741 = load i32, ptr %141, align 4, !tbaa !5
  %1742 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1743 = icmp sgt i32 %1741, %1742
  br i1 %1743, label %1744, label %1749

1744:                                             ; preds = %1739
  %1745 = load i32, ptr %137, align 4, !tbaa !5
  %1746 = sitofp i32 %1745 to double
  %1747 = load i32, ptr %138, align 4, !tbaa !5
  %1748 = sitofp i32 %1747 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.47, ptr noundef @.str.3, i32 noundef 283, double noundef %1746, double noundef %1748)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1749

1749:                                             ; preds = %1744, %1739
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #8
  br label %1765

1750:                                             ; preds = %1724, %1720
  %1751 = load i32, ptr %137, align 4, !tbaa !5
  %1752 = load i32, ptr %138, align 4, !tbaa !5
  %1753 = icmp ne i32 %1751, %1752
  br i1 %1753, label %1754, label %1764

1754:                                             ; preds = %1750
  %1755 = load i32, ptr %137, align 4, !tbaa !5
  %1756 = load i32, ptr %138, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.48, ptr noundef @.str.3, i32 noundef 283, i32 noundef %1755, i32 noundef %1756)
  %1757 = load i8, ptr %139, align 1, !tbaa !11, !range !13, !noundef !14
  %1758 = trunc i8 %1757 to i1
  br i1 %1758, label %1762, label %1759

1759:                                             ; preds = %1754
  %1760 = load i8, ptr %140, align 1, !tbaa !11, !range !13, !noundef !14
  %1761 = trunc i8 %1760 to i1
  br i1 %1761, label %1762, label %1763

1762:                                             ; preds = %1759, %1754
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1763

1763:                                             ; preds = %1762, %1759
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1764

1764:                                             ; preds = %1763, %1750
  br label %1765

1765:                                             ; preds = %1764, %1749
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #8
  br label %1766

1766:                                             ; preds = %1765
  br label %1767

1767:                                             ; preds = %1766
  %1768 = call double @frexp(double noundef 1.000000e+00, ptr noundef %122) #8
  store double %1768, ptr %123, align 8, !tbaa !20
  br label %1769

1769:                                             ; preds = %1767
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #8
  %1770 = load double, ptr %123, align 8, !tbaa !20
  store double %1770, ptr %142, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #8
  store double 5.000000e-01, ptr %143, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #8
  %1771 = load double, ptr %142, align 8, !tbaa !20
  %1772 = load double, ptr %143, align 8, !tbaa !20
  %1773 = fcmp ogt double %1771, %1772
  br i1 %1773, label %1774, label %1778

1774:                                             ; preds = %1769
  %1775 = load double, ptr %142, align 8, !tbaa !20
  %1776 = load double, ptr %143, align 8, !tbaa !20
  %1777 = fsub double %1775, %1776
  br label %1782

1778:                                             ; preds = %1769
  %1779 = load double, ptr %143, align 8, !tbaa !20
  %1780 = load double, ptr %142, align 8, !tbaa !20
  %1781 = fsub double %1779, %1780
  br label %1782

1782:                                             ; preds = %1778, %1774
  %1783 = phi double [ %1777, %1774 ], [ %1781, %1778 ]
  store double %1783, ptr %144, align 8, !tbaa !20
  %1784 = load double, ptr %142, align 8, !tbaa !20
  %1785 = load double, ptr %143, align 8, !tbaa !20
  %1786 = fcmp une double %1784, %1785
  br i1 %1786, label %1787, label %1793

1787:                                             ; preds = %1782
  %1788 = load double, ptr %144, align 8, !tbaa !20
  %1789 = fcmp ogt double %1788, 1.000000e-05
  br i1 %1789, label %1790, label %1793

1790:                                             ; preds = %1787
  %1791 = load double, ptr %142, align 8, !tbaa !20
  %1792 = load double, ptr %143, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.49, double noundef %1791, double noundef %1792, ptr noundef @.str.3, i32 noundef 285)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1793

1793:                                             ; preds = %1790, %1787, %1782
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #8
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #8
  %1797 = load i32, ptr %122, align 4, !tbaa !5
  store i32 %1797, ptr %145, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #8
  store i32 1, ptr %146, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #8
  store i8 0, ptr %147, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %148) #8
  store i8 0, ptr %148, align 1, !tbaa !11
  %1798 = load i8, ptr %147, align 1, !tbaa !11, !range !13, !noundef !14
  %1799 = trunc i8 %1798 to i1
  br i1 %1799, label %1800, label %1826

1800:                                             ; preds = %1796
  %1801 = load i8, ptr %148, align 1, !tbaa !11, !range !13, !noundef !14
  %1802 = trunc i8 %1801 to i1
  br i1 %1802, label %1803, label %1826

1803:                                             ; preds = %1800
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #8
  %1804 = load i32, ptr %145, align 4, !tbaa !5
  %1805 = load i32, ptr %146, align 4, !tbaa !5
  %1806 = icmp sgt i32 %1804, %1805
  br i1 %1806, label %1807, label %1811

1807:                                             ; preds = %1803
  %1808 = load i32, ptr %145, align 4, !tbaa !5
  %1809 = load i32, ptr %146, align 4, !tbaa !5
  %1810 = sub nsw i32 %1808, %1809
  br label %1815

1811:                                             ; preds = %1803
  %1812 = load i32, ptr %146, align 4, !tbaa !5
  %1813 = load i32, ptr %145, align 4, !tbaa !5
  %1814 = sub nsw i32 %1812, %1813
  br label %1815

1815:                                             ; preds = %1811, %1807
  %1816 = phi i32 [ %1810, %1807 ], [ %1814, %1811 ]
  store i32 %1816, ptr %149, align 4, !tbaa !5
  %1817 = load i32, ptr %149, align 4, !tbaa !5
  %1818 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1819 = icmp sgt i32 %1817, %1818
  br i1 %1819, label %1820, label %1825

1820:                                             ; preds = %1815
  %1821 = load i32, ptr %145, align 4, !tbaa !5
  %1822 = sitofp i32 %1821 to double
  %1823 = load i32, ptr %146, align 4, !tbaa !5
  %1824 = sitofp i32 %1823 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 286, double noundef %1822, double noundef %1824)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1825

1825:                                             ; preds = %1820, %1815
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #8
  br label %1841

1826:                                             ; preds = %1800, %1796
  %1827 = load i32, ptr %145, align 4, !tbaa !5
  %1828 = load i32, ptr %146, align 4, !tbaa !5
  %1829 = icmp ne i32 %1827, %1828
  br i1 %1829, label %1830, label %1840

1830:                                             ; preds = %1826
  %1831 = load i32, ptr %145, align 4, !tbaa !5
  %1832 = load i32, ptr %146, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 286, i32 noundef %1831, i32 noundef %1832)
  %1833 = load i8, ptr %147, align 1, !tbaa !11, !range !13, !noundef !14
  %1834 = trunc i8 %1833 to i1
  br i1 %1834, label %1838, label %1835

1835:                                             ; preds = %1830
  %1836 = load i8, ptr %148, align 1, !tbaa !11, !range !13, !noundef !14
  %1837 = trunc i8 %1836 to i1
  br i1 %1837, label %1838, label %1839

1838:                                             ; preds = %1835, %1830
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1839

1839:                                             ; preds = %1838, %1835
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1840

1840:                                             ; preds = %1839, %1826
  br label %1841

1841:                                             ; preds = %1840, %1825
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #8
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  %1844 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 2.500000e-01, ptr noundef %110)
  %1845 = trunc i64 %1844 to i32
  store i32 %1845, ptr %111, align 4, !tbaa !5
  br label %1846

1846:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #8
  %1847 = load i32, ptr %111, align 4, !tbaa !5
  store i32 %1847, ptr %150, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #8
  store i32 1073741824, ptr %151, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #8
  %1848 = load i32, ptr %150, align 4, !tbaa !5
  %1849 = load i32, ptr %151, align 4, !tbaa !5
  %1850 = icmp sgt i32 %1848, %1849
  br i1 %1850, label %1851, label %1855

1851:                                             ; preds = %1846
  %1852 = load i32, ptr %150, align 4, !tbaa !5
  %1853 = load i32, ptr %151, align 4, !tbaa !5
  %1854 = sub nsw i32 %1852, %1853
  br label %1859

1855:                                             ; preds = %1846
  %1856 = load i32, ptr %151, align 4, !tbaa !5
  %1857 = load i32, ptr %150, align 4, !tbaa !5
  %1858 = sub nsw i32 %1856, %1857
  br label %1859

1859:                                             ; preds = %1855, %1851
  %1860 = phi i32 [ %1854, %1851 ], [ %1858, %1855 ]
  store i32 %1860, ptr %152, align 4, !tbaa !5
  %1861 = load i32, ptr %150, align 4, !tbaa !5
  %1862 = load i32, ptr %151, align 4, !tbaa !5
  %1863 = icmp ne i32 %1861, %1862
  br i1 %1863, label %1864, label %1872

1864:                                             ; preds = %1859
  %1865 = load i32, ptr %152, align 4, !tbaa !5
  %1866 = icmp sgt i32 %1865, 1
  br i1 %1866, label %1867, label %1872

1867:                                             ; preds = %1864
  %1868 = load i32, ptr %150, align 4, !tbaa !5
  %1869 = sitofp i32 %1868 to double
  %1870 = load i32, ptr %151, align 4, !tbaa !5
  %1871 = sitofp i32 %1870 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.46, double noundef %1869, double noundef %1871, ptr noundef @.str.3, i32 noundef 289)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1872

1872:                                             ; preds = %1867, %1864, %1859
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #8
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873
  br label %1875

1875:                                             ; preds = %1874
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #8
  %1876 = load i32, ptr %110, align 4, !tbaa !5
  store i32 %1876, ptr %153, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #8
  store i32 -1, ptr %154, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #8
  store i8 0, ptr %155, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #8
  store i8 0, ptr %156, align 1, !tbaa !11
  %1877 = load i8, ptr %155, align 1, !tbaa !11, !range !13, !noundef !14
  %1878 = trunc i8 %1877 to i1
  br i1 %1878, label %1879, label %1905

1879:                                             ; preds = %1875
  %1880 = load i8, ptr %156, align 1, !tbaa !11, !range !13, !noundef !14
  %1881 = trunc i8 %1880 to i1
  br i1 %1881, label %1882, label %1905

1882:                                             ; preds = %1879
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #8
  %1883 = load i32, ptr %153, align 4, !tbaa !5
  %1884 = load i32, ptr %154, align 4, !tbaa !5
  %1885 = icmp sgt i32 %1883, %1884
  br i1 %1885, label %1886, label %1890

1886:                                             ; preds = %1882
  %1887 = load i32, ptr %153, align 4, !tbaa !5
  %1888 = load i32, ptr %154, align 4, !tbaa !5
  %1889 = sub nsw i32 %1887, %1888
  br label %1894

1890:                                             ; preds = %1882
  %1891 = load i32, ptr %154, align 4, !tbaa !5
  %1892 = load i32, ptr %153, align 4, !tbaa !5
  %1893 = sub nsw i32 %1891, %1892
  br label %1894

1894:                                             ; preds = %1890, %1886
  %1895 = phi i32 [ %1889, %1886 ], [ %1893, %1890 ]
  store i32 %1895, ptr %157, align 4, !tbaa !5
  %1896 = load i32, ptr %157, align 4, !tbaa !5
  %1897 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1898 = icmp sgt i32 %1896, %1897
  br i1 %1898, label %1899, label %1904

1899:                                             ; preds = %1894
  %1900 = load i32, ptr %153, align 4, !tbaa !5
  %1901 = sitofp i32 %1900 to double
  %1902 = load i32, ptr %154, align 4, !tbaa !5
  %1903 = sitofp i32 %1902 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.52, ptr noundef @.str.3, i32 noundef 290, double noundef %1901, double noundef %1903)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1904

1904:                                             ; preds = %1899, %1894
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #8
  br label %1920

1905:                                             ; preds = %1879, %1875
  %1906 = load i32, ptr %153, align 4, !tbaa !5
  %1907 = load i32, ptr %154, align 4, !tbaa !5
  %1908 = icmp ne i32 %1906, %1907
  br i1 %1908, label %1909, label %1919

1909:                                             ; preds = %1905
  %1910 = load i32, ptr %153, align 4, !tbaa !5
  %1911 = load i32, ptr %154, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.53, ptr noundef @.str.3, i32 noundef 290, i32 noundef %1910, i32 noundef %1911)
  %1912 = load i8, ptr %155, align 1, !tbaa !11, !range !13, !noundef !14
  %1913 = trunc i8 %1912 to i1
  br i1 %1913, label %1917, label %1914

1914:                                             ; preds = %1909
  %1915 = load i8, ptr %156, align 1, !tbaa !11, !range !13, !noundef !14
  %1916 = trunc i8 %1915 to i1
  br i1 %1916, label %1917, label %1918

1917:                                             ; preds = %1914, %1909
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1918

1918:                                             ; preds = %1917, %1914
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1919

1919:                                             ; preds = %1918, %1905
  br label %1920

1920:                                             ; preds = %1919, %1904
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #8
  br label %1921

1921:                                             ; preds = %1920
  br label %1922

1922:                                             ; preds = %1921
  %1923 = call double @frexp(double noundef 2.500000e-01, ptr noundef %122) #8
  store double %1923, ptr %123, align 8, !tbaa !20
  br label %1924

1924:                                             ; preds = %1922
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #8
  %1925 = load double, ptr %123, align 8, !tbaa !20
  store double %1925, ptr %158, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #8
  store double 5.000000e-01, ptr %159, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #8
  %1926 = load double, ptr %158, align 8, !tbaa !20
  %1927 = load double, ptr %159, align 8, !tbaa !20
  %1928 = fcmp ogt double %1926, %1927
  br i1 %1928, label %1929, label %1933

1929:                                             ; preds = %1924
  %1930 = load double, ptr %158, align 8, !tbaa !20
  %1931 = load double, ptr %159, align 8, !tbaa !20
  %1932 = fsub double %1930, %1931
  br label %1937

1933:                                             ; preds = %1924
  %1934 = load double, ptr %159, align 8, !tbaa !20
  %1935 = load double, ptr %158, align 8, !tbaa !20
  %1936 = fsub double %1934, %1935
  br label %1937

1937:                                             ; preds = %1933, %1929
  %1938 = phi double [ %1932, %1929 ], [ %1936, %1933 ]
  store double %1938, ptr %160, align 8, !tbaa !20
  %1939 = load double, ptr %158, align 8, !tbaa !20
  %1940 = load double, ptr %159, align 8, !tbaa !20
  %1941 = fcmp une double %1939, %1940
  br i1 %1941, label %1942, label %1948

1942:                                             ; preds = %1937
  %1943 = load double, ptr %160, align 8, !tbaa !20
  %1944 = fcmp ogt double %1943, 1.000000e-05
  br i1 %1944, label %1945, label %1948

1945:                                             ; preds = %1942
  %1946 = load double, ptr %158, align 8, !tbaa !20
  %1947 = load double, ptr %159, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.49, double noundef %1946, double noundef %1947, ptr noundef @.str.3, i32 noundef 292)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1948

1948:                                             ; preds = %1945, %1942, %1937
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #8
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949
  br label %1951

1951:                                             ; preds = %1950
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #8
  %1952 = load i32, ptr %122, align 4, !tbaa !5
  store i32 %1952, ptr %161, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #8
  store i32 -1, ptr %162, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #8
  store i8 0, ptr %163, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #8
  store i8 0, ptr %164, align 1, !tbaa !11
  %1953 = load i8, ptr %163, align 1, !tbaa !11, !range !13, !noundef !14
  %1954 = trunc i8 %1953 to i1
  br i1 %1954, label %1955, label %1981

1955:                                             ; preds = %1951
  %1956 = load i8, ptr %164, align 1, !tbaa !11, !range !13, !noundef !14
  %1957 = trunc i8 %1956 to i1
  br i1 %1957, label %1958, label %1981

1958:                                             ; preds = %1955
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #8
  %1959 = load i32, ptr %161, align 4, !tbaa !5
  %1960 = load i32, ptr %162, align 4, !tbaa !5
  %1961 = icmp sgt i32 %1959, %1960
  br i1 %1961, label %1962, label %1966

1962:                                             ; preds = %1958
  %1963 = load i32, ptr %161, align 4, !tbaa !5
  %1964 = load i32, ptr %162, align 4, !tbaa !5
  %1965 = sub nsw i32 %1963, %1964
  br label %1970

1966:                                             ; preds = %1958
  %1967 = load i32, ptr %162, align 4, !tbaa !5
  %1968 = load i32, ptr %161, align 4, !tbaa !5
  %1969 = sub nsw i32 %1967, %1968
  br label %1970

1970:                                             ; preds = %1966, %1962
  %1971 = phi i32 [ %1965, %1962 ], [ %1969, %1966 ]
  store i32 %1971, ptr %165, align 4, !tbaa !5
  %1972 = load i32, ptr %165, align 4, !tbaa !5
  %1973 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %1974 = icmp sgt i32 %1972, %1973
  br i1 %1974, label %1975, label %1980

1975:                                             ; preds = %1970
  %1976 = load i32, ptr %161, align 4, !tbaa !5
  %1977 = sitofp i32 %1976 to double
  %1978 = load i32, ptr %162, align 4, !tbaa !5
  %1979 = sitofp i32 %1978 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.54, ptr noundef @.str.3, i32 noundef 293, double noundef %1977, double noundef %1979)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1980

1980:                                             ; preds = %1975, %1970
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #8
  br label %1996

1981:                                             ; preds = %1955, %1951
  %1982 = load i32, ptr %161, align 4, !tbaa !5
  %1983 = load i32, ptr %162, align 4, !tbaa !5
  %1984 = icmp ne i32 %1982, %1983
  br i1 %1984, label %1985, label %1995

1985:                                             ; preds = %1981
  %1986 = load i32, ptr %161, align 4, !tbaa !5
  %1987 = load i32, ptr %162, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.55, ptr noundef @.str.3, i32 noundef 293, i32 noundef %1986, i32 noundef %1987)
  %1988 = load i8, ptr %163, align 1, !tbaa !11, !range !13, !noundef !14
  %1989 = trunc i8 %1988 to i1
  br i1 %1989, label %1993, label %1990

1990:                                             ; preds = %1985
  %1991 = load i8, ptr %164, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc i8 %1991 to i1
  br i1 %1992, label %1993, label %1994

1993:                                             ; preds = %1990, %1985
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %1994

1994:                                             ; preds = %1993, %1990
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %1995

1995:                                             ; preds = %1994, %1981
  br label %1996

1996:                                             ; preds = %1995, %1980
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #8
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

1998:                                             ; preds = %1997
  %1999 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef -1.000000e+00, ptr noundef %110)
  %2000 = trunc i64 %1999 to i32
  store i32 %2000, ptr %111, align 4, !tbaa !5
  br label %2001

2001:                                             ; preds = %1998
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #8
  %2002 = load i32, ptr %111, align 4, !tbaa !5
  store i32 %2002, ptr %166, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #8
  store i32 -1073741824, ptr %167, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #8
  %2003 = load i32, ptr %166, align 4, !tbaa !5
  %2004 = load i32, ptr %167, align 4, !tbaa !5
  %2005 = icmp sgt i32 %2003, %2004
  br i1 %2005, label %2006, label %2010

2006:                                             ; preds = %2001
  %2007 = load i32, ptr %166, align 4, !tbaa !5
  %2008 = load i32, ptr %167, align 4, !tbaa !5
  %2009 = sub nsw i32 %2007, %2008
  br label %2014

2010:                                             ; preds = %2001
  %2011 = load i32, ptr %167, align 4, !tbaa !5
  %2012 = load i32, ptr %166, align 4, !tbaa !5
  %2013 = sub nsw i32 %2011, %2012
  br label %2014

2014:                                             ; preds = %2010, %2006
  %2015 = phi i32 [ %2009, %2006 ], [ %2013, %2010 ]
  store i32 %2015, ptr %168, align 4, !tbaa !5
  %2016 = load i32, ptr %166, align 4, !tbaa !5
  %2017 = load i32, ptr %167, align 4, !tbaa !5
  %2018 = icmp ne i32 %2016, %2017
  br i1 %2018, label %2019, label %2027

2019:                                             ; preds = %2014
  %2020 = load i32, ptr %168, align 4, !tbaa !5
  %2021 = icmp sgt i32 %2020, 1
  br i1 %2021, label %2022, label %2027

2022:                                             ; preds = %2019
  %2023 = load i32, ptr %166, align 4, !tbaa !5
  %2024 = sitofp i32 %2023 to double
  %2025 = load i32, ptr %167, align 4, !tbaa !5
  %2026 = sitofp i32 %2025 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.56, double noundef %2024, double noundef %2026, ptr noundef @.str.3, i32 noundef 296)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2027

2027:                                             ; preds = %2022, %2019, %2014
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #8
  br label %2028

2028:                                             ; preds = %2027
  br label %2029

2029:                                             ; preds = %2028
  br label %2030

2030:                                             ; preds = %2029
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #8
  %2031 = load i32, ptr %110, align 4, !tbaa !5
  store i32 %2031, ptr %169, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #8
  store i32 1, ptr %170, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #8
  store i8 0, ptr %171, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %172) #8
  store i8 0, ptr %172, align 1, !tbaa !11
  %2032 = load i8, ptr %171, align 1, !tbaa !11, !range !13, !noundef !14
  %2033 = trunc i8 %2032 to i1
  br i1 %2033, label %2034, label %2060

2034:                                             ; preds = %2030
  %2035 = load i8, ptr %172, align 1, !tbaa !11, !range !13, !noundef !14
  %2036 = trunc i8 %2035 to i1
  br i1 %2036, label %2037, label %2060

2037:                                             ; preds = %2034
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #8
  %2038 = load i32, ptr %169, align 4, !tbaa !5
  %2039 = load i32, ptr %170, align 4, !tbaa !5
  %2040 = icmp sgt i32 %2038, %2039
  br i1 %2040, label %2041, label %2045

2041:                                             ; preds = %2037
  %2042 = load i32, ptr %169, align 4, !tbaa !5
  %2043 = load i32, ptr %170, align 4, !tbaa !5
  %2044 = sub nsw i32 %2042, %2043
  br label %2049

2045:                                             ; preds = %2037
  %2046 = load i32, ptr %170, align 4, !tbaa !5
  %2047 = load i32, ptr %169, align 4, !tbaa !5
  %2048 = sub nsw i32 %2046, %2047
  br label %2049

2049:                                             ; preds = %2045, %2041
  %2050 = phi i32 [ %2044, %2041 ], [ %2048, %2045 ]
  store i32 %2050, ptr %173, align 4, !tbaa !5
  %2051 = load i32, ptr %173, align 4, !tbaa !5
  %2052 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %2053 = icmp sgt i32 %2051, %2052
  br i1 %2053, label %2054, label %2059

2054:                                             ; preds = %2049
  %2055 = load i32, ptr %169, align 4, !tbaa !5
  %2056 = sitofp i32 %2055 to double
  %2057 = load i32, ptr %170, align 4, !tbaa !5
  %2058 = sitofp i32 %2057 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.47, ptr noundef @.str.3, i32 noundef 297, double noundef %2056, double noundef %2058)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2059

2059:                                             ; preds = %2054, %2049
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #8
  br label %2075

2060:                                             ; preds = %2034, %2030
  %2061 = load i32, ptr %169, align 4, !tbaa !5
  %2062 = load i32, ptr %170, align 4, !tbaa !5
  %2063 = icmp ne i32 %2061, %2062
  br i1 %2063, label %2064, label %2074

2064:                                             ; preds = %2060
  %2065 = load i32, ptr %169, align 4, !tbaa !5
  %2066 = load i32, ptr %170, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.48, ptr noundef @.str.3, i32 noundef 297, i32 noundef %2065, i32 noundef %2066)
  %2067 = load i8, ptr %171, align 1, !tbaa !11, !range !13, !noundef !14
  %2068 = trunc i8 %2067 to i1
  br i1 %2068, label %2072, label %2069

2069:                                             ; preds = %2064
  %2070 = load i8, ptr %172, align 1, !tbaa !11, !range !13, !noundef !14
  %2071 = trunc i8 %2070 to i1
  br i1 %2071, label %2072, label %2073

2072:                                             ; preds = %2069, %2064
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %2073

2073:                                             ; preds = %2072, %2069
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2074

2074:                                             ; preds = %2073, %2060
  br label %2075

2075:                                             ; preds = %2074, %2059
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #8
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

2077:                                             ; preds = %2076
  %2078 = call double @frexp(double noundef -1.000000e+00, ptr noundef %122) #8
  store double %2078, ptr %123, align 8, !tbaa !20
  br label %2079

2079:                                             ; preds = %2077
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #8
  %2080 = load double, ptr %123, align 8, !tbaa !20
  store double %2080, ptr %174, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #8
  store double -5.000000e-01, ptr %175, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #8
  %2081 = load double, ptr %174, align 8, !tbaa !20
  %2082 = load double, ptr %175, align 8, !tbaa !20
  %2083 = fcmp ogt double %2081, %2082
  br i1 %2083, label %2084, label %2088

2084:                                             ; preds = %2079
  %2085 = load double, ptr %174, align 8, !tbaa !20
  %2086 = load double, ptr %175, align 8, !tbaa !20
  %2087 = fsub double %2085, %2086
  br label %2092

2088:                                             ; preds = %2079
  %2089 = load double, ptr %175, align 8, !tbaa !20
  %2090 = load double, ptr %174, align 8, !tbaa !20
  %2091 = fsub double %2089, %2090
  br label %2092

2092:                                             ; preds = %2088, %2084
  %2093 = phi double [ %2087, %2084 ], [ %2091, %2088 ]
  store double %2093, ptr %176, align 8, !tbaa !20
  %2094 = load double, ptr %174, align 8, !tbaa !20
  %2095 = load double, ptr %175, align 8, !tbaa !20
  %2096 = fcmp une double %2094, %2095
  br i1 %2096, label %2097, label %2103

2097:                                             ; preds = %2092
  %2098 = load double, ptr %176, align 8, !tbaa !20
  %2099 = fcmp ogt double %2098, 1.000000e-05
  br i1 %2099, label %2100, label %2103

2100:                                             ; preds = %2097
  %2101 = load double, ptr %174, align 8, !tbaa !20
  %2102 = load double, ptr %175, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.57, double noundef %2101, double noundef %2102, ptr noundef @.str.3, i32 noundef 299)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2103

2103:                                             ; preds = %2100, %2097, %2092
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #8
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #8
  %2107 = load i32, ptr %122, align 4, !tbaa !5
  store i32 %2107, ptr %177, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #8
  store i32 1, ptr %178, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #8
  store i8 0, ptr %179, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %180) #8
  store i8 0, ptr %180, align 1, !tbaa !11
  %2108 = load i8, ptr %179, align 1, !tbaa !11, !range !13, !noundef !14
  %2109 = trunc i8 %2108 to i1
  br i1 %2109, label %2110, label %2136

2110:                                             ; preds = %2106
  %2111 = load i8, ptr %180, align 1, !tbaa !11, !range !13, !noundef !14
  %2112 = trunc i8 %2111 to i1
  br i1 %2112, label %2113, label %2136

2113:                                             ; preds = %2110
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #8
  %2114 = load i32, ptr %177, align 4, !tbaa !5
  %2115 = load i32, ptr %178, align 4, !tbaa !5
  %2116 = icmp sgt i32 %2114, %2115
  br i1 %2116, label %2117, label %2121

2117:                                             ; preds = %2113
  %2118 = load i32, ptr %177, align 4, !tbaa !5
  %2119 = load i32, ptr %178, align 4, !tbaa !5
  %2120 = sub nsw i32 %2118, %2119
  br label %2125

2121:                                             ; preds = %2113
  %2122 = load i32, ptr %178, align 4, !tbaa !5
  %2123 = load i32, ptr %177, align 4, !tbaa !5
  %2124 = sub nsw i32 %2122, %2123
  br label %2125

2125:                                             ; preds = %2121, %2117
  %2126 = phi i32 [ %2120, %2117 ], [ %2124, %2121 ]
  store i32 %2126, ptr %181, align 4, !tbaa !5
  %2127 = load i32, ptr %181, align 4, !tbaa !5
  %2128 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %2129 = icmp sgt i32 %2127, %2128
  br i1 %2129, label %2130, label %2135

2130:                                             ; preds = %2125
  %2131 = load i32, ptr %177, align 4, !tbaa !5
  %2132 = sitofp i32 %2131 to double
  %2133 = load i32, ptr %178, align 4, !tbaa !5
  %2134 = sitofp i32 %2133 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 300, double noundef %2132, double noundef %2134)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2135

2135:                                             ; preds = %2130, %2125
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #8
  br label %2151

2136:                                             ; preds = %2110, %2106
  %2137 = load i32, ptr %177, align 4, !tbaa !5
  %2138 = load i32, ptr %178, align 4, !tbaa !5
  %2139 = icmp ne i32 %2137, %2138
  br i1 %2139, label %2140, label %2150

2140:                                             ; preds = %2136
  %2141 = load i32, ptr %177, align 4, !tbaa !5
  %2142 = load i32, ptr %178, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 300, i32 noundef %2141, i32 noundef %2142)
  %2143 = load i8, ptr %179, align 1, !tbaa !11, !range !13, !noundef !14
  %2144 = trunc i8 %2143 to i1
  br i1 %2144, label %2148, label %2145

2145:                                             ; preds = %2140
  %2146 = load i8, ptr %180, align 1, !tbaa !11, !range !13, !noundef !14
  %2147 = trunc i8 %2146 to i1
  br i1 %2147, label %2148, label %2149

2148:                                             ; preds = %2145, %2140
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %2149

2149:                                             ; preds = %2148, %2145
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2150

2150:                                             ; preds = %2149, %2136
  br label %2151

2151:                                             ; preds = %2150, %2135
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #8
  br label %2152

2152:                                             ; preds = %2151
  br label %2153

2153:                                             ; preds = %2152
  %2154 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.234500e+02, ptr noundef %110)
  %2155 = trunc i64 %2154 to i32
  store i32 %2155, ptr %111, align 4, !tbaa !5
  br label %2156

2156:                                             ; preds = %2153
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #8
  %2157 = load i32, ptr %111, align 4, !tbaa !5
  store i32 %2157, ptr %182, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #8
  store double 0x41DEDCCC89B0EE4A, ptr %183, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #8
  %2158 = load i32, ptr %182, align 4, !tbaa !5
  %2159 = sitofp i32 %2158 to double
  %2160 = load double, ptr %183, align 8, !tbaa !20
  %2161 = fcmp ogt double %2159, %2160
  br i1 %2161, label %2162, label %2167

2162:                                             ; preds = %2156
  %2163 = load i32, ptr %182, align 4, !tbaa !5
  %2164 = sitofp i32 %2163 to double
  %2165 = load double, ptr %183, align 8, !tbaa !20
  %2166 = fsub double %2164, %2165
  br label %2172

2167:                                             ; preds = %2156
  %2168 = load double, ptr %183, align 8, !tbaa !20
  %2169 = load i32, ptr %182, align 4, !tbaa !5
  %2170 = sitofp i32 %2169 to double
  %2171 = fsub double %2168, %2170
  br label %2172

2172:                                             ; preds = %2167, %2162
  %2173 = phi double [ %2166, %2162 ], [ %2171, %2167 ]
  store double %2173, ptr %184, align 8, !tbaa !20
  %2174 = load i32, ptr %182, align 4, !tbaa !5
  %2175 = sitofp i32 %2174 to double
  %2176 = load double, ptr %183, align 8, !tbaa !20
  %2177 = fcmp une double %2175, %2176
  br i1 %2177, label %2178, label %2185

2178:                                             ; preds = %2172
  %2179 = load double, ptr %184, align 8, !tbaa !20
  %2180 = fcmp ogt double %2179, 1.000000e+03
  br i1 %2180, label %2181, label %2185

2181:                                             ; preds = %2178
  %2182 = load i32, ptr %182, align 4, !tbaa !5
  %2183 = sitofp i32 %2182 to double
  %2184 = load double, ptr %183, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.58, double noundef %2183, double noundef %2184, ptr noundef @.str.3, i32 noundef 303)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2185

2185:                                             ; preds = %2181, %2178, %2172
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #8
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

2187:                                             ; preds = %2186
  br label %2188

2188:                                             ; preds = %2187
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #8
  %2189 = load i32, ptr %110, align 4, !tbaa !5
  store i32 %2189, ptr %185, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #8
  store i32 7, ptr %186, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #8
  store i8 0, ptr %187, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %188) #8
  store i8 0, ptr %188, align 1, !tbaa !11
  %2190 = load i8, ptr %187, align 1, !tbaa !11, !range !13, !noundef !14
  %2191 = trunc i8 %2190 to i1
  br i1 %2191, label %2192, label %2218

2192:                                             ; preds = %2188
  %2193 = load i8, ptr %188, align 1, !tbaa !11, !range !13, !noundef !14
  %2194 = trunc i8 %2193 to i1
  br i1 %2194, label %2195, label %2218

2195:                                             ; preds = %2192
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #8
  %2196 = load i32, ptr %185, align 4, !tbaa !5
  %2197 = load i32, ptr %186, align 4, !tbaa !5
  %2198 = icmp sgt i32 %2196, %2197
  br i1 %2198, label %2199, label %2203

2199:                                             ; preds = %2195
  %2200 = load i32, ptr %185, align 4, !tbaa !5
  %2201 = load i32, ptr %186, align 4, !tbaa !5
  %2202 = sub nsw i32 %2200, %2201
  br label %2207

2203:                                             ; preds = %2195
  %2204 = load i32, ptr %186, align 4, !tbaa !5
  %2205 = load i32, ptr %185, align 4, !tbaa !5
  %2206 = sub nsw i32 %2204, %2205
  br label %2207

2207:                                             ; preds = %2203, %2199
  %2208 = phi i32 [ %2202, %2199 ], [ %2206, %2203 ]
  store i32 %2208, ptr %189, align 4, !tbaa !5
  %2209 = load i32, ptr %189, align 4, !tbaa !5
  %2210 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %2211 = icmp sgt i32 %2209, %2210
  br i1 %2211, label %2212, label %2217

2212:                                             ; preds = %2207
  %2213 = load i32, ptr %185, align 4, !tbaa !5
  %2214 = sitofp i32 %2213 to double
  %2215 = load i32, ptr %186, align 4, !tbaa !5
  %2216 = sitofp i32 %2215 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.59, ptr noundef @.str.3, i32 noundef 304, double noundef %2214, double noundef %2216)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2217

2217:                                             ; preds = %2212, %2207
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #8
  br label %2233

2218:                                             ; preds = %2192, %2188
  %2219 = load i32, ptr %185, align 4, !tbaa !5
  %2220 = load i32, ptr %186, align 4, !tbaa !5
  %2221 = icmp ne i32 %2219, %2220
  br i1 %2221, label %2222, label %2232

2222:                                             ; preds = %2218
  %2223 = load i32, ptr %185, align 4, !tbaa !5
  %2224 = load i32, ptr %186, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 304, i32 noundef %2223, i32 noundef %2224)
  %2225 = load i8, ptr %187, align 1, !tbaa !11, !range !13, !noundef !14
  %2226 = trunc i8 %2225 to i1
  br i1 %2226, label %2230, label %2227

2227:                                             ; preds = %2222
  %2228 = load i8, ptr %188, align 1, !tbaa !11, !range !13, !noundef !14
  %2229 = trunc i8 %2228 to i1
  br i1 %2229, label %2230, label %2231

2230:                                             ; preds = %2227, %2222
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %2231

2231:                                             ; preds = %2230, %2227
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2232

2232:                                             ; preds = %2231, %2218
  br label %2233

2233:                                             ; preds = %2232, %2217
  call void @llvm.lifetime.end.p0(i64 1, ptr %188) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #8
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  %2236 = call double @frexp(double noundef 1.234500e+02, ptr noundef %122) #8
  store double %2236, ptr %123, align 8, !tbaa !20
  br label %2237

2237:                                             ; preds = %2235
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #8
  %2238 = load double, ptr %123, align 8, !tbaa !20
  store double %2238, ptr %190, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #8
  store double 9.644530e-01, ptr %191, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #8
  %2239 = load double, ptr %190, align 8, !tbaa !20
  %2240 = load double, ptr %191, align 8, !tbaa !20
  %2241 = fcmp ogt double %2239, %2240
  br i1 %2241, label %2242, label %2246

2242:                                             ; preds = %2237
  %2243 = load double, ptr %190, align 8, !tbaa !20
  %2244 = load double, ptr %191, align 8, !tbaa !20
  %2245 = fsub double %2243, %2244
  br label %2250

2246:                                             ; preds = %2237
  %2247 = load double, ptr %191, align 8, !tbaa !20
  %2248 = load double, ptr %190, align 8, !tbaa !20
  %2249 = fsub double %2247, %2248
  br label %2250

2250:                                             ; preds = %2246, %2242
  %2251 = phi double [ %2245, %2242 ], [ %2249, %2246 ]
  store double %2251, ptr %192, align 8, !tbaa !20
  %2252 = load double, ptr %190, align 8, !tbaa !20
  %2253 = load double, ptr %191, align 8, !tbaa !20
  %2254 = fcmp une double %2252, %2253
  br i1 %2254, label %2255, label %2261

2255:                                             ; preds = %2250
  %2256 = load double, ptr %192, align 8, !tbaa !20
  %2257 = fcmp ogt double %2256, 1.000000e-05
  br i1 %2257, label %2258, label %2261

2258:                                             ; preds = %2255
  %2259 = load double, ptr %190, align 8, !tbaa !20
  %2260 = load double, ptr %191, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.61, double noundef %2259, double noundef %2260, ptr noundef @.str.3, i32 noundef 306)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2261

2261:                                             ; preds = %2258, %2255, %2250
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #8
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262
  br label %2264

2264:                                             ; preds = %2263
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #8
  %2265 = load i32, ptr %122, align 4, !tbaa !5
  store i32 %2265, ptr %193, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #8
  store i32 7, ptr %194, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %195) #8
  store i8 0, ptr %195, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %196) #8
  store i8 0, ptr %196, align 1, !tbaa !11
  %2266 = load i8, ptr %195, align 1, !tbaa !11, !range !13, !noundef !14
  %2267 = trunc i8 %2266 to i1
  br i1 %2267, label %2268, label %2294

2268:                                             ; preds = %2264
  %2269 = load i8, ptr %196, align 1, !tbaa !11, !range !13, !noundef !14
  %2270 = trunc i8 %2269 to i1
  br i1 %2270, label %2271, label %2294

2271:                                             ; preds = %2268
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #8
  %2272 = load i32, ptr %193, align 4, !tbaa !5
  %2273 = load i32, ptr %194, align 4, !tbaa !5
  %2274 = icmp sgt i32 %2272, %2273
  br i1 %2274, label %2275, label %2279

2275:                                             ; preds = %2271
  %2276 = load i32, ptr %193, align 4, !tbaa !5
  %2277 = load i32, ptr %194, align 4, !tbaa !5
  %2278 = sub nsw i32 %2276, %2277
  br label %2283

2279:                                             ; preds = %2271
  %2280 = load i32, ptr %194, align 4, !tbaa !5
  %2281 = load i32, ptr %193, align 4, !tbaa !5
  %2282 = sub nsw i32 %2280, %2281
  br label %2283

2283:                                             ; preds = %2279, %2275
  %2284 = phi i32 [ %2278, %2275 ], [ %2282, %2279 ]
  store i32 %2284, ptr %197, align 4, !tbaa !5
  %2285 = load i32, ptr %197, align 4, !tbaa !5
  %2286 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %2287 = icmp sgt i32 %2285, %2286
  br i1 %2287, label %2288, label %2293

2288:                                             ; preds = %2283
  %2289 = load i32, ptr %193, align 4, !tbaa !5
  %2290 = sitofp i32 %2289 to double
  %2291 = load i32, ptr %194, align 4, !tbaa !5
  %2292 = sitofp i32 %2291 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 307, double noundef %2290, double noundef %2292)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2293

2293:                                             ; preds = %2288, %2283
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #8
  br label %2309

2294:                                             ; preds = %2268, %2264
  %2295 = load i32, ptr %193, align 4, !tbaa !5
  %2296 = load i32, ptr %194, align 4, !tbaa !5
  %2297 = icmp ne i32 %2295, %2296
  br i1 %2297, label %2298, label %2308

2298:                                             ; preds = %2294
  %2299 = load i32, ptr %193, align 4, !tbaa !5
  %2300 = load i32, ptr %194, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.63, ptr noundef @.str.3, i32 noundef 307, i32 noundef %2299, i32 noundef %2300)
  %2301 = load i8, ptr %195, align 1, !tbaa !11, !range !13, !noundef !14
  %2302 = trunc i8 %2301 to i1
  br i1 %2302, label %2306, label %2303

2303:                                             ; preds = %2298
  %2304 = load i8, ptr %196, align 1, !tbaa !11, !range !13, !noundef !14
  %2305 = trunc i8 %2304 to i1
  br i1 %2305, label %2306, label %2307

2306:                                             ; preds = %2303, %2298
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %2307

2307:                                             ; preds = %2306, %2303
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2308

2308:                                             ; preds = %2307, %2294
  br label %2309

2309:                                             ; preds = %2308, %2293
  call void @llvm.lifetime.end.p0(i64 1, ptr %196) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #8
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  br label %2312

2312:                                             ; preds = %2311
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %2313 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %2314 = trunc i8 %2313 to i1
  %2315 = zext i1 %2314 to i64
  %2316 = select i1 %2314, i32 0, i32 1
  %2317 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %2318 = add nsw i32 %2317, %2316
  store i32 %2318, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %2319 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %2320 = trunc i8 %2319 to i1
  %2321 = zext i1 %2320 to i64
  %2322 = select i1 %2320, i32 1, i32 0
  %2323 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %2324 = add nsw i32 %2323, %2322
  store i32 %2324, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %1485, !llvm.loop !29

2325:                                             ; preds = %1485
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.64)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2326

2326:                                             ; preds = %2555, %2325
  %2327 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %2328 = trunc i8 %2327 to i1
  %2329 = xor i1 %2328, true
  br i1 %2329, label %2330, label %2568

2330:                                             ; preds = %2326
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #8
  %2331 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef 0, i32 noundef 0)
  store double %2331, ptr %198, align 8, !tbaa !20
  br label %2332

2332:                                             ; preds = %2330
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #8
  store i32 0, ptr %199, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #8
  %2333 = load double, ptr %198, align 8, !tbaa !20
  store double %2333, ptr %200, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 1, ptr %201) #8
  store i8 0, ptr %201, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %202) #8
  store i8 1, ptr %202, align 1, !tbaa !11
  %2334 = load i8, ptr %201, align 1, !tbaa !11, !range !13, !noundef !14
  %2335 = trunc i8 %2334 to i1
  br i1 %2335, label %2336, label %2364

2336:                                             ; preds = %2332
  %2337 = load i8, ptr %202, align 1, !tbaa !11, !range !13, !noundef !14
  %2338 = trunc i8 %2337 to i1
  br i1 %2338, label %2339, label %2364

2339:                                             ; preds = %2336
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #8
  %2340 = load i32, ptr %199, align 4, !tbaa !5
  %2341 = sitofp i32 %2340 to double
  %2342 = load double, ptr %200, align 8, !tbaa !20
  %2343 = fcmp ogt double %2341, %2342
  br i1 %2343, label %2344, label %2349

2344:                                             ; preds = %2339
  %2345 = load i32, ptr %199, align 4, !tbaa !5
  %2346 = sitofp i32 %2345 to double
  %2347 = load double, ptr %200, align 8, !tbaa !20
  %2348 = fsub double %2346, %2347
  br label %2354

2349:                                             ; preds = %2339
  %2350 = load double, ptr %200, align 8, !tbaa !20
  %2351 = load i32, ptr %199, align 4, !tbaa !5
  %2352 = sitofp i32 %2351 to double
  %2353 = fsub double %2350, %2352
  br label %2354

2354:                                             ; preds = %2349, %2344
  %2355 = phi double [ %2348, %2344 ], [ %2353, %2349 ]
  store double %2355, ptr %203, align 8, !tbaa !20
  %2356 = load double, ptr %203, align 8, !tbaa !20
  %2357 = call noundef double @_ZNSt14numeric_limitsIdE7epsilonEv() #8
  %2358 = fcmp ogt double %2356, %2357
  br i1 %2358, label %2359, label %2363

2359:                                             ; preds = %2354
  %2360 = load i32, ptr %199, align 4, !tbaa !5
  %2361 = sitofp i32 %2360 to double
  %2362 = load double, ptr %200, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 312, double noundef %2361, double noundef %2362)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2363

2363:                                             ; preds = %2359, %2354
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #8
  br label %2381

2364:                                             ; preds = %2336, %2332
  %2365 = load i32, ptr %199, align 4, !tbaa !5
  %2366 = sitofp i32 %2365 to double
  %2367 = load double, ptr %200, align 8, !tbaa !20
  %2368 = fcmp une double %2366, %2367
  br i1 %2368, label %2369, label %2380

2369:                                             ; preds = %2364
  %2370 = load i32, ptr %199, align 4, !tbaa !5
  %2371 = load double, ptr %200, align 8, !tbaa !20
  %2372 = fptosi double %2371 to i32
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 312, i32 noundef %2370, i32 noundef %2372)
  %2373 = load i8, ptr %201, align 1, !tbaa !11, !range !13, !noundef !14
  %2374 = trunc i8 %2373 to i1
  br i1 %2374, label %2378, label %2375

2375:                                             ; preds = %2369
  %2376 = load i8, ptr %202, align 1, !tbaa !11, !range !13, !noundef !14
  %2377 = trunc i8 %2376 to i1
  br i1 %2377, label %2378, label %2379

2378:                                             ; preds = %2375, %2369
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %2379

2379:                                             ; preds = %2378, %2375
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2380

2380:                                             ; preds = %2379, %2364
  br label %2381

2381:                                             ; preds = %2380, %2363
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #8
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  %2384 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef 1073741824, i32 noundef 1)
  store double %2384, ptr %198, align 8, !tbaa !20
  br label %2385

2385:                                             ; preds = %2383
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #8
  store double 1.000000e+00, ptr %204, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #8
  %2386 = load double, ptr %198, align 8, !tbaa !20
  store double %2386, ptr %205, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #8
  %2387 = load double, ptr %204, align 8, !tbaa !20
  %2388 = load double, ptr %205, align 8, !tbaa !20
  %2389 = fcmp ogt double %2387, %2388
  br i1 %2389, label %2390, label %2394

2390:                                             ; preds = %2385
  %2391 = load double, ptr %204, align 8, !tbaa !20
  %2392 = load double, ptr %205, align 8, !tbaa !20
  %2393 = fsub double %2391, %2392
  br label %2398

2394:                                             ; preds = %2385
  %2395 = load double, ptr %205, align 8, !tbaa !20
  %2396 = load double, ptr %204, align 8, !tbaa !20
  %2397 = fsub double %2395, %2396
  br label %2398

2398:                                             ; preds = %2394, %2390
  %2399 = phi double [ %2393, %2390 ], [ %2397, %2394 ]
  store double %2399, ptr %206, align 8, !tbaa !20
  %2400 = load double, ptr %204, align 8, !tbaa !20
  %2401 = load double, ptr %205, align 8, !tbaa !20
  %2402 = fcmp une double %2400, %2401
  br i1 %2402, label %2403, label %2409

2403:                                             ; preds = %2398
  %2404 = load double, ptr %206, align 8, !tbaa !20
  %2405 = fcmp ogt double %2404, 1.000000e-05
  br i1 %2405, label %2406, label %2409

2406:                                             ; preds = %2403
  %2407 = load double, ptr %204, align 8, !tbaa !20
  %2408 = load double, ptr %205, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.65, double noundef %2407, double noundef %2408, ptr noundef @.str.3, i32 noundef 315)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2409

2409:                                             ; preds = %2406, %2403, %2398
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #8
  br label %2410

2410:                                             ; preds = %2409
  br label %2411

2411:                                             ; preds = %2410
  %2412 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef 1073741824, i32 noundef 2)
  store double %2412, ptr %198, align 8, !tbaa !20
  br label %2413

2413:                                             ; preds = %2411
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #8
  store double 2.000000e+00, ptr %207, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #8
  %2414 = load double, ptr %198, align 8, !tbaa !20
  store double %2414, ptr %208, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #8
  %2415 = load double, ptr %207, align 8, !tbaa !20
  %2416 = load double, ptr %208, align 8, !tbaa !20
  %2417 = fcmp ogt double %2415, %2416
  br i1 %2417, label %2418, label %2422

2418:                                             ; preds = %2413
  %2419 = load double, ptr %207, align 8, !tbaa !20
  %2420 = load double, ptr %208, align 8, !tbaa !20
  %2421 = fsub double %2419, %2420
  br label %2426

2422:                                             ; preds = %2413
  %2423 = load double, ptr %208, align 8, !tbaa !20
  %2424 = load double, ptr %207, align 8, !tbaa !20
  %2425 = fsub double %2423, %2424
  br label %2426

2426:                                             ; preds = %2422, %2418
  %2427 = phi double [ %2421, %2418 ], [ %2425, %2422 ]
  store double %2427, ptr %209, align 8, !tbaa !20
  %2428 = load double, ptr %207, align 8, !tbaa !20
  %2429 = load double, ptr %208, align 8, !tbaa !20
  %2430 = fcmp une double %2428, %2429
  br i1 %2430, label %2431, label %2437

2431:                                             ; preds = %2426
  %2432 = load double, ptr %209, align 8, !tbaa !20
  %2433 = fcmp ogt double %2432, 1.000000e-05
  br i1 %2433, label %2434, label %2437

2434:                                             ; preds = %2431
  %2435 = load double, ptr %207, align 8, !tbaa !20
  %2436 = load double, ptr %208, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.66, double noundef %2435, double noundef %2436, ptr noundef @.str.3, i32 noundef 318)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2437

2437:                                             ; preds = %2434, %2431, %2426
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #8
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #8
  %2440 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 3.000000e+00, ptr noundef %210)
  store i64 %2440, ptr %211, align 8, !tbaa !26
  %2441 = load i64, ptr %211, align 8, !tbaa !26
  %2442 = load i32, ptr %210, align 4, !tbaa !5
  %2443 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %2441, i32 noundef %2442)
  store double %2443, ptr %198, align 8, !tbaa !20
  br label %2444

2444:                                             ; preds = %2439
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #8
  store double 3.000000e+00, ptr %212, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #8
  %2445 = load double, ptr %198, align 8, !tbaa !20
  store double %2445, ptr %213, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #8
  %2446 = load double, ptr %212, align 8, !tbaa !20
  %2447 = load double, ptr %213, align 8, !tbaa !20
  %2448 = fcmp ogt double %2446, %2447
  br i1 %2448, label %2449, label %2453

2449:                                             ; preds = %2444
  %2450 = load double, ptr %212, align 8, !tbaa !20
  %2451 = load double, ptr %213, align 8, !tbaa !20
  %2452 = fsub double %2450, %2451
  br label %2457

2453:                                             ; preds = %2444
  %2454 = load double, ptr %213, align 8, !tbaa !20
  %2455 = load double, ptr %212, align 8, !tbaa !20
  %2456 = fsub double %2454, %2455
  br label %2457

2457:                                             ; preds = %2453, %2449
  %2458 = phi double [ %2452, %2449 ], [ %2456, %2453 ]
  store double %2458, ptr %214, align 8, !tbaa !20
  %2459 = load double, ptr %212, align 8, !tbaa !20
  %2460 = load double, ptr %213, align 8, !tbaa !20
  %2461 = fcmp une double %2459, %2460
  br i1 %2461, label %2462, label %2468

2462:                                             ; preds = %2457
  %2463 = load double, ptr %214, align 8, !tbaa !20
  %2464 = fcmp ogt double %2463, 1.000000e-05
  br i1 %2464, label %2465, label %2468

2465:                                             ; preds = %2462
  %2466 = load double, ptr %212, align 8, !tbaa !20
  %2467 = load double, ptr %213, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.67, double noundef %2466, double noundef %2467, ptr noundef @.str.3, i32 noundef 323)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2468

2468:                                             ; preds = %2465, %2462, %2457
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #8
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

2470:                                             ; preds = %2469
  %2471 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.234500e+02, ptr noundef %210)
  store i64 %2471, ptr %211, align 8, !tbaa !26
  %2472 = load i64, ptr %211, align 8, !tbaa !26
  %2473 = load i32, ptr %210, align 4, !tbaa !5
  %2474 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %2472, i32 noundef %2473)
  store double %2474, ptr %198, align 8, !tbaa !20
  br label %2475

2475:                                             ; preds = %2470
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #8
  store double 1.234500e+02, ptr %215, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %216) #8
  %2476 = load double, ptr %198, align 8, !tbaa !20
  store double %2476, ptr %216, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #8
  %2477 = load double, ptr %215, align 8, !tbaa !20
  %2478 = load double, ptr %216, align 8, !tbaa !20
  %2479 = fcmp ogt double %2477, %2478
  br i1 %2479, label %2480, label %2484

2480:                                             ; preds = %2475
  %2481 = load double, ptr %215, align 8, !tbaa !20
  %2482 = load double, ptr %216, align 8, !tbaa !20
  %2483 = fsub double %2481, %2482
  br label %2488

2484:                                             ; preds = %2475
  %2485 = load double, ptr %216, align 8, !tbaa !20
  %2486 = load double, ptr %215, align 8, !tbaa !20
  %2487 = fsub double %2485, %2486
  br label %2488

2488:                                             ; preds = %2484, %2480
  %2489 = phi double [ %2483, %2480 ], [ %2487, %2484 ]
  store double %2489, ptr %217, align 8, !tbaa !20
  %2490 = load double, ptr %215, align 8, !tbaa !20
  %2491 = load double, ptr %216, align 8, !tbaa !20
  %2492 = fcmp une double %2490, %2491
  br i1 %2492, label %2493, label %2499

2493:                                             ; preds = %2488
  %2494 = load double, ptr %217, align 8, !tbaa !20
  %2495 = fcmp ogt double %2494, 1.000000e-05
  br i1 %2495, label %2496, label %2499

2496:                                             ; preds = %2493
  %2497 = load double, ptr %215, align 8, !tbaa !20
  %2498 = load double, ptr %216, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.68, double noundef %2497, double noundef %2498, ptr noundef @.str.3, i32 noundef 327)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2499

2499:                                             ; preds = %2496, %2493, %2488
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #8
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  %2502 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0xC0373B7985271BCE, ptr noundef %210)
  store i64 %2502, ptr %211, align 8, !tbaa !26
  %2503 = load i64, ptr %211, align 8, !tbaa !26
  %2504 = load i32, ptr %210, align 4, !tbaa !5
  %2505 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %2503, i32 noundef %2504)
  store double %2505, ptr %198, align 8, !tbaa !20
  br label %2506

2506:                                             ; preds = %2501
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #8
  store double 0xC0373B7985271BCE, ptr %218, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #8
  %2507 = load double, ptr %198, align 8, !tbaa !20
  store double %2507, ptr %219, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #8
  %2508 = load double, ptr %218, align 8, !tbaa !20
  %2509 = load double, ptr %219, align 8, !tbaa !20
  %2510 = fcmp ogt double %2508, %2509
  br i1 %2510, label %2511, label %2515

2511:                                             ; preds = %2506
  %2512 = load double, ptr %218, align 8, !tbaa !20
  %2513 = load double, ptr %219, align 8, !tbaa !20
  %2514 = fsub double %2512, %2513
  br label %2519

2515:                                             ; preds = %2506
  %2516 = load double, ptr %219, align 8, !tbaa !20
  %2517 = load double, ptr %218, align 8, !tbaa !20
  %2518 = fsub double %2516, %2517
  br label %2519

2519:                                             ; preds = %2515, %2511
  %2520 = phi double [ %2514, %2511 ], [ %2518, %2515 ]
  store double %2520, ptr %220, align 8, !tbaa !20
  %2521 = load double, ptr %218, align 8, !tbaa !20
  %2522 = load double, ptr %219, align 8, !tbaa !20
  %2523 = fcmp une double %2521, %2522
  br i1 %2523, label %2524, label %2530

2524:                                             ; preds = %2519
  %2525 = load double, ptr %220, align 8, !tbaa !20
  %2526 = fcmp ogt double %2525, 1.000000e-05
  br i1 %2526, label %2527, label %2530

2527:                                             ; preds = %2524
  %2528 = load double, ptr %218, align 8, !tbaa !20
  %2529 = load double, ptr %219, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.69, double noundef %2528, double noundef %2529, ptr noundef @.str.3, i32 noundef 331)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2530

2530:                                             ; preds = %2527, %2524, %2519
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #8
  br label %2531

2531:                                             ; preds = %2530
  br label %2532

2532:                                             ; preds = %2531
  %2533 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF8000000000000, ptr noundef %210)
  store i64 %2533, ptr %211, align 8, !tbaa !26
  %2534 = load i64, ptr %211, align 8, !tbaa !26
  %2535 = load i32, ptr %210, align 4, !tbaa !5
  %2536 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %2534, i32 noundef %2535)
  store double %2536, ptr %198, align 8, !tbaa !20
  br label %2537

2537:                                             ; preds = %2532
  %2538 = load double, ptr %198, align 8, !tbaa !20
  %2539 = call noundef zeroext i1 @_ZSt5isnand(double noundef %2538)
  br i1 %2539, label %2541, label %2540

2540:                                             ; preds = %2537
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 335)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2541

2541:                                             ; preds = %2540, %2537
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

2543:                                             ; preds = %2542
  %2544 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF0000000000000, ptr noundef %210)
  store i64 %2544, ptr %211, align 8, !tbaa !26
  %2545 = load i64, ptr %211, align 8, !tbaa !26
  %2546 = load i32, ptr %210, align 4, !tbaa !5
  %2547 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %2545, i32 noundef %2546)
  store double %2547, ptr %198, align 8, !tbaa !20
  br label %2548

2548:                                             ; preds = %2543
  %2549 = load double, ptr %198, align 8, !tbaa !20
  %2550 = call noundef zeroext i1 @_ZSt8isfinited(double noundef %2549)
  br i1 %2550, label %2551, label %2552

2551:                                             ; preds = %2548
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 339)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2552

2552:                                             ; preds = %2551, %2548
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #8
  br label %2555

2555:                                             ; preds = %2554
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %2556 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %2557 = trunc i8 %2556 to i1
  %2558 = zext i1 %2557 to i64
  %2559 = select i1 %2557, i32 0, i32 1
  %2560 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %2561 = add nsw i32 %2560, %2559
  store i32 %2561, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %2562 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %2563 = trunc i8 %2562 to i1
  %2564 = zext i1 %2563 to i64
  %2565 = select i1 %2563, i32 1, i32 0
  %2566 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %2567 = add nsw i32 %2566, %2565
  store i32 %2567, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %2326, !llvm.loop !30

2568:                                             ; preds = %2326
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.72)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2569

2569:                                             ; preds = %2846, %2568
  %2570 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %2571 = trunc i8 %2570 to i1
  %2572 = xor i1 %2571, true
  br i1 %2572, label %2573, label %2859

2573:                                             ; preds = %2569
  br label %2574

2574:                                             ; preds = %2573
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #8
  store double 1.000000e+00, ptr %221, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #8
  %2575 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef 1.000000e+00)
  store double %2575, ptr %222, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #8
  %2576 = load double, ptr %221, align 8, !tbaa !20
  %2577 = load double, ptr %222, align 8, !tbaa !20
  %2578 = fcmp ogt double %2576, %2577
  br i1 %2578, label %2579, label %2583

2579:                                             ; preds = %2574
  %2580 = load double, ptr %221, align 8, !tbaa !20
  %2581 = load double, ptr %222, align 8, !tbaa !20
  %2582 = fsub double %2580, %2581
  br label %2587

2583:                                             ; preds = %2574
  %2584 = load double, ptr %222, align 8, !tbaa !20
  %2585 = load double, ptr %221, align 8, !tbaa !20
  %2586 = fsub double %2584, %2585
  br label %2587

2587:                                             ; preds = %2583, %2579
  %2588 = phi double [ %2582, %2579 ], [ %2586, %2583 ]
  store double %2588, ptr %223, align 8, !tbaa !20
  %2589 = load double, ptr %221, align 8, !tbaa !20
  %2590 = load double, ptr %222, align 8, !tbaa !20
  %2591 = fcmp une double %2589, %2590
  br i1 %2591, label %2592, label %2598

2592:                                             ; preds = %2587
  %2593 = load double, ptr %223, align 8, !tbaa !20
  %2594 = fcmp ogt double %2593, 1.000000e-05
  br i1 %2594, label %2595, label %2598

2595:                                             ; preds = %2592
  %2596 = load double, ptr %221, align 8, !tbaa !20
  %2597 = load double, ptr %222, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.73, double noundef %2596, double noundef %2597, ptr noundef @.str.3, i32 noundef 343)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2598

2598:                                             ; preds = %2595, %2592, %2587
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #8
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #8
  store double 2.000000e+00, ptr %224, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #8
  %2601 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef 2.000000e+00)
  store double %2601, ptr %225, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #8
  %2602 = load double, ptr %224, align 8, !tbaa !20
  %2603 = load double, ptr %225, align 8, !tbaa !20
  %2604 = fcmp ogt double %2602, %2603
  br i1 %2604, label %2605, label %2609

2605:                                             ; preds = %2600
  %2606 = load double, ptr %224, align 8, !tbaa !20
  %2607 = load double, ptr %225, align 8, !tbaa !20
  %2608 = fsub double %2606, %2607
  br label %2613

2609:                                             ; preds = %2600
  %2610 = load double, ptr %225, align 8, !tbaa !20
  %2611 = load double, ptr %224, align 8, !tbaa !20
  %2612 = fsub double %2610, %2611
  br label %2613

2613:                                             ; preds = %2609, %2605
  %2614 = phi double [ %2608, %2605 ], [ %2612, %2609 ]
  store double %2614, ptr %226, align 8, !tbaa !20
  %2615 = load double, ptr %224, align 8, !tbaa !20
  %2616 = load double, ptr %225, align 8, !tbaa !20
  %2617 = fcmp une double %2615, %2616
  br i1 %2617, label %2618, label %2624

2618:                                             ; preds = %2613
  %2619 = load double, ptr %226, align 8, !tbaa !20
  %2620 = fcmp ogt double %2619, 1.000000e-05
  br i1 %2620, label %2621, label %2624

2621:                                             ; preds = %2618
  %2622 = load double, ptr %224, align 8, !tbaa !20
  %2623 = load double, ptr %225, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.74, double noundef %2622, double noundef %2623, ptr noundef @.str.3, i32 noundef 344)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2624

2624:                                             ; preds = %2621, %2618, %2613
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #8
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #8
  store double 2.000000e+00, ptr %227, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #8
  %2627 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 2.000000e+00, double noundef 1.000000e+00)
  store double %2627, ptr %228, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #8
  %2628 = load double, ptr %227, align 8, !tbaa !20
  %2629 = load double, ptr %228, align 8, !tbaa !20
  %2630 = fcmp ogt double %2628, %2629
  br i1 %2630, label %2631, label %2635

2631:                                             ; preds = %2626
  %2632 = load double, ptr %227, align 8, !tbaa !20
  %2633 = load double, ptr %228, align 8, !tbaa !20
  %2634 = fsub double %2632, %2633
  br label %2639

2635:                                             ; preds = %2626
  %2636 = load double, ptr %228, align 8, !tbaa !20
  %2637 = load double, ptr %227, align 8, !tbaa !20
  %2638 = fsub double %2636, %2637
  br label %2639

2639:                                             ; preds = %2635, %2631
  %2640 = phi double [ %2634, %2631 ], [ %2638, %2635 ]
  store double %2640, ptr %229, align 8, !tbaa !20
  %2641 = load double, ptr %227, align 8, !tbaa !20
  %2642 = load double, ptr %228, align 8, !tbaa !20
  %2643 = fcmp une double %2641, %2642
  br i1 %2643, label %2644, label %2650

2644:                                             ; preds = %2639
  %2645 = load double, ptr %229, align 8, !tbaa !20
  %2646 = fcmp ogt double %2645, 1.000000e-05
  br i1 %2646, label %2647, label %2650

2647:                                             ; preds = %2644
  %2648 = load double, ptr %227, align 8, !tbaa !20
  %2649 = load double, ptr %228, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.75, double noundef %2648, double noundef %2649, ptr noundef @.str.3, i32 noundef 345)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2650

2650:                                             ; preds = %2647, %2644, %2639
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #8
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

2652:                                             ; preds = %2651
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #8
  store double 4.000000e+00, ptr %230, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #8
  %2653 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 2.000000e+00, double noundef 2.000000e+00)
  store double %2653, ptr %231, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #8
  %2654 = load double, ptr %230, align 8, !tbaa !20
  %2655 = load double, ptr %231, align 8, !tbaa !20
  %2656 = fcmp ogt double %2654, %2655
  br i1 %2656, label %2657, label %2661

2657:                                             ; preds = %2652
  %2658 = load double, ptr %230, align 8, !tbaa !20
  %2659 = load double, ptr %231, align 8, !tbaa !20
  %2660 = fsub double %2658, %2659
  br label %2665

2661:                                             ; preds = %2652
  %2662 = load double, ptr %231, align 8, !tbaa !20
  %2663 = load double, ptr %230, align 8, !tbaa !20
  %2664 = fsub double %2662, %2663
  br label %2665

2665:                                             ; preds = %2661, %2657
  %2666 = phi double [ %2660, %2657 ], [ %2664, %2661 ]
  store double %2666, ptr %232, align 8, !tbaa !20
  %2667 = load double, ptr %230, align 8, !tbaa !20
  %2668 = load double, ptr %231, align 8, !tbaa !20
  %2669 = fcmp une double %2667, %2668
  br i1 %2669, label %2670, label %2676

2670:                                             ; preds = %2665
  %2671 = load double, ptr %232, align 8, !tbaa !20
  %2672 = fcmp ogt double %2671, 1.000000e-05
  br i1 %2672, label %2673, label %2676

2673:                                             ; preds = %2670
  %2674 = load double, ptr %230, align 8, !tbaa !20
  %2675 = load double, ptr %231, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.76, double noundef %2674, double noundef %2675, ptr noundef @.str.3, i32 noundef 346)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2676

2676:                                             ; preds = %2673, %2670, %2665
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #8
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

2678:                                             ; preds = %2677
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #8
  store double 5.000000e-01, ptr %233, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #8
  %2679 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef 5.000000e-01)
  store double %2679, ptr %234, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #8
  %2680 = load double, ptr %233, align 8, !tbaa !20
  %2681 = load double, ptr %234, align 8, !tbaa !20
  %2682 = fcmp ogt double %2680, %2681
  br i1 %2682, label %2683, label %2687

2683:                                             ; preds = %2678
  %2684 = load double, ptr %233, align 8, !tbaa !20
  %2685 = load double, ptr %234, align 8, !tbaa !20
  %2686 = fsub double %2684, %2685
  br label %2691

2687:                                             ; preds = %2678
  %2688 = load double, ptr %234, align 8, !tbaa !20
  %2689 = load double, ptr %233, align 8, !tbaa !20
  %2690 = fsub double %2688, %2689
  br label %2691

2691:                                             ; preds = %2687, %2683
  %2692 = phi double [ %2686, %2683 ], [ %2690, %2687 ]
  store double %2692, ptr %235, align 8, !tbaa !20
  %2693 = load double, ptr %233, align 8, !tbaa !20
  %2694 = load double, ptr %234, align 8, !tbaa !20
  %2695 = fcmp une double %2693, %2694
  br i1 %2695, label %2696, label %2702

2696:                                             ; preds = %2691
  %2697 = load double, ptr %235, align 8, !tbaa !20
  %2698 = fcmp ogt double %2697, 1.000000e-05
  br i1 %2698, label %2699, label %2702

2699:                                             ; preds = %2696
  %2700 = load double, ptr %233, align 8, !tbaa !20
  %2701 = load double, ptr %234, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.77, double noundef %2700, double noundef %2701, ptr noundef @.str.3, i32 noundef 347)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2702

2702:                                             ; preds = %2699, %2696, %2691
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #8
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

2704:                                             ; preds = %2703
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #8
  store double 2.500000e-01, ptr %236, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #8
  %2705 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 5.000000e-01, double noundef 5.000000e-01)
  store double %2705, ptr %237, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #8
  %2706 = load double, ptr %236, align 8, !tbaa !20
  %2707 = load double, ptr %237, align 8, !tbaa !20
  %2708 = fcmp ogt double %2706, %2707
  br i1 %2708, label %2709, label %2713

2709:                                             ; preds = %2704
  %2710 = load double, ptr %236, align 8, !tbaa !20
  %2711 = load double, ptr %237, align 8, !tbaa !20
  %2712 = fsub double %2710, %2711
  br label %2717

2713:                                             ; preds = %2704
  %2714 = load double, ptr %237, align 8, !tbaa !20
  %2715 = load double, ptr %236, align 8, !tbaa !20
  %2716 = fsub double %2714, %2715
  br label %2717

2717:                                             ; preds = %2713, %2709
  %2718 = phi double [ %2712, %2709 ], [ %2716, %2713 ]
  store double %2718, ptr %238, align 8, !tbaa !20
  %2719 = load double, ptr %236, align 8, !tbaa !20
  %2720 = load double, ptr %237, align 8, !tbaa !20
  %2721 = fcmp une double %2719, %2720
  br i1 %2721, label %2722, label %2728

2722:                                             ; preds = %2717
  %2723 = load double, ptr %238, align 8, !tbaa !20
  %2724 = fcmp ogt double %2723, 1.000000e-05
  br i1 %2724, label %2725, label %2728

2725:                                             ; preds = %2722
  %2726 = load double, ptr %236, align 8, !tbaa !20
  %2727 = load double, ptr %237, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.78, double noundef %2726, double noundef %2727, ptr noundef @.str.3, i32 noundef 349)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2728

2728:                                             ; preds = %2725, %2722, %2717
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  br label %2729

2729:                                             ; preds = %2728
  br label %2730

2730:                                             ; preds = %2729
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #8
  store double -1.000000e+00, ptr %239, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #8
  %2731 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef -1.000000e+00)
  store double %2731, ptr %240, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #8
  %2732 = load double, ptr %239, align 8, !tbaa !20
  %2733 = load double, ptr %240, align 8, !tbaa !20
  %2734 = fcmp ogt double %2732, %2733
  br i1 %2734, label %2735, label %2739

2735:                                             ; preds = %2730
  %2736 = load double, ptr %239, align 8, !tbaa !20
  %2737 = load double, ptr %240, align 8, !tbaa !20
  %2738 = fsub double %2736, %2737
  br label %2743

2739:                                             ; preds = %2730
  %2740 = load double, ptr %240, align 8, !tbaa !20
  %2741 = load double, ptr %239, align 8, !tbaa !20
  %2742 = fsub double %2740, %2741
  br label %2743

2743:                                             ; preds = %2739, %2735
  %2744 = phi double [ %2738, %2735 ], [ %2742, %2739 ]
  store double %2744, ptr %241, align 8, !tbaa !20
  %2745 = load double, ptr %239, align 8, !tbaa !20
  %2746 = load double, ptr %240, align 8, !tbaa !20
  %2747 = fcmp une double %2745, %2746
  br i1 %2747, label %2748, label %2754

2748:                                             ; preds = %2743
  %2749 = load double, ptr %241, align 8, !tbaa !20
  %2750 = fcmp ogt double %2749, 1.000000e-05
  br i1 %2750, label %2751, label %2754

2751:                                             ; preds = %2748
  %2752 = load double, ptr %239, align 8, !tbaa !20
  %2753 = load double, ptr %240, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.79, double noundef %2752, double noundef %2753, ptr noundef @.str.3, i32 noundef 351)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2754

2754:                                             ; preds = %2751, %2748, %2743
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #8
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

2756:                                             ; preds = %2755
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #8
  store double -1.000000e+00, ptr %242, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %243) #8
  %2757 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef -1.000000e+00, double noundef 1.000000e+00)
  store double %2757, ptr %243, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #8
  %2758 = load double, ptr %242, align 8, !tbaa !20
  %2759 = load double, ptr %243, align 8, !tbaa !20
  %2760 = fcmp ogt double %2758, %2759
  br i1 %2760, label %2761, label %2765

2761:                                             ; preds = %2756
  %2762 = load double, ptr %242, align 8, !tbaa !20
  %2763 = load double, ptr %243, align 8, !tbaa !20
  %2764 = fsub double %2762, %2763
  br label %2769

2765:                                             ; preds = %2756
  %2766 = load double, ptr %243, align 8, !tbaa !20
  %2767 = load double, ptr %242, align 8, !tbaa !20
  %2768 = fsub double %2766, %2767
  br label %2769

2769:                                             ; preds = %2765, %2761
  %2770 = phi double [ %2764, %2761 ], [ %2768, %2765 ]
  store double %2770, ptr %244, align 8, !tbaa !20
  %2771 = load double, ptr %242, align 8, !tbaa !20
  %2772 = load double, ptr %243, align 8, !tbaa !20
  %2773 = fcmp une double %2771, %2772
  br i1 %2773, label %2774, label %2780

2774:                                             ; preds = %2769
  %2775 = load double, ptr %244, align 8, !tbaa !20
  %2776 = fcmp ogt double %2775, 1.000000e-05
  br i1 %2776, label %2777, label %2780

2777:                                             ; preds = %2774
  %2778 = load double, ptr %242, align 8, !tbaa !20
  %2779 = load double, ptr %243, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.80, double noundef %2778, double noundef %2779, ptr noundef @.str.3, i32 noundef 353)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2780

2780:                                             ; preds = %2777, %2774, %2769
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #8
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #8
  store double 1.000000e+00, ptr %245, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #8
  %2783 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef -1.000000e+00, double noundef -1.000000e+00)
  store double %2783, ptr %246, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #8
  %2784 = load double, ptr %245, align 8, !tbaa !20
  %2785 = load double, ptr %246, align 8, !tbaa !20
  %2786 = fcmp ogt double %2784, %2785
  br i1 %2786, label %2787, label %2791

2787:                                             ; preds = %2782
  %2788 = load double, ptr %245, align 8, !tbaa !20
  %2789 = load double, ptr %246, align 8, !tbaa !20
  %2790 = fsub double %2788, %2789
  br label %2795

2791:                                             ; preds = %2782
  %2792 = load double, ptr %246, align 8, !tbaa !20
  %2793 = load double, ptr %245, align 8, !tbaa !20
  %2794 = fsub double %2792, %2793
  br label %2795

2795:                                             ; preds = %2791, %2787
  %2796 = phi double [ %2790, %2787 ], [ %2794, %2791 ]
  store double %2796, ptr %247, align 8, !tbaa !20
  %2797 = load double, ptr %245, align 8, !tbaa !20
  %2798 = load double, ptr %246, align 8, !tbaa !20
  %2799 = fcmp une double %2797, %2798
  br i1 %2799, label %2800, label %2806

2800:                                             ; preds = %2795
  %2801 = load double, ptr %247, align 8, !tbaa !20
  %2802 = fcmp ogt double %2801, 1.000000e-05
  br i1 %2802, label %2803, label %2806

2803:                                             ; preds = %2800
  %2804 = load double, ptr %245, align 8, !tbaa !20
  %2805 = load double, ptr %246, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.81, double noundef %2804, double noundef %2805, ptr noundef @.str.3, i32 noundef 355)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2806

2806:                                             ; preds = %2803, %2800, %2795
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #8
  br label %2807

2807:                                             ; preds = %2806
  br label %2808

2808:                                             ; preds = %2807
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #8
  store double 1.500000e+07, ptr %248, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #8
  %2809 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 3.000000e+03, double noundef 5.000000e+03)
  store double %2809, ptr %249, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #8
  %2810 = load double, ptr %248, align 8, !tbaa !20
  %2811 = load double, ptr %249, align 8, !tbaa !20
  %2812 = fcmp ogt double %2810, %2811
  br i1 %2812, label %2813, label %2817

2813:                                             ; preds = %2808
  %2814 = load double, ptr %248, align 8, !tbaa !20
  %2815 = load double, ptr %249, align 8, !tbaa !20
  %2816 = fsub double %2814, %2815
  br label %2821

2817:                                             ; preds = %2808
  %2818 = load double, ptr %249, align 8, !tbaa !20
  %2819 = load double, ptr %248, align 8, !tbaa !20
  %2820 = fsub double %2818, %2819
  br label %2821

2821:                                             ; preds = %2817, %2813
  %2822 = phi double [ %2816, %2813 ], [ %2820, %2817 ]
  store double %2822, ptr %250, align 8, !tbaa !20
  %2823 = load double, ptr %248, align 8, !tbaa !20
  %2824 = load double, ptr %249, align 8, !tbaa !20
  %2825 = fcmp une double %2823, %2824
  br i1 %2825, label %2826, label %2832

2826:                                             ; preds = %2821
  %2827 = load double, ptr %250, align 8, !tbaa !20
  %2828 = fcmp ogt double %2827, 1.000000e-05
  br i1 %2828, label %2829, label %2832

2829:                                             ; preds = %2826
  %2830 = load double, ptr %248, align 8, !tbaa !20
  %2831 = load double, ptr %249, align 8, !tbaa !20
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.82, double noundef %2830, double noundef %2831, ptr noundef @.str.3, i32 noundef 357)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2832

2832:                                             ; preds = %2829, %2826, %2821
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #8
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

2834:                                             ; preds = %2833
  %2835 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 0x7FF8000000000000, double noundef 5.000000e+03)
  %2836 = call noundef zeroext i1 @_ZSt5isnand(double noundef %2835)
  br i1 %2836, label %2838, label %2837

2837:                                             ; preds = %2834
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.83, ptr noundef @.str.3, i32 noundef 359)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2838

2838:                                             ; preds = %2837, %2834
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839
  %2841 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 3.000000e+03, double noundef 0x7FF8000000000000)
  %2842 = call noundef zeroext i1 @_ZSt5isnand(double noundef %2841)
  br i1 %2842, label %2844, label %2843

2843:                                             ; preds = %2840
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 361)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2844

2844:                                             ; preds = %2843, %2840
  br label %2845

2845:                                             ; preds = %2844
  br label %2846

2846:                                             ; preds = %2845
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %2847 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %2848 = trunc i8 %2847 to i1
  %2849 = zext i1 %2848 to i64
  %2850 = select i1 %2848, i32 0, i32 1
  %2851 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %2852 = add nsw i32 %2851, %2850
  store i32 %2852, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %2853 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %2854 = trunc i8 %2853 to i1
  %2855 = zext i1 %2854 to i64
  %2856 = select i1 %2854, i32 1, i32 0
  %2857 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %2858 = add nsw i32 %2857, %2856
  store i32 %2858, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %2569, !llvm.loop !31

2859:                                             ; preds = %2569
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.85)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2860

2860:                                             ; preds = %3241, %2859
  %2861 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %2862 = trunc i8 %2861 to i1
  %2863 = xor i1 %2862, true
  br i1 %2863, label %2864, label %3254

2864:                                             ; preds = %2860
  br label %2865

2865:                                             ; preds = %2864
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #8
  store i32 -1, ptr %251, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #8
  %2866 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0.000000e+00, double noundef 1.000000e+00)
  store i32 %2866, ptr %252, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %253) #8
  store i8 0, ptr %253, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %254) #8
  store i8 0, ptr %254, align 1, !tbaa !11
  %2867 = load i8, ptr %253, align 1, !tbaa !11, !range !13, !noundef !14
  %2868 = trunc i8 %2867 to i1
  br i1 %2868, label %2869, label %2895

2869:                                             ; preds = %2865
  %2870 = load i8, ptr %254, align 1, !tbaa !11, !range !13, !noundef !14
  %2871 = trunc i8 %2870 to i1
  br i1 %2871, label %2872, label %2895

2872:                                             ; preds = %2869
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #8
  %2873 = load i32, ptr %251, align 4, !tbaa !5
  %2874 = load i32, ptr %252, align 4, !tbaa !5
  %2875 = icmp sgt i32 %2873, %2874
  br i1 %2875, label %2876, label %2880

2876:                                             ; preds = %2872
  %2877 = load i32, ptr %251, align 4, !tbaa !5
  %2878 = load i32, ptr %252, align 4, !tbaa !5
  %2879 = sub nsw i32 %2877, %2878
  br label %2884

2880:                                             ; preds = %2872
  %2881 = load i32, ptr %252, align 4, !tbaa !5
  %2882 = load i32, ptr %251, align 4, !tbaa !5
  %2883 = sub nsw i32 %2881, %2882
  br label %2884

2884:                                             ; preds = %2880, %2876
  %2885 = phi i32 [ %2879, %2876 ], [ %2883, %2880 ]
  store i32 %2885, ptr %255, align 4, !tbaa !5
  %2886 = load i32, ptr %255, align 4, !tbaa !5
  %2887 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %2888 = icmp sgt i32 %2886, %2887
  br i1 %2888, label %2889, label %2894

2889:                                             ; preds = %2884
  %2890 = load i32, ptr %251, align 4, !tbaa !5
  %2891 = sitofp i32 %2890 to double
  %2892 = load i32, ptr %252, align 4, !tbaa !5
  %2893 = sitofp i32 %2892 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.86, ptr noundef @.str.3, i32 noundef 365, double noundef %2891, double noundef %2893)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2894

2894:                                             ; preds = %2889, %2884
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #8
  br label %2910

2895:                                             ; preds = %2869, %2865
  %2896 = load i32, ptr %251, align 4, !tbaa !5
  %2897 = load i32, ptr %252, align 4, !tbaa !5
  %2898 = icmp ne i32 %2896, %2897
  br i1 %2898, label %2899, label %2909

2899:                                             ; preds = %2895
  %2900 = load i32, ptr %251, align 4, !tbaa !5
  %2901 = load i32, ptr %252, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 365, i32 noundef %2900, i32 noundef %2901)
  %2902 = load i8, ptr %253, align 1, !tbaa !11, !range !13, !noundef !14
  %2903 = trunc i8 %2902 to i1
  br i1 %2903, label %2907, label %2904

2904:                                             ; preds = %2899
  %2905 = load i8, ptr %254, align 1, !tbaa !11, !range !13, !noundef !14
  %2906 = trunc i8 %2905 to i1
  br i1 %2906, label %2907, label %2908

2907:                                             ; preds = %2904, %2899
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %2908

2908:                                             ; preds = %2907, %2904
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2909

2909:                                             ; preds = %2908, %2895
  br label %2910

2910:                                             ; preds = %2909, %2894
  call void @llvm.lifetime.end.p0(i64 1, ptr %254) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %253) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #8
  br label %2911

2911:                                             ; preds = %2910
  br label %2912

2912:                                             ; preds = %2911
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #8
  store i32 1, ptr %256, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #8
  %2913 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 1.000000e+00, double noundef 0.000000e+00)
  store i32 %2913, ptr %257, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %258) #8
  store i8 0, ptr %258, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %259) #8
  store i8 0, ptr %259, align 1, !tbaa !11
  %2914 = load i8, ptr %258, align 1, !tbaa !11, !range !13, !noundef !14
  %2915 = trunc i8 %2914 to i1
  br i1 %2915, label %2916, label %2942

2916:                                             ; preds = %2912
  %2917 = load i8, ptr %259, align 1, !tbaa !11, !range !13, !noundef !14
  %2918 = trunc i8 %2917 to i1
  br i1 %2918, label %2919, label %2942

2919:                                             ; preds = %2916
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #8
  %2920 = load i32, ptr %256, align 4, !tbaa !5
  %2921 = load i32, ptr %257, align 4, !tbaa !5
  %2922 = icmp sgt i32 %2920, %2921
  br i1 %2922, label %2923, label %2927

2923:                                             ; preds = %2919
  %2924 = load i32, ptr %256, align 4, !tbaa !5
  %2925 = load i32, ptr %257, align 4, !tbaa !5
  %2926 = sub nsw i32 %2924, %2925
  br label %2931

2927:                                             ; preds = %2919
  %2928 = load i32, ptr %257, align 4, !tbaa !5
  %2929 = load i32, ptr %256, align 4, !tbaa !5
  %2930 = sub nsw i32 %2928, %2929
  br label %2931

2931:                                             ; preds = %2927, %2923
  %2932 = phi i32 [ %2926, %2923 ], [ %2930, %2927 ]
  store i32 %2932, ptr %260, align 4, !tbaa !5
  %2933 = load i32, ptr %260, align 4, !tbaa !5
  %2934 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %2935 = icmp sgt i32 %2933, %2934
  br i1 %2935, label %2936, label %2941

2936:                                             ; preds = %2931
  %2937 = load i32, ptr %256, align 4, !tbaa !5
  %2938 = sitofp i32 %2937 to double
  %2939 = load i32, ptr %257, align 4, !tbaa !5
  %2940 = sitofp i32 %2939 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.88, ptr noundef @.str.3, i32 noundef 366, double noundef %2938, double noundef %2940)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2941

2941:                                             ; preds = %2936, %2931
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #8
  br label %2957

2942:                                             ; preds = %2916, %2912
  %2943 = load i32, ptr %256, align 4, !tbaa !5
  %2944 = load i32, ptr %257, align 4, !tbaa !5
  %2945 = icmp ne i32 %2943, %2944
  br i1 %2945, label %2946, label %2956

2946:                                             ; preds = %2942
  %2947 = load i32, ptr %256, align 4, !tbaa !5
  %2948 = load i32, ptr %257, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.89, ptr noundef @.str.3, i32 noundef 366, i32 noundef %2947, i32 noundef %2948)
  %2949 = load i8, ptr %258, align 1, !tbaa !11, !range !13, !noundef !14
  %2950 = trunc i8 %2949 to i1
  br i1 %2950, label %2954, label %2951

2951:                                             ; preds = %2946
  %2952 = load i8, ptr %259, align 1, !tbaa !11, !range !13, !noundef !14
  %2953 = trunc i8 %2952 to i1
  br i1 %2953, label %2954, label %2955

2954:                                             ; preds = %2951, %2946
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %2955

2955:                                             ; preds = %2954, %2951
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2956

2956:                                             ; preds = %2955, %2942
  br label %2957

2957:                                             ; preds = %2956, %2941
  call void @llvm.lifetime.end.p0(i64 1, ptr %259) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #8
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #8
  store i32 0, ptr %261, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #8
  %2960 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 1.000000e+00, double noundef 1.000000e+00)
  store i32 %2960, ptr %262, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %263) #8
  store i8 0, ptr %263, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %264) #8
  store i8 0, ptr %264, align 1, !tbaa !11
  %2961 = load i8, ptr %263, align 1, !tbaa !11, !range !13, !noundef !14
  %2962 = trunc i8 %2961 to i1
  br i1 %2962, label %2963, label %2989

2963:                                             ; preds = %2959
  %2964 = load i8, ptr %264, align 1, !tbaa !11, !range !13, !noundef !14
  %2965 = trunc i8 %2964 to i1
  br i1 %2965, label %2966, label %2989

2966:                                             ; preds = %2963
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #8
  %2967 = load i32, ptr %261, align 4, !tbaa !5
  %2968 = load i32, ptr %262, align 4, !tbaa !5
  %2969 = icmp sgt i32 %2967, %2968
  br i1 %2969, label %2970, label %2974

2970:                                             ; preds = %2966
  %2971 = load i32, ptr %261, align 4, !tbaa !5
  %2972 = load i32, ptr %262, align 4, !tbaa !5
  %2973 = sub nsw i32 %2971, %2972
  br label %2978

2974:                                             ; preds = %2966
  %2975 = load i32, ptr %262, align 4, !tbaa !5
  %2976 = load i32, ptr %261, align 4, !tbaa !5
  %2977 = sub nsw i32 %2975, %2976
  br label %2978

2978:                                             ; preds = %2974, %2970
  %2979 = phi i32 [ %2973, %2970 ], [ %2977, %2974 ]
  store i32 %2979, ptr %265, align 4, !tbaa !5
  %2980 = load i32, ptr %265, align 4, !tbaa !5
  %2981 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %2982 = icmp sgt i32 %2980, %2981
  br i1 %2982, label %2983, label %2988

2983:                                             ; preds = %2978
  %2984 = load i32, ptr %261, align 4, !tbaa !5
  %2985 = sitofp i32 %2984 to double
  %2986 = load i32, ptr %262, align 4, !tbaa !5
  %2987 = sitofp i32 %2986 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.90, ptr noundef @.str.3, i32 noundef 367, double noundef %2985, double noundef %2987)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %2988

2988:                                             ; preds = %2983, %2978
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #8
  br label %3004

2989:                                             ; preds = %2963, %2959
  %2990 = load i32, ptr %261, align 4, !tbaa !5
  %2991 = load i32, ptr %262, align 4, !tbaa !5
  %2992 = icmp ne i32 %2990, %2991
  br i1 %2992, label %2993, label %3003

2993:                                             ; preds = %2989
  %2994 = load i32, ptr %261, align 4, !tbaa !5
  %2995 = load i32, ptr %262, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 367, i32 noundef %2994, i32 noundef %2995)
  %2996 = load i8, ptr %263, align 1, !tbaa !11, !range !13, !noundef !14
  %2997 = trunc i8 %2996 to i1
  br i1 %2997, label %3001, label %2998

2998:                                             ; preds = %2993
  %2999 = load i8, ptr %264, align 1, !tbaa !11, !range !13, !noundef !14
  %3000 = trunc i8 %2999 to i1
  br i1 %3000, label %3001, label %3002

3001:                                             ; preds = %2998, %2993
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3002

3002:                                             ; preds = %3001, %2998
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3003

3003:                                             ; preds = %3002, %2989
  br label %3004

3004:                                             ; preds = %3003, %2988
  call void @llvm.lifetime.end.p0(i64 1, ptr %264) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #8
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #8
  store i32 0, ptr %266, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #8
  %3007 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0.000000e+00, double noundef 0.000000e+00)
  store i32 %3007, ptr %267, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %268) #8
  store i8 0, ptr %268, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %269) #8
  store i8 0, ptr %269, align 1, !tbaa !11
  %3008 = load i8, ptr %268, align 1, !tbaa !11, !range !13, !noundef !14
  %3009 = trunc i8 %3008 to i1
  br i1 %3009, label %3010, label %3036

3010:                                             ; preds = %3006
  %3011 = load i8, ptr %269, align 1, !tbaa !11, !range !13, !noundef !14
  %3012 = trunc i8 %3011 to i1
  br i1 %3012, label %3013, label %3036

3013:                                             ; preds = %3010
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #8
  %3014 = load i32, ptr %266, align 4, !tbaa !5
  %3015 = load i32, ptr %267, align 4, !tbaa !5
  %3016 = icmp sgt i32 %3014, %3015
  br i1 %3016, label %3017, label %3021

3017:                                             ; preds = %3013
  %3018 = load i32, ptr %266, align 4, !tbaa !5
  %3019 = load i32, ptr %267, align 4, !tbaa !5
  %3020 = sub nsw i32 %3018, %3019
  br label %3025

3021:                                             ; preds = %3013
  %3022 = load i32, ptr %267, align 4, !tbaa !5
  %3023 = load i32, ptr %266, align 4, !tbaa !5
  %3024 = sub nsw i32 %3022, %3023
  br label %3025

3025:                                             ; preds = %3021, %3017
  %3026 = phi i32 [ %3020, %3017 ], [ %3024, %3021 ]
  store i32 %3026, ptr %270, align 4, !tbaa !5
  %3027 = load i32, ptr %270, align 4, !tbaa !5
  %3028 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3029 = icmp sgt i32 %3027, %3028
  br i1 %3029, label %3030, label %3035

3030:                                             ; preds = %3025
  %3031 = load i32, ptr %266, align 4, !tbaa !5
  %3032 = sitofp i32 %3031 to double
  %3033 = load i32, ptr %267, align 4, !tbaa !5
  %3034 = sitofp i32 %3033 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 368, double noundef %3032, double noundef %3034)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3035

3035:                                             ; preds = %3030, %3025
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #8
  br label %3051

3036:                                             ; preds = %3010, %3006
  %3037 = load i32, ptr %266, align 4, !tbaa !5
  %3038 = load i32, ptr %267, align 4, !tbaa !5
  %3039 = icmp ne i32 %3037, %3038
  br i1 %3039, label %3040, label %3050

3040:                                             ; preds = %3036
  %3041 = load i32, ptr %266, align 4, !tbaa !5
  %3042 = load i32, ptr %267, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.93, ptr noundef @.str.3, i32 noundef 368, i32 noundef %3041, i32 noundef %3042)
  %3043 = load i8, ptr %268, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc i8 %3043 to i1
  br i1 %3044, label %3048, label %3045

3045:                                             ; preds = %3040
  %3046 = load i8, ptr %269, align 1, !tbaa !11, !range !13, !noundef !14
  %3047 = trunc i8 %3046 to i1
  br i1 %3047, label %3048, label %3049

3048:                                             ; preds = %3045, %3040
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3049

3049:                                             ; preds = %3048, %3045
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3050

3050:                                             ; preds = %3049, %3036
  br label %3051

3051:                                             ; preds = %3050, %3035
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %268) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #8
  br label %3052

3052:                                             ; preds = %3051
  br label %3053

3053:                                             ; preds = %3052
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #8
  store i32 -1, ptr %271, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #8
  %3054 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef -1.000000e+01, double noundef 1.000000e+01)
  store i32 %3054, ptr %272, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %273) #8
  store i8 0, ptr %273, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %274) #8
  store i8 0, ptr %274, align 1, !tbaa !11
  %3055 = load i8, ptr %273, align 1, !tbaa !11, !range !13, !noundef !14
  %3056 = trunc i8 %3055 to i1
  br i1 %3056, label %3057, label %3083

3057:                                             ; preds = %3053
  %3058 = load i8, ptr %274, align 1, !tbaa !11, !range !13, !noundef !14
  %3059 = trunc i8 %3058 to i1
  br i1 %3059, label %3060, label %3083

3060:                                             ; preds = %3057
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #8
  %3061 = load i32, ptr %271, align 4, !tbaa !5
  %3062 = load i32, ptr %272, align 4, !tbaa !5
  %3063 = icmp sgt i32 %3061, %3062
  br i1 %3063, label %3064, label %3068

3064:                                             ; preds = %3060
  %3065 = load i32, ptr %271, align 4, !tbaa !5
  %3066 = load i32, ptr %272, align 4, !tbaa !5
  %3067 = sub nsw i32 %3065, %3066
  br label %3072

3068:                                             ; preds = %3060
  %3069 = load i32, ptr %272, align 4, !tbaa !5
  %3070 = load i32, ptr %271, align 4, !tbaa !5
  %3071 = sub nsw i32 %3069, %3070
  br label %3072

3072:                                             ; preds = %3068, %3064
  %3073 = phi i32 [ %3067, %3064 ], [ %3071, %3068 ]
  store i32 %3073, ptr %275, align 4, !tbaa !5
  %3074 = load i32, ptr %275, align 4, !tbaa !5
  %3075 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3076 = icmp sgt i32 %3074, %3075
  br i1 %3076, label %3077, label %3082

3077:                                             ; preds = %3072
  %3078 = load i32, ptr %271, align 4, !tbaa !5
  %3079 = sitofp i32 %3078 to double
  %3080 = load i32, ptr %272, align 4, !tbaa !5
  %3081 = sitofp i32 %3080 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 369, double noundef %3079, double noundef %3081)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3082

3082:                                             ; preds = %3077, %3072
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #8
  br label %3098

3083:                                             ; preds = %3057, %3053
  %3084 = load i32, ptr %271, align 4, !tbaa !5
  %3085 = load i32, ptr %272, align 4, !tbaa !5
  %3086 = icmp ne i32 %3084, %3085
  br i1 %3086, label %3087, label %3097

3087:                                             ; preds = %3083
  %3088 = load i32, ptr %271, align 4, !tbaa !5
  %3089 = load i32, ptr %272, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 369, i32 noundef %3088, i32 noundef %3089)
  %3090 = load i8, ptr %273, align 1, !tbaa !11, !range !13, !noundef !14
  %3091 = trunc i8 %3090 to i1
  br i1 %3091, label %3095, label %3092

3092:                                             ; preds = %3087
  %3093 = load i8, ptr %274, align 1, !tbaa !11, !range !13, !noundef !14
  %3094 = trunc i8 %3093 to i1
  br i1 %3094, label %3095, label %3096

3095:                                             ; preds = %3092, %3087
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3096

3096:                                             ; preds = %3095, %3092
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3097

3097:                                             ; preds = %3096, %3083
  br label %3098

3098:                                             ; preds = %3097, %3082
  call void @llvm.lifetime.end.p0(i64 1, ptr %274) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #8
  br label %3099

3099:                                             ; preds = %3098
  br label %3100

3100:                                             ; preds = %3099
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #8
  store i32 1, ptr %276, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #8
  %3101 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 1.234500e+02, double noundef 1.000000e+01)
  store i32 %3101, ptr %277, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %278) #8
  store i8 0, ptr %278, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %279) #8
  store i8 0, ptr %279, align 1, !tbaa !11
  %3102 = load i8, ptr %278, align 1, !tbaa !11, !range !13, !noundef !14
  %3103 = trunc i8 %3102 to i1
  br i1 %3103, label %3104, label %3130

3104:                                             ; preds = %3100
  %3105 = load i8, ptr %279, align 1, !tbaa !11, !range !13, !noundef !14
  %3106 = trunc i8 %3105 to i1
  br i1 %3106, label %3107, label %3130

3107:                                             ; preds = %3104
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #8
  %3108 = load i32, ptr %276, align 4, !tbaa !5
  %3109 = load i32, ptr %277, align 4, !tbaa !5
  %3110 = icmp sgt i32 %3108, %3109
  br i1 %3110, label %3111, label %3115

3111:                                             ; preds = %3107
  %3112 = load i32, ptr %276, align 4, !tbaa !5
  %3113 = load i32, ptr %277, align 4, !tbaa !5
  %3114 = sub nsw i32 %3112, %3113
  br label %3119

3115:                                             ; preds = %3107
  %3116 = load i32, ptr %277, align 4, !tbaa !5
  %3117 = load i32, ptr %276, align 4, !tbaa !5
  %3118 = sub nsw i32 %3116, %3117
  br label %3119

3119:                                             ; preds = %3115, %3111
  %3120 = phi i32 [ %3114, %3111 ], [ %3118, %3115 ]
  store i32 %3120, ptr %280, align 4, !tbaa !5
  %3121 = load i32, ptr %280, align 4, !tbaa !5
  %3122 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3123 = icmp sgt i32 %3121, %3122
  br i1 %3123, label %3124, label %3129

3124:                                             ; preds = %3119
  %3125 = load i32, ptr %276, align 4, !tbaa !5
  %3126 = sitofp i32 %3125 to double
  %3127 = load i32, ptr %277, align 4, !tbaa !5
  %3128 = sitofp i32 %3127 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.96, ptr noundef @.str.3, i32 noundef 370, double noundef %3126, double noundef %3128)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3129

3129:                                             ; preds = %3124, %3119
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #8
  br label %3145

3130:                                             ; preds = %3104, %3100
  %3131 = load i32, ptr %276, align 4, !tbaa !5
  %3132 = load i32, ptr %277, align 4, !tbaa !5
  %3133 = icmp ne i32 %3131, %3132
  br i1 %3133, label %3134, label %3144

3134:                                             ; preds = %3130
  %3135 = load i32, ptr %276, align 4, !tbaa !5
  %3136 = load i32, ptr %277, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.97, ptr noundef @.str.3, i32 noundef 370, i32 noundef %3135, i32 noundef %3136)
  %3137 = load i8, ptr %278, align 1, !tbaa !11, !range !13, !noundef !14
  %3138 = trunc i8 %3137 to i1
  br i1 %3138, label %3142, label %3139

3139:                                             ; preds = %3134
  %3140 = load i8, ptr %279, align 1, !tbaa !11, !range !13, !noundef !14
  %3141 = trunc i8 %3140 to i1
  br i1 %3141, label %3142, label %3143

3142:                                             ; preds = %3139, %3134
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3143

3143:                                             ; preds = %3142, %3139
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3144

3144:                                             ; preds = %3143, %3130
  br label %3145

3145:                                             ; preds = %3144, %3129
  call void @llvm.lifetime.end.p0(i64 1, ptr %279) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %278) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #8
  br label %3146

3146:                                             ; preds = %3145
  br label %3147

3147:                                             ; preds = %3146
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #8
  store i32 1, ptr %281, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #8
  %3148 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0x7FF8000000000000, double noundef 0x7FF0000000000000)
  store i32 %3148, ptr %282, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %283) #8
  store i8 0, ptr %283, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %284) #8
  store i8 0, ptr %284, align 1, !tbaa !11
  %3149 = load i8, ptr %283, align 1, !tbaa !11, !range !13, !noundef !14
  %3150 = trunc i8 %3149 to i1
  br i1 %3150, label %3151, label %3177

3151:                                             ; preds = %3147
  %3152 = load i8, ptr %284, align 1, !tbaa !11, !range !13, !noundef !14
  %3153 = trunc i8 %3152 to i1
  br i1 %3153, label %3154, label %3177

3154:                                             ; preds = %3151
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #8
  %3155 = load i32, ptr %281, align 4, !tbaa !5
  %3156 = load i32, ptr %282, align 4, !tbaa !5
  %3157 = icmp sgt i32 %3155, %3156
  br i1 %3157, label %3158, label %3162

3158:                                             ; preds = %3154
  %3159 = load i32, ptr %281, align 4, !tbaa !5
  %3160 = load i32, ptr %282, align 4, !tbaa !5
  %3161 = sub nsw i32 %3159, %3160
  br label %3166

3162:                                             ; preds = %3154
  %3163 = load i32, ptr %282, align 4, !tbaa !5
  %3164 = load i32, ptr %281, align 4, !tbaa !5
  %3165 = sub nsw i32 %3163, %3164
  br label %3166

3166:                                             ; preds = %3162, %3158
  %3167 = phi i32 [ %3161, %3158 ], [ %3165, %3162 ]
  store i32 %3167, ptr %285, align 4, !tbaa !5
  %3168 = load i32, ptr %285, align 4, !tbaa !5
  %3169 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3170 = icmp sgt i32 %3168, %3169
  br i1 %3170, label %3171, label %3176

3171:                                             ; preds = %3166
  %3172 = load i32, ptr %281, align 4, !tbaa !5
  %3173 = sitofp i32 %3172 to double
  %3174 = load i32, ptr %282, align 4, !tbaa !5
  %3175 = sitofp i32 %3174 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 373, double noundef %3173, double noundef %3175)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3176

3176:                                             ; preds = %3171, %3166
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #8
  br label %3192

3177:                                             ; preds = %3151, %3147
  %3178 = load i32, ptr %281, align 4, !tbaa !5
  %3179 = load i32, ptr %282, align 4, !tbaa !5
  %3180 = icmp ne i32 %3178, %3179
  br i1 %3180, label %3181, label %3191

3181:                                             ; preds = %3177
  %3182 = load i32, ptr %281, align 4, !tbaa !5
  %3183 = load i32, ptr %282, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 373, i32 noundef %3182, i32 noundef %3183)
  %3184 = load i8, ptr %283, align 1, !tbaa !11, !range !13, !noundef !14
  %3185 = trunc i8 %3184 to i1
  br i1 %3185, label %3189, label %3186

3186:                                             ; preds = %3181
  %3187 = load i8, ptr %284, align 1, !tbaa !11, !range !13, !noundef !14
  %3188 = trunc i8 %3187 to i1
  br i1 %3188, label %3189, label %3190

3189:                                             ; preds = %3186, %3181
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3190

3190:                                             ; preds = %3189, %3186
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3191

3191:                                             ; preds = %3190, %3177
  br label %3192

3192:                                             ; preds = %3191, %3176
  call void @llvm.lifetime.end.p0(i64 1, ptr %284) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %283) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #8
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #8
  store i32 1, ptr %286, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #8
  %3195 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0x7FF0000000000000, double noundef 0x7FF8000000000000)
  store i32 %3195, ptr %287, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %288) #8
  store i8 0, ptr %288, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %289) #8
  store i8 0, ptr %289, align 1, !tbaa !11
  %3196 = load i8, ptr %288, align 1, !tbaa !11, !range !13, !noundef !14
  %3197 = trunc i8 %3196 to i1
  br i1 %3197, label %3198, label %3224

3198:                                             ; preds = %3194
  %3199 = load i8, ptr %289, align 1, !tbaa !11, !range !13, !noundef !14
  %3200 = trunc i8 %3199 to i1
  br i1 %3200, label %3201, label %3224

3201:                                             ; preds = %3198
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #8
  %3202 = load i32, ptr %286, align 4, !tbaa !5
  %3203 = load i32, ptr %287, align 4, !tbaa !5
  %3204 = icmp sgt i32 %3202, %3203
  br i1 %3204, label %3205, label %3209

3205:                                             ; preds = %3201
  %3206 = load i32, ptr %286, align 4, !tbaa !5
  %3207 = load i32, ptr %287, align 4, !tbaa !5
  %3208 = sub nsw i32 %3206, %3207
  br label %3213

3209:                                             ; preds = %3201
  %3210 = load i32, ptr %287, align 4, !tbaa !5
  %3211 = load i32, ptr %286, align 4, !tbaa !5
  %3212 = sub nsw i32 %3210, %3211
  br label %3213

3213:                                             ; preds = %3209, %3205
  %3214 = phi i32 [ %3208, %3205 ], [ %3212, %3209 ]
  store i32 %3214, ptr %290, align 4, !tbaa !5
  %3215 = load i32, ptr %290, align 4, !tbaa !5
  %3216 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3217 = icmp sgt i32 %3215, %3216
  br i1 %3217, label %3218, label %3223

3218:                                             ; preds = %3213
  %3219 = load i32, ptr %286, align 4, !tbaa !5
  %3220 = sitofp i32 %3219 to double
  %3221 = load i32, ptr %287, align 4, !tbaa !5
  %3222 = sitofp i32 %3221 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.100, ptr noundef @.str.3, i32 noundef 376, double noundef %3220, double noundef %3222)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3223

3223:                                             ; preds = %3218, %3213
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #8
  br label %3239

3224:                                             ; preds = %3198, %3194
  %3225 = load i32, ptr %286, align 4, !tbaa !5
  %3226 = load i32, ptr %287, align 4, !tbaa !5
  %3227 = icmp ne i32 %3225, %3226
  br i1 %3227, label %3228, label %3238

3228:                                             ; preds = %3224
  %3229 = load i32, ptr %286, align 4, !tbaa !5
  %3230 = load i32, ptr %287, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 376, i32 noundef %3229, i32 noundef %3230)
  %3231 = load i8, ptr %288, align 1, !tbaa !11, !range !13, !noundef !14
  %3232 = trunc i8 %3231 to i1
  br i1 %3232, label %3236, label %3233

3233:                                             ; preds = %3228
  %3234 = load i8, ptr %289, align 1, !tbaa !11, !range !13, !noundef !14
  %3235 = trunc i8 %3234 to i1
  br i1 %3235, label %3236, label %3237

3236:                                             ; preds = %3233, %3228
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3237

3237:                                             ; preds = %3236, %3233
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3238

3238:                                             ; preds = %3237, %3224
  br label %3239

3239:                                             ; preds = %3238, %3223
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %288) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #8
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

3241:                                             ; preds = %3240
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %3242 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %3243 = trunc i8 %3242 to i1
  %3244 = zext i1 %3243 to i64
  %3245 = select i1 %3243, i32 0, i32 1
  %3246 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %3247 = add nsw i32 %3246, %3245
  store i32 %3247, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %3248 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %3249 = trunc i8 %3248 to i1
  %3250 = zext i1 %3249 to i64
  %3251 = select i1 %3249, i32 1, i32 0
  %3252 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %3253 = add nsw i32 %3252, %3251
  store i32 %3253, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %2860, !llvm.loop !32

3254:                                             ; preds = %2860
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.102)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3255

3255:                                             ; preds = %3659, %3254
  %3256 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %3257 = trunc i8 %3256 to i1
  %3258 = xor i1 %3257, true
  br i1 %3258, label %3259, label %3672

3259:                                             ; preds = %3255
  call void @llvm.lifetime.start.p0(i64 1, ptr %291) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #8
  %3260 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %291, double noundef 1.000000e+00, double noundef 1.600000e+01, i32 noundef 4)
  store i64 %3260, ptr %292, align 4
  br label %3261

3261:                                             ; preds = %3259
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #8
  %3262 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 0
  %3263 = load i32, ptr %3262, align 4, !tbaa !33
  store i32 %3263, ptr %293, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #8
  store i32 2147483647, ptr %294, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %295) #8
  store i8 0, ptr %295, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %296) #8
  store i8 0, ptr %296, align 1, !tbaa !11
  %3264 = load i8, ptr %295, align 1, !tbaa !11, !range !13, !noundef !14
  %3265 = trunc i8 %3264 to i1
  br i1 %3265, label %3266, label %3292

3266:                                             ; preds = %3261
  %3267 = load i8, ptr %296, align 1, !tbaa !11, !range !13, !noundef !14
  %3268 = trunc i8 %3267 to i1
  br i1 %3268, label %3269, label %3292

3269:                                             ; preds = %3266
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #8
  %3270 = load i32, ptr %293, align 4, !tbaa !5
  %3271 = load i32, ptr %294, align 4, !tbaa !5
  %3272 = icmp sgt i32 %3270, %3271
  br i1 %3272, label %3273, label %3277

3273:                                             ; preds = %3269
  %3274 = load i32, ptr %293, align 4, !tbaa !5
  %3275 = load i32, ptr %294, align 4, !tbaa !5
  %3276 = sub nsw i32 %3274, %3275
  br label %3281

3277:                                             ; preds = %3269
  %3278 = load i32, ptr %294, align 4, !tbaa !5
  %3279 = load i32, ptr %293, align 4, !tbaa !5
  %3280 = sub nsw i32 %3278, %3279
  br label %3281

3281:                                             ; preds = %3277, %3273
  %3282 = phi i32 [ %3276, %3273 ], [ %3280, %3277 ]
  store i32 %3282, ptr %297, align 4, !tbaa !5
  %3283 = load i32, ptr %297, align 4, !tbaa !5
  %3284 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3285 = icmp sgt i32 %3283, %3284
  br i1 %3285, label %3286, label %3291

3286:                                             ; preds = %3281
  %3287 = load i32, ptr %293, align 4, !tbaa !5
  %3288 = sitofp i32 %3287 to double
  %3289 = load i32, ptr %294, align 4, !tbaa !5
  %3290 = sitofp i32 %3289 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.103, ptr noundef @.str.3, i32 noundef 392, double noundef %3288, double noundef %3290)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3291

3291:                                             ; preds = %3286, %3281
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #8
  br label %3307

3292:                                             ; preds = %3266, %3261
  %3293 = load i32, ptr %293, align 4, !tbaa !5
  %3294 = load i32, ptr %294, align 4, !tbaa !5
  %3295 = icmp ne i32 %3293, %3294
  br i1 %3295, label %3296, label %3306

3296:                                             ; preds = %3292
  %3297 = load i32, ptr %293, align 4, !tbaa !5
  %3298 = load i32, ptr %294, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.104, ptr noundef @.str.3, i32 noundef 392, i32 noundef %3297, i32 noundef %3298)
  %3299 = load i8, ptr %295, align 1, !tbaa !11, !range !13, !noundef !14
  %3300 = trunc i8 %3299 to i1
  br i1 %3300, label %3304, label %3301

3301:                                             ; preds = %3296
  %3302 = load i8, ptr %296, align 1, !tbaa !11, !range !13, !noundef !14
  %3303 = trunc i8 %3302 to i1
  br i1 %3303, label %3304, label %3305

3304:                                             ; preds = %3301, %3296
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3305

3305:                                             ; preds = %3304, %3301
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3306

3306:                                             ; preds = %3305, %3292
  br label %3307

3307:                                             ; preds = %3306, %3291
  call void @llvm.lifetime.end.p0(i64 1, ptr %296) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %295) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #8
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  br label %3310

3310:                                             ; preds = %3309
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #8
  %3311 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 1
  %3312 = load i32, ptr %3311, align 4, !tbaa !35
  store i32 %3312, ptr %298, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #8
  store i32 31, ptr %299, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %300) #8
  store i8 0, ptr %300, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %301) #8
  store i8 0, ptr %301, align 1, !tbaa !11
  %3313 = load i8, ptr %300, align 1, !tbaa !11, !range !13, !noundef !14
  %3314 = trunc i8 %3313 to i1
  br i1 %3314, label %3315, label %3341

3315:                                             ; preds = %3310
  %3316 = load i8, ptr %301, align 1, !tbaa !11, !range !13, !noundef !14
  %3317 = trunc i8 %3316 to i1
  br i1 %3317, label %3318, label %3341

3318:                                             ; preds = %3315
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #8
  %3319 = load i32, ptr %298, align 4, !tbaa !5
  %3320 = load i32, ptr %299, align 4, !tbaa !5
  %3321 = icmp sgt i32 %3319, %3320
  br i1 %3321, label %3322, label %3326

3322:                                             ; preds = %3318
  %3323 = load i32, ptr %298, align 4, !tbaa !5
  %3324 = load i32, ptr %299, align 4, !tbaa !5
  %3325 = sub nsw i32 %3323, %3324
  br label %3330

3326:                                             ; preds = %3318
  %3327 = load i32, ptr %299, align 4, !tbaa !5
  %3328 = load i32, ptr %298, align 4, !tbaa !5
  %3329 = sub nsw i32 %3327, %3328
  br label %3330

3330:                                             ; preds = %3326, %3322
  %3331 = phi i32 [ %3325, %3322 ], [ %3329, %3326 ]
  store i32 %3331, ptr %302, align 4, !tbaa !5
  %3332 = load i32, ptr %302, align 4, !tbaa !5
  %3333 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3334 = icmp sgt i32 %3332, %3333
  br i1 %3334, label %3335, label %3340

3335:                                             ; preds = %3330
  %3336 = load i32, ptr %298, align 4, !tbaa !5
  %3337 = sitofp i32 %3336 to double
  %3338 = load i32, ptr %299, align 4, !tbaa !5
  %3339 = sitofp i32 %3338 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 393, double noundef %3337, double noundef %3339)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3340

3340:                                             ; preds = %3335, %3330
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #8
  br label %3356

3341:                                             ; preds = %3315, %3310
  %3342 = load i32, ptr %298, align 4, !tbaa !5
  %3343 = load i32, ptr %299, align 4, !tbaa !5
  %3344 = icmp ne i32 %3342, %3343
  br i1 %3344, label %3345, label %3355

3345:                                             ; preds = %3341
  %3346 = load i32, ptr %298, align 4, !tbaa !5
  %3347 = load i32, ptr %299, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 393, i32 noundef %3346, i32 noundef %3347)
  %3348 = load i8, ptr %300, align 1, !tbaa !11, !range !13, !noundef !14
  %3349 = trunc i8 %3348 to i1
  br i1 %3349, label %3353, label %3350

3350:                                             ; preds = %3345
  %3351 = load i8, ptr %301, align 1, !tbaa !11, !range !13, !noundef !14
  %3352 = trunc i8 %3351 to i1
  br i1 %3352, label %3353, label %3354

3353:                                             ; preds = %3350, %3345
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3354

3354:                                             ; preds = %3353, %3350
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3355

3355:                                             ; preds = %3354, %3341
  br label %3356

3356:                                             ; preds = %3355, %3340
  call void @llvm.lifetime.end.p0(i64 1, ptr %301) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %300) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #8
  br label %3357

3357:                                             ; preds = %3356
  br label %3358

3358:                                             ; preds = %3357
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #8
  %3359 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %291, double noundef 1.000000e+00, double noundef 8.000000e+00, i32 noundef 4)
  store i64 %3359, ptr %303, align 4
  %3360 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %292, ptr noundef nonnull align 4 dereferenceable(8) %303) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #8
  br label %3361

3361:                                             ; preds = %3358
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #8
  %3362 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 0
  %3363 = load i32, ptr %3362, align 4, !tbaa !33
  store i32 %3363, ptr %304, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #8
  store i32 1073741824, ptr %305, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %306) #8
  store i8 0, ptr %306, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %307) #8
  store i8 0, ptr %307, align 1, !tbaa !11
  %3364 = load i8, ptr %306, align 1, !tbaa !11, !range !13, !noundef !14
  %3365 = trunc i8 %3364 to i1
  br i1 %3365, label %3366, label %3392

3366:                                             ; preds = %3361
  %3367 = load i8, ptr %307, align 1, !tbaa !11, !range !13, !noundef !14
  %3368 = trunc i8 %3367 to i1
  br i1 %3368, label %3369, label %3392

3369:                                             ; preds = %3366
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #8
  %3370 = load i32, ptr %304, align 4, !tbaa !5
  %3371 = load i32, ptr %305, align 4, !tbaa !5
  %3372 = icmp sgt i32 %3370, %3371
  br i1 %3372, label %3373, label %3377

3373:                                             ; preds = %3369
  %3374 = load i32, ptr %304, align 4, !tbaa !5
  %3375 = load i32, ptr %305, align 4, !tbaa !5
  %3376 = sub nsw i32 %3374, %3375
  br label %3381

3377:                                             ; preds = %3369
  %3378 = load i32, ptr %305, align 4, !tbaa !5
  %3379 = load i32, ptr %304, align 4, !tbaa !5
  %3380 = sub nsw i32 %3378, %3379
  br label %3381

3381:                                             ; preds = %3377, %3373
  %3382 = phi i32 [ %3376, %3373 ], [ %3380, %3377 ]
  store i32 %3382, ptr %308, align 4, !tbaa !5
  %3383 = load i32, ptr %308, align 4, !tbaa !5
  %3384 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3385 = icmp sgt i32 %3383, %3384
  br i1 %3385, label %3386, label %3391

3386:                                             ; preds = %3381
  %3387 = load i32, ptr %304, align 4, !tbaa !5
  %3388 = sitofp i32 %3387 to double
  %3389 = load i32, ptr %305, align 4, !tbaa !5
  %3390 = sitofp i32 %3389 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 396, double noundef %3388, double noundef %3390)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3391

3391:                                             ; preds = %3386, %3381
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #8
  br label %3407

3392:                                             ; preds = %3366, %3361
  %3393 = load i32, ptr %304, align 4, !tbaa !5
  %3394 = load i32, ptr %305, align 4, !tbaa !5
  %3395 = icmp ne i32 %3393, %3394
  br i1 %3395, label %3396, label %3406

3396:                                             ; preds = %3392
  %3397 = load i32, ptr %304, align 4, !tbaa !5
  %3398 = load i32, ptr %305, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 396, i32 noundef %3397, i32 noundef %3398)
  %3399 = load i8, ptr %306, align 1, !tbaa !11, !range !13, !noundef !14
  %3400 = trunc i8 %3399 to i1
  br i1 %3400, label %3404, label %3401

3401:                                             ; preds = %3396
  %3402 = load i8, ptr %307, align 1, !tbaa !11, !range !13, !noundef !14
  %3403 = trunc i8 %3402 to i1
  br i1 %3403, label %3404, label %3405

3404:                                             ; preds = %3401, %3396
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3405

3405:                                             ; preds = %3404, %3401
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3406

3406:                                             ; preds = %3405, %3392
  br label %3407

3407:                                             ; preds = %3406, %3391
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %306) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #8
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #8
  %3411 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 1
  %3412 = load i32, ptr %3411, align 4, !tbaa !35
  store i32 %3412, ptr %309, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #8
  store i32 31, ptr %310, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %311) #8
  store i8 0, ptr %311, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %312) #8
  store i8 0, ptr %312, align 1, !tbaa !11
  %3413 = load i8, ptr %311, align 1, !tbaa !11, !range !13, !noundef !14
  %3414 = trunc i8 %3413 to i1
  br i1 %3414, label %3415, label %3441

3415:                                             ; preds = %3410
  %3416 = load i8, ptr %312, align 1, !tbaa !11, !range !13, !noundef !14
  %3417 = trunc i8 %3416 to i1
  br i1 %3417, label %3418, label %3441

3418:                                             ; preds = %3415
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #8
  %3419 = load i32, ptr %309, align 4, !tbaa !5
  %3420 = load i32, ptr %310, align 4, !tbaa !5
  %3421 = icmp sgt i32 %3419, %3420
  br i1 %3421, label %3422, label %3426

3422:                                             ; preds = %3418
  %3423 = load i32, ptr %309, align 4, !tbaa !5
  %3424 = load i32, ptr %310, align 4, !tbaa !5
  %3425 = sub nsw i32 %3423, %3424
  br label %3430

3426:                                             ; preds = %3418
  %3427 = load i32, ptr %310, align 4, !tbaa !5
  %3428 = load i32, ptr %309, align 4, !tbaa !5
  %3429 = sub nsw i32 %3427, %3428
  br label %3430

3430:                                             ; preds = %3426, %3422
  %3431 = phi i32 [ %3425, %3422 ], [ %3429, %3426 ]
  store i32 %3431, ptr %313, align 4, !tbaa !5
  %3432 = load i32, ptr %313, align 4, !tbaa !5
  %3433 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3434 = icmp sgt i32 %3432, %3433
  br i1 %3434, label %3435, label %3440

3435:                                             ; preds = %3430
  %3436 = load i32, ptr %309, align 4, !tbaa !5
  %3437 = sitofp i32 %3436 to double
  %3438 = load i32, ptr %310, align 4, !tbaa !5
  %3439 = sitofp i32 %3438 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 397, double noundef %3437, double noundef %3439)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3440

3440:                                             ; preds = %3435, %3430
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #8
  br label %3456

3441:                                             ; preds = %3415, %3410
  %3442 = load i32, ptr %309, align 4, !tbaa !5
  %3443 = load i32, ptr %310, align 4, !tbaa !5
  %3444 = icmp ne i32 %3442, %3443
  br i1 %3444, label %3445, label %3455

3445:                                             ; preds = %3441
  %3446 = load i32, ptr %309, align 4, !tbaa !5
  %3447 = load i32, ptr %310, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 397, i32 noundef %3446, i32 noundef %3447)
  %3448 = load i8, ptr %311, align 1, !tbaa !11, !range !13, !noundef !14
  %3449 = trunc i8 %3448 to i1
  br i1 %3449, label %3453, label %3450

3450:                                             ; preds = %3445
  %3451 = load i8, ptr %312, align 1, !tbaa !11, !range !13, !noundef !14
  %3452 = trunc i8 %3451 to i1
  br i1 %3452, label %3453, label %3454

3453:                                             ; preds = %3450, %3445
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3454

3454:                                             ; preds = %3453, %3450
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3455

3455:                                             ; preds = %3454, %3441
  br label %3456

3456:                                             ; preds = %3455, %3440
  call void @llvm.lifetime.end.p0(i64 1, ptr %312) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #8
  br label %3457

3457:                                             ; preds = %3456
  br label %3458

3458:                                             ; preds = %3457
  call void @llvm.lifetime.start.p0(i64 8, ptr %314) #8
  %3459 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %291, double noundef 2.000000e+00, double noundef 1.600000e+01, i32 noundef 5)
  store i64 %3459, ptr %314, align 4
  %3460 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %292, ptr noundef nonnull align 4 dereferenceable(8) %314) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #8
  br label %3461

3461:                                             ; preds = %3458
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #8
  %3462 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 0
  %3463 = load i32, ptr %3462, align 4, !tbaa !33
  store i32 %3463, ptr %315, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #8
  store i32 2147483647, ptr %316, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %317) #8
  store i8 0, ptr %317, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %318) #8
  store i8 0, ptr %318, align 1, !tbaa !11
  %3464 = load i8, ptr %317, align 1, !tbaa !11, !range !13, !noundef !14
  %3465 = trunc i8 %3464 to i1
  br i1 %3465, label %3466, label %3492

3466:                                             ; preds = %3461
  %3467 = load i8, ptr %318, align 1, !tbaa !11, !range !13, !noundef !14
  %3468 = trunc i8 %3467 to i1
  br i1 %3468, label %3469, label %3492

3469:                                             ; preds = %3466
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #8
  %3470 = load i32, ptr %315, align 4, !tbaa !5
  %3471 = load i32, ptr %316, align 4, !tbaa !5
  %3472 = icmp sgt i32 %3470, %3471
  br i1 %3472, label %3473, label %3477

3473:                                             ; preds = %3469
  %3474 = load i32, ptr %315, align 4, !tbaa !5
  %3475 = load i32, ptr %316, align 4, !tbaa !5
  %3476 = sub nsw i32 %3474, %3475
  br label %3481

3477:                                             ; preds = %3469
  %3478 = load i32, ptr %316, align 4, !tbaa !5
  %3479 = load i32, ptr %315, align 4, !tbaa !5
  %3480 = sub nsw i32 %3478, %3479
  br label %3481

3481:                                             ; preds = %3477, %3473
  %3482 = phi i32 [ %3476, %3473 ], [ %3480, %3477 ]
  store i32 %3482, ptr %319, align 4, !tbaa !5
  %3483 = load i32, ptr %319, align 4, !tbaa !5
  %3484 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3485 = icmp sgt i32 %3483, %3484
  br i1 %3485, label %3486, label %3491

3486:                                             ; preds = %3481
  %3487 = load i32, ptr %315, align 4, !tbaa !5
  %3488 = sitofp i32 %3487 to double
  %3489 = load i32, ptr %316, align 4, !tbaa !5
  %3490 = sitofp i32 %3489 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.103, ptr noundef @.str.3, i32 noundef 401, double noundef %3488, double noundef %3490)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3491

3491:                                             ; preds = %3486, %3481
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #8
  br label %3507

3492:                                             ; preds = %3466, %3461
  %3493 = load i32, ptr %315, align 4, !tbaa !5
  %3494 = load i32, ptr %316, align 4, !tbaa !5
  %3495 = icmp ne i32 %3493, %3494
  br i1 %3495, label %3496, label %3506

3496:                                             ; preds = %3492
  %3497 = load i32, ptr %315, align 4, !tbaa !5
  %3498 = load i32, ptr %316, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.104, ptr noundef @.str.3, i32 noundef 401, i32 noundef %3497, i32 noundef %3498)
  %3499 = load i8, ptr %317, align 1, !tbaa !11, !range !13, !noundef !14
  %3500 = trunc i8 %3499 to i1
  br i1 %3500, label %3504, label %3501

3501:                                             ; preds = %3496
  %3502 = load i8, ptr %318, align 1, !tbaa !11, !range !13, !noundef !14
  %3503 = trunc i8 %3502 to i1
  br i1 %3503, label %3504, label %3505

3504:                                             ; preds = %3501, %3496
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3505

3505:                                             ; preds = %3504, %3501
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3506

3506:                                             ; preds = %3505, %3492
  br label %3507

3507:                                             ; preds = %3506, %3491
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %317) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #8
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

3510:                                             ; preds = %3509
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #8
  %3511 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 1
  %3512 = load i32, ptr %3511, align 4, !tbaa !35
  store i32 %3512, ptr %320, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #8
  store i32 31, ptr %321, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %322) #8
  store i8 0, ptr %322, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %323) #8
  store i8 0, ptr %323, align 1, !tbaa !11
  %3513 = load i8, ptr %322, align 1, !tbaa !11, !range !13, !noundef !14
  %3514 = trunc i8 %3513 to i1
  br i1 %3514, label %3515, label %3541

3515:                                             ; preds = %3510
  %3516 = load i8, ptr %323, align 1, !tbaa !11, !range !13, !noundef !14
  %3517 = trunc i8 %3516 to i1
  br i1 %3517, label %3518, label %3541

3518:                                             ; preds = %3515
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #8
  %3519 = load i32, ptr %320, align 4, !tbaa !5
  %3520 = load i32, ptr %321, align 4, !tbaa !5
  %3521 = icmp sgt i32 %3519, %3520
  br i1 %3521, label %3522, label %3526

3522:                                             ; preds = %3518
  %3523 = load i32, ptr %320, align 4, !tbaa !5
  %3524 = load i32, ptr %321, align 4, !tbaa !5
  %3525 = sub nsw i32 %3523, %3524
  br label %3530

3526:                                             ; preds = %3518
  %3527 = load i32, ptr %321, align 4, !tbaa !5
  %3528 = load i32, ptr %320, align 4, !tbaa !5
  %3529 = sub nsw i32 %3527, %3528
  br label %3530

3530:                                             ; preds = %3526, %3522
  %3531 = phi i32 [ %3525, %3522 ], [ %3529, %3526 ]
  store i32 %3531, ptr %324, align 4, !tbaa !5
  %3532 = load i32, ptr %324, align 4, !tbaa !5
  %3533 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3534 = icmp sgt i32 %3532, %3533
  br i1 %3534, label %3535, label %3540

3535:                                             ; preds = %3530
  %3536 = load i32, ptr %320, align 4, !tbaa !5
  %3537 = sitofp i32 %3536 to double
  %3538 = load i32, ptr %321, align 4, !tbaa !5
  %3539 = sitofp i32 %3538 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 402, double noundef %3537, double noundef %3539)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3540

3540:                                             ; preds = %3535, %3530
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #8
  br label %3556

3541:                                             ; preds = %3515, %3510
  %3542 = load i32, ptr %320, align 4, !tbaa !5
  %3543 = load i32, ptr %321, align 4, !tbaa !5
  %3544 = icmp ne i32 %3542, %3543
  br i1 %3544, label %3545, label %3555

3545:                                             ; preds = %3541
  %3546 = load i32, ptr %320, align 4, !tbaa !5
  %3547 = load i32, ptr %321, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 402, i32 noundef %3546, i32 noundef %3547)
  %3548 = load i8, ptr %322, align 1, !tbaa !11, !range !13, !noundef !14
  %3549 = trunc i8 %3548 to i1
  br i1 %3549, label %3553, label %3550

3550:                                             ; preds = %3545
  %3551 = load i8, ptr %323, align 1, !tbaa !11, !range !13, !noundef !14
  %3552 = trunc i8 %3551 to i1
  br i1 %3552, label %3553, label %3554

3553:                                             ; preds = %3550, %3545
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3554

3554:                                             ; preds = %3553, %3550
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3555

3555:                                             ; preds = %3554, %3541
  br label %3556

3556:                                             ; preds = %3555, %3540
  call void @llvm.lifetime.end.p0(i64 1, ptr %323) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %322) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #8
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

3558:                                             ; preds = %3557
  call void @llvm.lifetime.start.p0(i64 8, ptr %325) #8
  %3559 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %291, double noundef 2.000000e+00, double noundef 8.000000e+00, i32 noundef 5)
  store i64 %3559, ptr %325, align 4
  %3560 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %292, ptr noundef nonnull align 4 dereferenceable(8) %325) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #8
  br label %3561

3561:                                             ; preds = %3558
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #8
  %3562 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 0
  %3563 = load i32, ptr %3562, align 4, !tbaa !33
  store i32 %3563, ptr %326, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %327) #8
  store i32 1073741824, ptr %327, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %328) #8
  store i8 0, ptr %328, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %329) #8
  store i8 0, ptr %329, align 1, !tbaa !11
  %3564 = load i8, ptr %328, align 1, !tbaa !11, !range !13, !noundef !14
  %3565 = trunc i8 %3564 to i1
  br i1 %3565, label %3566, label %3592

3566:                                             ; preds = %3561
  %3567 = load i8, ptr %329, align 1, !tbaa !11, !range !13, !noundef !14
  %3568 = trunc i8 %3567 to i1
  br i1 %3568, label %3569, label %3592

3569:                                             ; preds = %3566
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #8
  %3570 = load i32, ptr %326, align 4, !tbaa !5
  %3571 = load i32, ptr %327, align 4, !tbaa !5
  %3572 = icmp sgt i32 %3570, %3571
  br i1 %3572, label %3573, label %3577

3573:                                             ; preds = %3569
  %3574 = load i32, ptr %326, align 4, !tbaa !5
  %3575 = load i32, ptr %327, align 4, !tbaa !5
  %3576 = sub nsw i32 %3574, %3575
  br label %3581

3577:                                             ; preds = %3569
  %3578 = load i32, ptr %327, align 4, !tbaa !5
  %3579 = load i32, ptr %326, align 4, !tbaa !5
  %3580 = sub nsw i32 %3578, %3579
  br label %3581

3581:                                             ; preds = %3577, %3573
  %3582 = phi i32 [ %3576, %3573 ], [ %3580, %3577 ]
  store i32 %3582, ptr %330, align 4, !tbaa !5
  %3583 = load i32, ptr %330, align 4, !tbaa !5
  %3584 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3585 = icmp sgt i32 %3583, %3584
  br i1 %3585, label %3586, label %3591

3586:                                             ; preds = %3581
  %3587 = load i32, ptr %326, align 4, !tbaa !5
  %3588 = sitofp i32 %3587 to double
  %3589 = load i32, ptr %327, align 4, !tbaa !5
  %3590 = sitofp i32 %3589 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 405, double noundef %3588, double noundef %3590)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3591

3591:                                             ; preds = %3586, %3581
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #8
  br label %3607

3592:                                             ; preds = %3566, %3561
  %3593 = load i32, ptr %326, align 4, !tbaa !5
  %3594 = load i32, ptr %327, align 4, !tbaa !5
  %3595 = icmp ne i32 %3593, %3594
  br i1 %3595, label %3596, label %3606

3596:                                             ; preds = %3592
  %3597 = load i32, ptr %326, align 4, !tbaa !5
  %3598 = load i32, ptr %327, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 405, i32 noundef %3597, i32 noundef %3598)
  %3599 = load i8, ptr %328, align 1, !tbaa !11, !range !13, !noundef !14
  %3600 = trunc i8 %3599 to i1
  br i1 %3600, label %3604, label %3601

3601:                                             ; preds = %3596
  %3602 = load i8, ptr %329, align 1, !tbaa !11, !range !13, !noundef !14
  %3603 = trunc i8 %3602 to i1
  br i1 %3603, label %3604, label %3605

3604:                                             ; preds = %3601, %3596
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3605

3605:                                             ; preds = %3604, %3601
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3606

3606:                                             ; preds = %3605, %3592
  br label %3607

3607:                                             ; preds = %3606, %3591
  call void @llvm.lifetime.end.p0(i64 1, ptr %329) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %328) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %327) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #8
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

3610:                                             ; preds = %3609
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #8
  %3611 = getelementptr inbounds %"struct.std::pair", ptr %292, i32 0, i32 1
  %3612 = load i32, ptr %3611, align 4, !tbaa !35
  store i32 %3612, ptr %331, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #8
  store i32 31, ptr %332, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %333) #8
  store i8 0, ptr %333, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %334) #8
  store i8 0, ptr %334, align 1, !tbaa !11
  %3613 = load i8, ptr %333, align 1, !tbaa !11, !range !13, !noundef !14
  %3614 = trunc i8 %3613 to i1
  br i1 %3614, label %3615, label %3641

3615:                                             ; preds = %3610
  %3616 = load i8, ptr %334, align 1, !tbaa !11, !range !13, !noundef !14
  %3617 = trunc i8 %3616 to i1
  br i1 %3617, label %3618, label %3641

3618:                                             ; preds = %3615
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #8
  %3619 = load i32, ptr %331, align 4, !tbaa !5
  %3620 = load i32, ptr %332, align 4, !tbaa !5
  %3621 = icmp sgt i32 %3619, %3620
  br i1 %3621, label %3622, label %3626

3622:                                             ; preds = %3618
  %3623 = load i32, ptr %331, align 4, !tbaa !5
  %3624 = load i32, ptr %332, align 4, !tbaa !5
  %3625 = sub nsw i32 %3623, %3624
  br label %3630

3626:                                             ; preds = %3618
  %3627 = load i32, ptr %332, align 4, !tbaa !5
  %3628 = load i32, ptr %331, align 4, !tbaa !5
  %3629 = sub nsw i32 %3627, %3628
  br label %3630

3630:                                             ; preds = %3626, %3622
  %3631 = phi i32 [ %3625, %3622 ], [ %3629, %3626 ]
  store i32 %3631, ptr %335, align 4, !tbaa !5
  %3632 = load i32, ptr %335, align 4, !tbaa !5
  %3633 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3634 = icmp sgt i32 %3632, %3633
  br i1 %3634, label %3635, label %3640

3635:                                             ; preds = %3630
  %3636 = load i32, ptr %331, align 4, !tbaa !5
  %3637 = sitofp i32 %3636 to double
  %3638 = load i32, ptr %332, align 4, !tbaa !5
  %3639 = sitofp i32 %3638 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 406, double noundef %3637, double noundef %3639)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3640

3640:                                             ; preds = %3635, %3630
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #8
  br label %3656

3641:                                             ; preds = %3615, %3610
  %3642 = load i32, ptr %331, align 4, !tbaa !5
  %3643 = load i32, ptr %332, align 4, !tbaa !5
  %3644 = icmp ne i32 %3642, %3643
  br i1 %3644, label %3645, label %3655

3645:                                             ; preds = %3641
  %3646 = load i32, ptr %331, align 4, !tbaa !5
  %3647 = load i32, ptr %332, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 406, i32 noundef %3646, i32 noundef %3647)
  %3648 = load i8, ptr %333, align 1, !tbaa !11, !range !13, !noundef !14
  %3649 = trunc i8 %3648 to i1
  br i1 %3649, label %3653, label %3650

3650:                                             ; preds = %3645
  %3651 = load i8, ptr %334, align 1, !tbaa !11, !range !13, !noundef !14
  %3652 = trunc i8 %3651 to i1
  br i1 %3652, label %3653, label %3654

3653:                                             ; preds = %3650, %3645
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3654

3654:                                             ; preds = %3653, %3650
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3655

3655:                                             ; preds = %3654, %3641
  br label %3656

3656:                                             ; preds = %3655, %3640
  call void @llvm.lifetime.end.p0(i64 1, ptr %334) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %333) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #8
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %291) #8
  br label %3659

3659:                                             ; preds = %3658
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %3660 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %3661 = trunc i8 %3660 to i1
  %3662 = zext i1 %3661 to i64
  %3663 = select i1 %3661, i32 0, i32 1
  %3664 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %3665 = add nsw i32 %3664, %3663
  store i32 %3665, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %3666 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %3667 = trunc i8 %3666 to i1
  %3668 = zext i1 %3667 to i64
  %3669 = select i1 %3667, i32 1, i32 0
  %3670 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %3671 = add nsw i32 %3670, %3669
  store i32 %3671, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %3255, !llvm.loop !36

3672:                                             ; preds = %3255
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.109)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3673

3673:                                             ; preds = %3866, %3672
  %3674 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %3675 = trunc i8 %3674 to i1
  %3676 = xor i1 %3675, true
  br i1 %3676, label %3677, label %3879

3677:                                             ; preds = %3673
  br label %3678

3678:                                             ; preds = %3677
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #8
  %3679 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 4, i32 noundef 27, i32 noundef 31)
  store i32 %3679, ptr %336, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #8
  store i32 15, ptr %337, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %338) #8
  store i8 0, ptr %338, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %339) #8
  store i8 0, ptr %339, align 1, !tbaa !11
  %3680 = load i8, ptr %338, align 1, !tbaa !11, !range !13, !noundef !14
  %3681 = trunc i8 %3680 to i1
  br i1 %3681, label %3682, label %3708

3682:                                             ; preds = %3678
  %3683 = load i8, ptr %339, align 1, !tbaa !11, !range !13, !noundef !14
  %3684 = trunc i8 %3683 to i1
  br i1 %3684, label %3685, label %3708

3685:                                             ; preds = %3682
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #8
  %3686 = load i32, ptr %336, align 4, !tbaa !5
  %3687 = load i32, ptr %337, align 4, !tbaa !5
  %3688 = icmp sgt i32 %3686, %3687
  br i1 %3688, label %3689, label %3693

3689:                                             ; preds = %3685
  %3690 = load i32, ptr %336, align 4, !tbaa !5
  %3691 = load i32, ptr %337, align 4, !tbaa !5
  %3692 = sub nsw i32 %3690, %3691
  br label %3697

3693:                                             ; preds = %3685
  %3694 = load i32, ptr %337, align 4, !tbaa !5
  %3695 = load i32, ptr %336, align 4, !tbaa !5
  %3696 = sub nsw i32 %3694, %3695
  br label %3697

3697:                                             ; preds = %3693, %3689
  %3698 = phi i32 [ %3692, %3689 ], [ %3696, %3693 ]
  store i32 %3698, ptr %340, align 4, !tbaa !5
  %3699 = load i32, ptr %340, align 4, !tbaa !5
  %3700 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3701 = icmp sgt i32 %3699, %3700
  br i1 %3701, label %3702, label %3707

3702:                                             ; preds = %3697
  %3703 = load i32, ptr %336, align 4, !tbaa !5
  %3704 = sitofp i32 %3703 to double
  %3705 = load i32, ptr %337, align 4, !tbaa !5
  %3706 = sitofp i32 %3705 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.110, ptr noundef @.str.3, i32 noundef 410, double noundef %3704, double noundef %3706)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3707

3707:                                             ; preds = %3702, %3697
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #8
  br label %3723

3708:                                             ; preds = %3682, %3678
  %3709 = load i32, ptr %336, align 4, !tbaa !5
  %3710 = load i32, ptr %337, align 4, !tbaa !5
  %3711 = icmp ne i32 %3709, %3710
  br i1 %3711, label %3712, label %3722

3712:                                             ; preds = %3708
  %3713 = load i32, ptr %336, align 4, !tbaa !5
  %3714 = load i32, ptr %337, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.111, ptr noundef @.str.3, i32 noundef 410, i32 noundef %3713, i32 noundef %3714)
  %3715 = load i8, ptr %338, align 1, !tbaa !11, !range !13, !noundef !14
  %3716 = trunc i8 %3715 to i1
  br i1 %3716, label %3720, label %3717

3717:                                             ; preds = %3712
  %3718 = load i8, ptr %339, align 1, !tbaa !11, !range !13, !noundef !14
  %3719 = trunc i8 %3718 to i1
  br i1 %3719, label %3720, label %3721

3720:                                             ; preds = %3717, %3712
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3721

3721:                                             ; preds = %3720, %3717
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3722

3722:                                             ; preds = %3721, %3708
  br label %3723

3723:                                             ; preds = %3722, %3707
  call void @llvm.lifetime.end.p0(i64 1, ptr %339) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %338) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #8
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

3725:                                             ; preds = %3724
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #8
  %3726 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 3, i32 noundef 27, i32 noundef 31)
  store i32 %3726, ptr %341, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %342) #8
  store i32 14, ptr %342, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %343) #8
  store i8 0, ptr %343, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %344) #8
  store i8 0, ptr %344, align 1, !tbaa !11
  %3727 = load i8, ptr %343, align 1, !tbaa !11, !range !13, !noundef !14
  %3728 = trunc i8 %3727 to i1
  br i1 %3728, label %3729, label %3755

3729:                                             ; preds = %3725
  %3730 = load i8, ptr %344, align 1, !tbaa !11, !range !13, !noundef !14
  %3731 = trunc i8 %3730 to i1
  br i1 %3731, label %3732, label %3755

3732:                                             ; preds = %3729
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #8
  %3733 = load i32, ptr %341, align 4, !tbaa !5
  %3734 = load i32, ptr %342, align 4, !tbaa !5
  %3735 = icmp sgt i32 %3733, %3734
  br i1 %3735, label %3736, label %3740

3736:                                             ; preds = %3732
  %3737 = load i32, ptr %341, align 4, !tbaa !5
  %3738 = load i32, ptr %342, align 4, !tbaa !5
  %3739 = sub nsw i32 %3737, %3738
  br label %3744

3740:                                             ; preds = %3732
  %3741 = load i32, ptr %342, align 4, !tbaa !5
  %3742 = load i32, ptr %341, align 4, !tbaa !5
  %3743 = sub nsw i32 %3741, %3742
  br label %3744

3744:                                             ; preds = %3740, %3736
  %3745 = phi i32 [ %3739, %3736 ], [ %3743, %3740 ]
  store i32 %3745, ptr %345, align 4, !tbaa !5
  %3746 = load i32, ptr %345, align 4, !tbaa !5
  %3747 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3748 = icmp sgt i32 %3746, %3747
  br i1 %3748, label %3749, label %3754

3749:                                             ; preds = %3744
  %3750 = load i32, ptr %341, align 4, !tbaa !5
  %3751 = sitofp i32 %3750 to double
  %3752 = load i32, ptr %342, align 4, !tbaa !5
  %3753 = sitofp i32 %3752 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.112, ptr noundef @.str.3, i32 noundef 411, double noundef %3751, double noundef %3753)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3754

3754:                                             ; preds = %3749, %3744
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #8
  br label %3770

3755:                                             ; preds = %3729, %3725
  %3756 = load i32, ptr %341, align 4, !tbaa !5
  %3757 = load i32, ptr %342, align 4, !tbaa !5
  %3758 = icmp ne i32 %3756, %3757
  br i1 %3758, label %3759, label %3769

3759:                                             ; preds = %3755
  %3760 = load i32, ptr %341, align 4, !tbaa !5
  %3761 = load i32, ptr %342, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.113, ptr noundef @.str.3, i32 noundef 411, i32 noundef %3760, i32 noundef %3761)
  %3762 = load i8, ptr %343, align 1, !tbaa !11, !range !13, !noundef !14
  %3763 = trunc i8 %3762 to i1
  br i1 %3763, label %3767, label %3764

3764:                                             ; preds = %3759
  %3765 = load i8, ptr %344, align 1, !tbaa !11, !range !13, !noundef !14
  %3766 = trunc i8 %3765 to i1
  br i1 %3766, label %3767, label %3768

3767:                                             ; preds = %3764, %3759
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3768

3768:                                             ; preds = %3767, %3764
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3769

3769:                                             ; preds = %3768, %3755
  br label %3770

3770:                                             ; preds = %3769, %3754
  call void @llvm.lifetime.end.p0(i64 1, ptr %344) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %342) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #8
  br label %3771

3771:                                             ; preds = %3770
  br label %3772

3772:                                             ; preds = %3771
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #8
  %3773 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 3, i32 noundef 28, i32 noundef 31)
  store i32 %3773, ptr %346, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #8
  store i32 7, ptr %347, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %348) #8
  store i8 0, ptr %348, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %349) #8
  store i8 0, ptr %349, align 1, !tbaa !11
  %3774 = load i8, ptr %348, align 1, !tbaa !11, !range !13, !noundef !14
  %3775 = trunc i8 %3774 to i1
  br i1 %3775, label %3776, label %3802

3776:                                             ; preds = %3772
  %3777 = load i8, ptr %349, align 1, !tbaa !11, !range !13, !noundef !14
  %3778 = trunc i8 %3777 to i1
  br i1 %3778, label %3779, label %3802

3779:                                             ; preds = %3776
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #8
  %3780 = load i32, ptr %346, align 4, !tbaa !5
  %3781 = load i32, ptr %347, align 4, !tbaa !5
  %3782 = icmp sgt i32 %3780, %3781
  br i1 %3782, label %3783, label %3787

3783:                                             ; preds = %3779
  %3784 = load i32, ptr %346, align 4, !tbaa !5
  %3785 = load i32, ptr %347, align 4, !tbaa !5
  %3786 = sub nsw i32 %3784, %3785
  br label %3791

3787:                                             ; preds = %3779
  %3788 = load i32, ptr %347, align 4, !tbaa !5
  %3789 = load i32, ptr %346, align 4, !tbaa !5
  %3790 = sub nsw i32 %3788, %3789
  br label %3791

3791:                                             ; preds = %3787, %3783
  %3792 = phi i32 [ %3786, %3783 ], [ %3790, %3787 ]
  store i32 %3792, ptr %350, align 4, !tbaa !5
  %3793 = load i32, ptr %350, align 4, !tbaa !5
  %3794 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3795 = icmp sgt i32 %3793, %3794
  br i1 %3795, label %3796, label %3801

3796:                                             ; preds = %3791
  %3797 = load i32, ptr %346, align 4, !tbaa !5
  %3798 = sitofp i32 %3797 to double
  %3799 = load i32, ptr %347, align 4, !tbaa !5
  %3800 = sitofp i32 %3799 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 412, double noundef %3798, double noundef %3800)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3801

3801:                                             ; preds = %3796, %3791
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #8
  br label %3817

3802:                                             ; preds = %3776, %3772
  %3803 = load i32, ptr %346, align 4, !tbaa !5
  %3804 = load i32, ptr %347, align 4, !tbaa !5
  %3805 = icmp ne i32 %3803, %3804
  br i1 %3805, label %3806, label %3816

3806:                                             ; preds = %3802
  %3807 = load i32, ptr %346, align 4, !tbaa !5
  %3808 = load i32, ptr %347, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.115, ptr noundef @.str.3, i32 noundef 412, i32 noundef %3807, i32 noundef %3808)
  %3809 = load i8, ptr %348, align 1, !tbaa !11, !range !13, !noundef !14
  %3810 = trunc i8 %3809 to i1
  br i1 %3810, label %3814, label %3811

3811:                                             ; preds = %3806
  %3812 = load i8, ptr %349, align 1, !tbaa !11, !range !13, !noundef !14
  %3813 = trunc i8 %3812 to i1
  br i1 %3813, label %3814, label %3815

3814:                                             ; preds = %3811, %3806
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3815

3815:                                             ; preds = %3814, %3811
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3816

3816:                                             ; preds = %3815, %3802
  br label %3817

3817:                                             ; preds = %3816, %3801
  call void @llvm.lifetime.end.p0(i64 1, ptr %349) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %348) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #8
  br label %3818

3818:                                             ; preds = %3817
  br label %3819

3819:                                             ; preds = %3818
  call void @llvm.lifetime.start.p0(i64 4, ptr %351) #8
  %3820 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 4, i32 noundef 2, i32 noundef 31)
  store i32 %3820, ptr %351, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %352) #8
  store i32 503316480, ptr %352, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %353) #8
  store i8 0, ptr %353, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %354) #8
  store i8 0, ptr %354, align 1, !tbaa !11
  %3821 = load i8, ptr %353, align 1, !tbaa !11, !range !13, !noundef !14
  %3822 = trunc i8 %3821 to i1
  br i1 %3822, label %3823, label %3849

3823:                                             ; preds = %3819
  %3824 = load i8, ptr %354, align 1, !tbaa !11, !range !13, !noundef !14
  %3825 = trunc i8 %3824 to i1
  br i1 %3825, label %3826, label %3849

3826:                                             ; preds = %3823
  call void @llvm.lifetime.start.p0(i64 4, ptr %355) #8
  %3827 = load i32, ptr %351, align 4, !tbaa !5
  %3828 = load i32, ptr %352, align 4, !tbaa !5
  %3829 = icmp sgt i32 %3827, %3828
  br i1 %3829, label %3830, label %3834

3830:                                             ; preds = %3826
  %3831 = load i32, ptr %351, align 4, !tbaa !5
  %3832 = load i32, ptr %352, align 4, !tbaa !5
  %3833 = sub nsw i32 %3831, %3832
  br label %3838

3834:                                             ; preds = %3826
  %3835 = load i32, ptr %352, align 4, !tbaa !5
  %3836 = load i32, ptr %351, align 4, !tbaa !5
  %3837 = sub nsw i32 %3835, %3836
  br label %3838

3838:                                             ; preds = %3834, %3830
  %3839 = phi i32 [ %3833, %3830 ], [ %3837, %3834 ]
  store i32 %3839, ptr %355, align 4, !tbaa !5
  %3840 = load i32, ptr %355, align 4, !tbaa !5
  %3841 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3842 = icmp sgt i32 %3840, %3841
  br i1 %3842, label %3843, label %3848

3843:                                             ; preds = %3838
  %3844 = load i32, ptr %351, align 4, !tbaa !5
  %3845 = sitofp i32 %3844 to double
  %3846 = load i32, ptr %352, align 4, !tbaa !5
  %3847 = sitofp i32 %3846 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 413, double noundef %3845, double noundef %3847)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3848

3848:                                             ; preds = %3843, %3838
  call void @llvm.lifetime.end.p0(i64 4, ptr %355) #8
  br label %3864

3849:                                             ; preds = %3823, %3819
  %3850 = load i32, ptr %351, align 4, !tbaa !5
  %3851 = load i32, ptr %352, align 4, !tbaa !5
  %3852 = icmp ne i32 %3850, %3851
  br i1 %3852, label %3853, label %3863

3853:                                             ; preds = %3849
  %3854 = load i32, ptr %351, align 4, !tbaa !5
  %3855 = load i32, ptr %352, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 413, i32 noundef %3854, i32 noundef %3855)
  %3856 = load i8, ptr %353, align 1, !tbaa !11, !range !13, !noundef !14
  %3857 = trunc i8 %3856 to i1
  br i1 %3857, label %3861, label %3858

3858:                                             ; preds = %3853
  %3859 = load i8, ptr %354, align 1, !tbaa !11, !range !13, !noundef !14
  %3860 = trunc i8 %3859 to i1
  br i1 %3860, label %3861, label %3862

3861:                                             ; preds = %3858, %3853
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3862

3862:                                             ; preds = %3861, %3858
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3863

3863:                                             ; preds = %3862, %3849
  br label %3864

3864:                                             ; preds = %3863, %3848
  call void @llvm.lifetime.end.p0(i64 1, ptr %354) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %353) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %352) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %351) #8
  br label %3865

3865:                                             ; preds = %3864
  br label %3866

3866:                                             ; preds = %3865
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %3867 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %3868 = trunc i8 %3867 to i1
  %3869 = zext i1 %3868 to i64
  %3870 = select i1 %3868, i32 0, i32 1
  %3871 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %3872 = add nsw i32 %3871, %3870
  store i32 %3872, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %3873 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %3874 = trunc i8 %3873 to i1
  %3875 = zext i1 %3874 to i64
  %3876 = select i1 %3874, i32 1, i32 0
  %3877 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %3878 = add nsw i32 %3877, %3876
  store i32 %3878, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %3673, !llvm.loop !37

3879:                                             ; preds = %3673
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.118)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3880

3880:                                             ; preds = %4007, %3879
  %3881 = load i8, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11, !range !13, !noundef !14
  %3882 = trunc i8 %3881 to i1
  %3883 = xor i1 %3882, true
  br i1 %3883, label %3884, label %4020

3884:                                             ; preds = %3880
  call void @llvm.lifetime.start.p0(i64 104, ptr %356) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %356, ptr align 16 @__const.main.weights, i64 104, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %357) #8
  store i32 13, ptr %357, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 52, ptr %358) #8
  call void @llvm.lifetime.start.p0(i64 52, ptr %359) #8
  %3885 = getelementptr inbounds [13 x double], ptr %356, i64 0, i64 0
  %3886 = getelementptr inbounds [13 x i32], ptr %358, i64 0, i64 0
  %3887 = getelementptr inbounds [13 x i32], ptr %359, i64 0, i64 0
  call void @_ZN6tflite23QuantizeMultiplierArrayEPKdmPiS2_(ptr noundef %3885, i64 noundef 13, ptr noundef %3886, ptr noundef %3887)
  call void @llvm.lifetime.start.p0(i64 52, ptr %360) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %360, ptr align 16 @__const.main.expected_effective_scale_significand, i64 52, i1 false)
  call void @llvm.lifetime.start.p0(i64 52, ptr %361) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %361, ptr align 16 @__const.main.expected_effective_scale_shift, i64 52, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #8
  store i32 0, ptr %362, align 4, !tbaa !5
  br label %3888

3888:                                             ; preds = %4003, %3884
  %3889 = load i32, ptr %362, align 4, !tbaa !5
  %3890 = icmp slt i32 %3889, 13
  br i1 %3890, label %3892, label %3891

3891:                                             ; preds = %3888
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #8
  br label %4006

3892:                                             ; preds = %3888
  br label %3893

3893:                                             ; preds = %3892
  call void @llvm.lifetime.start.p0(i64 4, ptr %363) #8
  %3894 = load i32, ptr %362, align 4, !tbaa !5
  %3895 = sext i32 %3894 to i64
  %3896 = getelementptr inbounds [13 x i32], ptr %358, i64 0, i64 %3895
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  store i32 %3897, ptr %363, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #8
  %3898 = load i32, ptr %362, align 4, !tbaa !5
  %3899 = sext i32 %3898 to i64
  %3900 = getelementptr inbounds [13 x i32], ptr %360, i64 0, i64 %3899
  %3901 = load i32, ptr %3900, align 4, !tbaa !5
  store i32 %3901, ptr %364, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %365) #8
  store i8 0, ptr %365, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %366) #8
  store i8 0, ptr %366, align 1, !tbaa !11
  %3902 = load i8, ptr %365, align 1, !tbaa !11, !range !13, !noundef !14
  %3903 = trunc i8 %3902 to i1
  br i1 %3903, label %3904, label %3930

3904:                                             ; preds = %3893
  %3905 = load i8, ptr %366, align 1, !tbaa !11, !range !13, !noundef !14
  %3906 = trunc i8 %3905 to i1
  br i1 %3906, label %3907, label %3930

3907:                                             ; preds = %3904
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #8
  %3908 = load i32, ptr %363, align 4, !tbaa !5
  %3909 = load i32, ptr %364, align 4, !tbaa !5
  %3910 = icmp sgt i32 %3908, %3909
  br i1 %3910, label %3911, label %3915

3911:                                             ; preds = %3907
  %3912 = load i32, ptr %363, align 4, !tbaa !5
  %3913 = load i32, ptr %364, align 4, !tbaa !5
  %3914 = sub nsw i32 %3912, %3913
  br label %3919

3915:                                             ; preds = %3907
  %3916 = load i32, ptr %364, align 4, !tbaa !5
  %3917 = load i32, ptr %363, align 4, !tbaa !5
  %3918 = sub nsw i32 %3916, %3917
  br label %3919

3919:                                             ; preds = %3915, %3911
  %3920 = phi i32 [ %3914, %3911 ], [ %3918, %3915 ]
  store i32 %3920, ptr %367, align 4, !tbaa !5
  %3921 = load i32, ptr %367, align 4, !tbaa !5
  %3922 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3923 = icmp sgt i32 %3921, %3922
  br i1 %3923, label %3924, label %3929

3924:                                             ; preds = %3919
  %3925 = load i32, ptr %363, align 4, !tbaa !5
  %3926 = sitofp i32 %3925 to double
  %3927 = load i32, ptr %364, align 4, !tbaa !5
  %3928 = sitofp i32 %3927 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.119, ptr noundef @.str.3, i32 noundef 459, double noundef %3926, double noundef %3928)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3929

3929:                                             ; preds = %3924, %3919
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #8
  br label %3945

3930:                                             ; preds = %3904, %3893
  %3931 = load i32, ptr %363, align 4, !tbaa !5
  %3932 = load i32, ptr %364, align 4, !tbaa !5
  %3933 = icmp ne i32 %3931, %3932
  br i1 %3933, label %3934, label %3944

3934:                                             ; preds = %3930
  %3935 = load i32, ptr %363, align 4, !tbaa !5
  %3936 = load i32, ptr %364, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.120, ptr noundef @.str.3, i32 noundef 459, i32 noundef %3935, i32 noundef %3936)
  %3937 = load i8, ptr %365, align 1, !tbaa !11, !range !13, !noundef !14
  %3938 = trunc i8 %3937 to i1
  br i1 %3938, label %3942, label %3939

3939:                                             ; preds = %3934
  %3940 = load i8, ptr %366, align 1, !tbaa !11, !range !13, !noundef !14
  %3941 = trunc i8 %3940 to i1
  br i1 %3941, label %3942, label %3943

3942:                                             ; preds = %3939, %3934
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3943

3943:                                             ; preds = %3942, %3939
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3944

3944:                                             ; preds = %3943, %3930
  br label %3945

3945:                                             ; preds = %3944, %3929
  call void @llvm.lifetime.end.p0(i64 1, ptr %366) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %365) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %363) #8
  br label %3946

3946:                                             ; preds = %3945
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  call void @llvm.lifetime.start.p0(i64 4, ptr %368) #8
  %3949 = load i32, ptr %362, align 4, !tbaa !5
  %3950 = sext i32 %3949 to i64
  %3951 = getelementptr inbounds [13 x i32], ptr %359, i64 0, i64 %3950
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  store i32 %3952, ptr %368, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %369) #8
  %3953 = load i32, ptr %362, align 4, !tbaa !5
  %3954 = sext i32 %3953 to i64
  %3955 = getelementptr inbounds [13 x i32], ptr %361, i64 0, i64 %3954
  %3956 = load i32, ptr %3955, align 4, !tbaa !5
  store i32 %3956, ptr %369, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %370) #8
  store i8 0, ptr %370, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %371) #8
  store i8 0, ptr %371, align 1, !tbaa !11
  %3957 = load i8, ptr %370, align 1, !tbaa !11, !range !13, !noundef !14
  %3958 = trunc i8 %3957 to i1
  br i1 %3958, label %3959, label %3985

3959:                                             ; preds = %3948
  %3960 = load i8, ptr %371, align 1, !tbaa !11, !range !13, !noundef !14
  %3961 = trunc i8 %3960 to i1
  br i1 %3961, label %3962, label %3985

3962:                                             ; preds = %3959
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #8
  %3963 = load i32, ptr %368, align 4, !tbaa !5
  %3964 = load i32, ptr %369, align 4, !tbaa !5
  %3965 = icmp sgt i32 %3963, %3964
  br i1 %3965, label %3966, label %3970

3966:                                             ; preds = %3962
  %3967 = load i32, ptr %368, align 4, !tbaa !5
  %3968 = load i32, ptr %369, align 4, !tbaa !5
  %3969 = sub nsw i32 %3967, %3968
  br label %3974

3970:                                             ; preds = %3962
  %3971 = load i32, ptr %369, align 4, !tbaa !5
  %3972 = load i32, ptr %368, align 4, !tbaa !5
  %3973 = sub nsw i32 %3971, %3972
  br label %3974

3974:                                             ; preds = %3970, %3966
  %3975 = phi i32 [ %3969, %3966 ], [ %3973, %3970 ]
  store i32 %3975, ptr %372, align 4, !tbaa !5
  %3976 = load i32, ptr %372, align 4, !tbaa !5
  %3977 = call noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #8
  %3978 = icmp sgt i32 %3976, %3977
  br i1 %3978, label %3979, label %3984

3979:                                             ; preds = %3974
  %3980 = load i32, ptr %368, align 4, !tbaa !5
  %3981 = sitofp i32 %3980 to double
  %3982 = load i32, ptr %369, align 4, !tbaa !5
  %3983 = sitofp i32 %3982 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.121, ptr noundef @.str.3, i32 noundef 461, double noundef %3981, double noundef %3983)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3984

3984:                                             ; preds = %3979, %3974
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #8
  br label %4000

3985:                                             ; preds = %3959, %3948
  %3986 = load i32, ptr %368, align 4, !tbaa !5
  %3987 = load i32, ptr %369, align 4, !tbaa !5
  %3988 = icmp ne i32 %3986, %3987
  br i1 %3988, label %3989, label %3999

3989:                                             ; preds = %3985
  %3990 = load i32, ptr %368, align 4, !tbaa !5
  %3991 = load i32, ptr %369, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.122, ptr noundef @.str.3, i32 noundef 461, i32 noundef %3990, i32 noundef %3991)
  %3992 = load i8, ptr %370, align 1, !tbaa !11, !range !13, !noundef !14
  %3993 = trunc i8 %3992 to i1
  br i1 %3993, label %3997, label %3994

3994:                                             ; preds = %3989
  %3995 = load i8, ptr %371, align 1, !tbaa !11, !range !13, !noundef !14
  %3996 = trunc i8 %3995 to i1
  br i1 %3996, label %3997, label %3998

3997:                                             ; preds = %3994, %3989
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.7)
  br label %3998

3998:                                             ; preds = %3997, %3994
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11
  br label %3999

3999:                                             ; preds = %3998, %3985
  br label %4000

4000:                                             ; preds = %3999, %3984
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %370) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %369) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %368) #8
  br label %4001

4001:                                             ; preds = %4000
  br label %4002

4002:                                             ; preds = %4001
  br label %4003

4003:                                             ; preds = %4002
  %4004 = load i32, ptr %362, align 4, !tbaa !5
  %4005 = add nsw i32 %4004, 1
  store i32 %4005, ptr %362, align 4, !tbaa !5
  br label %3888, !llvm.loop !38

4006:                                             ; preds = %3891
  call void @llvm.lifetime.end.p0(i64 52, ptr %361) #8
  call void @llvm.lifetime.end.p0(i64 52, ptr %360) #8
  call void @llvm.lifetime.end.p0(i64 52, ptr %359) #8
  call void @llvm.lifetime.end.p0(i64 52, ptr %358) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %357) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %356) #8
  br label %4007

4007:                                             ; preds = %4006
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !11
  %4008 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %4009 = trunc i8 %4008 to i1
  %4010 = zext i1 %4009 to i64
  %4011 = select i1 %4009, i32 0, i32 1
  %4012 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %4013 = add nsw i32 %4012, %4011
  store i32 %4013, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %4014 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !11, !range !13, !noundef !14
  %4015 = trunc i8 %4014 to i1
  %4016 = zext i1 %4015 to i64
  %4017 = select i1 %4015, i32 1, i32 0
  %4018 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %4019 = add nsw i32 %4018, %4017
  store i32 %4019, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  br label %3880, !llvm.loop !39

4020:                                             ; preds = %3880
  %4021 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %4022 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %4023 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %4024 = add nsw i32 %4022, %4023
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.123, i32 noundef %4021, i32 noundef %4024)
  %4025 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %4026 = icmp eq i32 %4025, 0
  br i1 %4026, label %4027, label %4028

4027:                                             ; preds = %4020
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.124)
  store i32 0, ptr %3, align 4
  br label %4029

4028:                                             ; preds = %4020
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef @.str.125)
  store i32 1, ptr %3, align 4
  br label %4029

4029:                                             ; preds = %4028, %4027
  %4030 = load i32, ptr %3, align 4
  ret i32 %4030
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6tflite14InitializeTestEv() #1

declare void @_Z11MicroPrintfPKcz(ptr noundef, ...) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfaEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdaEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfsEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdsEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfiEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdiEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIflEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdlEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfhEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdhEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIftEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdtEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfjEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdjEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfmEEvv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdmEEvv() #3

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

; Function Attrs: mustprogress uwtable
declare dso_local { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef, double noundef) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNSt14numeric_limitsIiE7epsilonEv() #5 align 2

declare noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt14numeric_limitsIlE7epsilonEv() #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt14numeric_limitsIlE3maxEv() #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt14numeric_limitsIlE3minEv() #5 align 2

; Function Attrs: nounwind
declare double @frexp(double noundef, ptr noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE7epsilonEv() #5 align 2

declare noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef, i32 noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnand(double noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt8isfinited(double noundef) #5

declare noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef, double noundef) #2

declare noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef, double noundef) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1), double noundef, double noundef, i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #5 align 2

declare noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare void @_ZN6tflite23QuantizeMultiplierArrayEPKdmPiS2_(ptr noundef, i64 noundef, ptr noundef, ptr noundef) #2

attributes #0 = { mustprogress norecurse 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 #1 = { inlinehint mustprogress 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress 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 #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { mustprogress 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 #6 = { 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 #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!18, !19, i64 8}
!18 = !{!"_ZTSN6tflite18QuantizationParamsE", !6, i64 0, !19, i64 8}
!19 = !{!"double", !7, i64 0}
!20 = !{!19, !19, i64 0}
!21 = !{!18, !6, i64 0}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = !{!27, !27, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = !{!34, !6, i64 0}
!34 = !{!"_ZTSSt4pairIiiE", !6, i64 0, !6, i64 4}
!35 = !{!34, !6, i64 4}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}


; 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"

%class.anon = type { i8 }
%"struct.std::pair" = type { i32, i32 }

@_ZN10micro_test12tests_passedE = external dso_local local_unnamed_addr global i32, align 4
@_ZN10micro_test12tests_failedE = external dso_local local_unnamed_addr global i32, align 4
@_ZN10micro_test16is_test_completeE = external dso_local local_unnamed_addr global i8, align 1
@_ZN10micro_test13did_test_failE = external dso_local local_unnamed_addr global i8, align 1
@.str = external hidden unnamed_addr constant [38 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.weights = external hidden unnamed_addr constant [13 x double], align 16
@__const.main.expected_effective_scale_significand = external hidden unnamed_addr constant [13 x i32], align 16
@__const.main.expected_effective_scale_shift = external hidden unnamed_addr constant [13 x i32], align 16
@.str.120 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
.lr.ph1612:
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %class.anon, align 1
  %7 = alloca %"struct.std::pair", align 8
  %8 = alloca %"struct.std::pair", align 8
  %9 = alloca %"struct.std::pair", align 8
  %10 = alloca %"struct.std::pair", align 8
  %11 = alloca [13 x double], align 16
  %12 = alloca [13 x i32], align 16
  %13 = alloca [13 x i32], align 16
  store i32 0, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  store i32 0, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  tail call void @_ZN6tflite14InitializeTestEv()
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfaEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdaEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfsEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdsEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfiEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdiEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIflEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdlEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfhEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdhEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIftEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdtEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfjEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdjEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfmEEvv()
  tail call void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdmEEvv()
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %14 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11, !noundef !12
  %15 = xor i8 %14, 1
  %not.1610 = zext nneg i8 %15 to i32
  %16 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %17 = add nsw i32 %16, %not.1610
  store i32 %17, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %18 = zext nneg i8 %14 to i32
  %19 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %20 = add nsw i32 %19, %18
  store i32 %20, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.1)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %21 = tail call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef -1.000000e+01, double noundef 3.000000e+01)
  %22 = extractvalue { i32, double } %21, 0
  %23 = extractvalue { i32, double } %21, 1
  %24 = fcmp ogt double %23, 1.568630e-01
  %25 = fadd double %23, -1.568630e-01
  %26 = fsub double 1.568630e-01, %23
  %27 = select i1 %24, double %25, double %26
  %28 = fcmp une double %23, 1.568630e-01
  %29 = fcmp ogt double %27, 1.000000e-05
  %or.cond = and i1 %28, %29
  br i1 %or.cond, label %30, label %31

30:                                               ; preds = %.lr.ph1612
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.2, double noundef %23, double noundef 1.568630e-01, ptr noundef nonnull @.str.3, i32 noundef 207)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %31

31:                                               ; preds = %.lr.ph1612, %30
  %.not1608 = icmp eq i32 %22, 64
  br i1 %.not1608, label %._crit_edge1649, label %32

._crit_edge1649:                                  ; preds = %31
  %.pre = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1615

32:                                               ; preds = %31
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, i32 noundef 208, i32 noundef %22, i32 noundef 64)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1615

.lr.ph1615:                                       ; preds = %._crit_edge1649, %32
  %33 = phi i8 [ %.pre, %._crit_edge1649 ], [ 1, %32 ]
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %34 = xor i8 %33, 1
  %not.1609 = zext nneg i8 %34 to i32
  %35 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %36 = add nsw i32 %35, %not.1609
  store i32 %36, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %37 = zext nneg i8 %33 to i32
  %38 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %39 = add nsw i32 %38, %37
  store i32 %39, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.8)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %40 = tail call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef 0.000000e+00, double noundef 3.000000e+01)
  %41 = extractvalue { i32, double } %40, 0
  %42 = extractvalue { i32, double } %40, 1
  %43 = fcmp ogt double %42, 1.176470e-01
  %44 = fadd double %42, -1.176470e-01
  %45 = fsub double 1.176470e-01, %42
  %46 = select i1 %43, double %44, double %45
  %47 = fcmp une double %42, 1.176470e-01
  %48 = fcmp ogt double %46, 1.000000e-05
  %or.cond3 = and i1 %47, %48
  br i1 %or.cond3, label %49, label %50

49:                                               ; preds = %.lr.ph1615
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.9, double noundef %42, double noundef 1.176470e-01, ptr noundef nonnull @.str.3, i32 noundef 215)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %50

50:                                               ; preds = %.lr.ph1615, %49
  %.not1606 = icmp eq i32 %41, 0
  br i1 %.not1606, label %._crit_edge1650, label %51

._crit_edge1650:                                  ; preds = %50
  %.pre1651 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1618

51:                                               ; preds = %50
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 216, i32 noundef %41, i32 noundef 0)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1618

.lr.ph1618:                                       ; preds = %._crit_edge1650, %51
  %52 = phi i8 [ %.pre1651, %._crit_edge1650 ], [ 1, %51 ]
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %53 = xor i8 %52, 1
  %not.1607 = zext nneg i8 %53 to i32
  %54 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %55 = add nsw i32 %54, %not.1607
  store i32 %55, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %56 = zext nneg i8 %52 to i32
  %57 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %58 = add nsw i32 %57, %56
  store i32 %58, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.12)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %59 = tail call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef 0.000000e+00, double noundef 0.000000e+00)
  %60 = extractvalue { i32, double } %59, 0
  %61 = extractvalue { i32, double } %59, 1
  %62 = tail call double @llvm.fabs.f64(double %61)
  %63 = fcmp une double %61, 0.000000e+00
  %64 = fcmp ogt double %62, 1.000000e-05
  %or.cond5 = and i1 %63, %64
  br i1 %or.cond5, label %65, label %66

65:                                               ; preds = %.lr.ph1618
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.13, double noundef %61, double noundef 0.000000e+00, ptr noundef nonnull @.str.3, i32 noundef 223)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %66

66:                                               ; preds = %.lr.ph1618, %65
  %.not1604 = icmp eq i32 %60, 0
  br i1 %.not1604, label %._crit_edge1652, label %67

._crit_edge1652:                                  ; preds = %66
  %.pre1653 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1621

67:                                               ; preds = %66
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 224, i32 noundef %60, i32 noundef 0)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1621

.lr.ph1621:                                       ; preds = %._crit_edge1652, %67
  %68 = phi i8 [ %.pre1653, %._crit_edge1652 ], [ 1, %67 ]
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %69 = xor i8 %68, 1
  %not.1605 = zext nneg i8 %69 to i32
  %70 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %71 = add nsw i32 %70, %not.1605
  store i32 %71, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %72 = zext nneg i8 %68 to i32
  %73 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %74 = add nsw i32 %73, %72
  store i32 %74, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.14)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %75 = tail call { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef -1.000000e+01, double noundef 0.000000e+00)
  %76 = extractvalue { i32, double } %75, 0
  %77 = extractvalue { i32, double } %75, 1
  %78 = fcmp ogt double %77, 3.921600e-02
  %79 = fadd double %77, -3.921600e-02
  %80 = fsub double 3.921600e-02, %77
  %81 = select i1 %78, double %79, double %80
  %82 = fcmp une double %77, 3.921600e-02
  %83 = fcmp ogt double %81, 1.000000e-05
  %or.cond7 = and i1 %82, %83
  br i1 %or.cond7, label %84, label %85

84:                                               ; preds = %.lr.ph1621
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.15, double noundef %77, double noundef 3.921600e-02, ptr noundef nonnull @.str.3, i32 noundef 231)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %85

85:                                               ; preds = %.lr.ph1621, %84
  %.not1602 = icmp eq i32 %76, 255
  br i1 %.not1602, label %._crit_edge1654, label %86

._crit_edge1654:                                  ; preds = %85
  %.pre1655 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1624

86:                                               ; preds = %85
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.3, i32 noundef 232, i32 noundef %76, i32 noundef 255)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1624

.lr.ph1624:                                       ; preds = %._crit_edge1654, %86
  %87 = phi i8 [ %.pre1655, %._crit_edge1654 ], [ 1, %86 ]
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %88 = xor i8 %87, 1
  %not.1603 = zext nneg i8 %88 to i32
  %89 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %90 = add nsw i32 %89, %not.1603
  store i32 %90, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %91 = zext nneg i8 %87 to i32
  %92 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %93 = add nsw i32 %92, %91
  store i32 %93, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  tail call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.18)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #9
  %94 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0.000000e+00, ptr noundef nonnull %2)
  %.not1592 = icmp eq i64 %94, 0
  br i1 %.not1592, label %97, label %95

95:                                               ; preds = %.lr.ph1624
  %96 = trunc i64 %94 to i32
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 238, i32 noundef 0, i32 noundef %96)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %97

97:                                               ; preds = %.lr.ph1624, %95
  %98 = load i32, ptr %2, align 4, !tbaa !5
  %.not1593 = icmp eq i32 %98, 0
  br i1 %.not1593, label %100, label %99

99:                                               ; preds = %97
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 239, i32 noundef 0, i32 noundef %98)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %100

100:                                              ; preds = %97, %99
  %101 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.000000e+00, ptr noundef nonnull %2)
  %102 = icmp slt i64 %101, 1073741824
  %103 = sub nsw i64 1073741824, %101
  %104 = add nsw i64 %101, -1073741824
  %105 = select i1 %102, i64 %103, i64 %104
  %106 = icmp sgt i64 %105, 1
  br i1 %106, label %107, label %109

107:                                              ; preds = %100
  %108 = sitofp i64 %101 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.23, double noundef 0x41D0000000000000, double noundef %108, ptr noundef nonnull @.str.3, i32 noundef 242)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %109

109:                                              ; preds = %107, %100
  %110 = load i32, ptr %2, align 4, !tbaa !5
  %.not1594 = icmp eq i32 %110, 1
  br i1 %.not1594, label %112, label %111

111:                                              ; preds = %109
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.3, i32 noundef 243, i32 noundef 1, i32 noundef %110)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %112

112:                                              ; preds = %109, %111
  %113 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 2.500000e-01, ptr noundef nonnull %2)
  %114 = icmp slt i64 %113, 1073741824
  %115 = sub nsw i64 1073741824, %113
  %116 = add nsw i64 %113, -1073741824
  %117 = select i1 %114, i64 %115, i64 %116
  %118 = icmp sgt i64 %117, 1
  br i1 %118, label %119, label %121

119:                                              ; preds = %112
  %120 = sitofp i64 %113 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.23, double noundef 0x41D0000000000000, double noundef %120, ptr noundef nonnull @.str.3, i32 noundef 246)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %121

121:                                              ; preds = %119, %112
  %122 = load i32, ptr %2, align 4, !tbaa !5
  %.not1595 = icmp eq i32 %122, -1
  br i1 %.not1595, label %124, label %123

123:                                              ; preds = %121
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.3, i32 noundef 247, i32 noundef -1, i32 noundef %122)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %124

124:                                              ; preds = %121, %123
  %125 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef -1.000000e+00, ptr noundef nonnull %2)
  %126 = icmp slt i64 %125, -1073741824
  %127 = sub nuw nsw i64 -1073741824, %125
  %128 = add i64 %125, 1073741824
  %129 = select i1 %126, i64 %127, i64 %128
  %130 = icmp sgt i64 %129, 1
  br i1 %130, label %131, label %133

131:                                              ; preds = %124
  %132 = sitofp i64 %125 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.28, double noundef 0xC1D0000000000000, double noundef %132, ptr noundef nonnull @.str.3, i32 noundef 250)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %133

133:                                              ; preds = %131, %124
  %134 = load i32, ptr %2, align 4, !tbaa !5
  %.not1596 = icmp eq i32 %134, 1
  br i1 %.not1596, label %136, label %135

135:                                              ; preds = %133
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.3, i32 noundef 251, i32 noundef 1, i32 noundef %134)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %136

136:                                              ; preds = %133, %135
  %137 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.234500e+02, ptr noundef nonnull %2)
  %138 = icmp slt i64 %137, 2071147315
  %139 = sub nsw i64 2071147315, %137
  %140 = add nsw i64 %137, -2071147315
  %141 = select i1 %138, i64 %139, i64 %140
  %142 = icmp sgt i64 %141, 1
  br i1 %142, label %143, label %145

143:                                              ; preds = %136
  %144 = sitofp i64 %137 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.29, double noundef 0x41DEDCCCCCC00000, double noundef %144, ptr noundef nonnull @.str.3, i32 noundef 254)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %145

145:                                              ; preds = %143, %136
  %146 = load i32, ptr %2, align 4, !tbaa !5
  %.not1597 = icmp eq i32 %146, 7
  br i1 %.not1597, label %148, label %147

147:                                              ; preds = %145
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.3, i32 noundef 255, i32 noundef 7, i32 noundef %146)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %148

148:                                              ; preds = %145, %147
  %149 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF8000000000000, ptr noundef nonnull %2)
  %150 = call i64 @llvm.abs.i64(i64 %149, i1 true)
  %151 = icmp ugt i64 %150, 1
  br i1 %151, label %152, label %154

152:                                              ; preds = %148
  %153 = sitofp i64 %149 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.32, double noundef 0.000000e+00, double noundef %153, ptr noundef nonnull @.str.3, i32 noundef 258)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %154

154:                                              ; preds = %152, %148
  %155 = load i32, ptr %2, align 4, !tbaa !5
  %.not1598 = icmp eq i32 %155, 2147483647
  br i1 %.not1598, label %157, label %156

156:                                              ; preds = %154
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.3, i32 noundef 259, i32 noundef 2147483647, i32 noundef %155)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %157

157:                                              ; preds = %154, %156
  %158 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF0000000000000, ptr noundef nonnull %2)
  %159 = call noundef i64 @_ZNSt14numeric_limitsIlE3maxEv() #9
  %160 = sub nsw i64 %159, %158
  %161 = call i64 @llvm.abs.i64(i64 %160, i1 true)
  %162 = icmp ugt i64 %161, 1
  br i1 %162, label %163, label %166

163:                                              ; preds = %157
  %164 = sitofp i64 %159 to double
  %165 = sitofp i64 %158 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.35, double noundef %164, double noundef %165, ptr noundef nonnull @.str.3, i32 noundef 262)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %166

166:                                              ; preds = %163, %157
  %167 = load i32, ptr %2, align 4, !tbaa !5
  %.not1599 = icmp eq i32 %167, 2147483647
  br i1 %.not1599, label %169, label %168

168:                                              ; preds = %166
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.3, i32 noundef 263, i32 noundef 2147483647, i32 noundef %167)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %169

169:                                              ; preds = %166, %168
  %170 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0xFFF0000000000000, ptr noundef nonnull %2)
  %171 = call noundef i64 @_ZNSt14numeric_limitsIlE3minEv() #9
  %172 = sub nsw i64 %171, %170
  %173 = call i64 @llvm.abs.i64(i64 %172, i1 true)
  %174 = icmp ugt i64 %173, 1
  br i1 %174, label %175, label %178

175:                                              ; preds = %169
  %176 = sitofp i64 %171 to double
  %177 = sitofp i64 %170 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.36, double noundef %176, double noundef %177, ptr noundef nonnull @.str.3, i32 noundef 266)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %178

178:                                              ; preds = %175, %169
  %179 = load i32, ptr %2, align 4, !tbaa !5
  %.not1600 = icmp eq i32 %179, 2147483647
  br i1 %.not1600, label %._crit_edge1656, label %180

._crit_edge1656:                                  ; preds = %178
  %.pre1657 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1627

180:                                              ; preds = %178
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.3, i32 noundef 267, i32 noundef 2147483647, i32 noundef %179)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1627

.lr.ph1627:                                       ; preds = %._crit_edge1656, %180
  %181 = phi i8 [ %.pre1657, %._crit_edge1656 ], [ 1, %180 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #9
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %182 = xor i8 %181, 1
  %not.1601 = zext nneg i8 %182 to i32
  %183 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %184 = add nsw i32 %183, %not.1601
  store i32 %184, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %185 = zext nneg i8 %181 to i32
  %186 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %187 = add nsw i32 %186, %185
  store i32 %187, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.37)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #9
  %188 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0.000000e+00, ptr noundef nonnull %3)
  %189 = trunc i64 %188 to i32
  %.not1580 = icmp eq i32 %189, 0
  br i1 %.not1580, label %191, label %190

190:                                              ; preds = %.lr.ph1627
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.3, i32 noundef 273, i32 noundef %189, i32 noundef 0)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %191

191:                                              ; preds = %.lr.ph1627, %190
  %192 = load i32, ptr %3, align 4, !tbaa !5
  %.not1581 = icmp eq i32 %192, 0
  br i1 %.not1581, label %194, label %193

193:                                              ; preds = %191
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.3, i32 noundef 274, i32 noundef %192, i32 noundef 0)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %194

194:                                              ; preds = %191, %193
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #9
  %195 = call double @frexp(double noundef 0.000000e+00, ptr noundef nonnull %4) #9
  %196 = fcmp une double %195, 0.000000e+00
  br i1 %196, label %197, label %199

197:                                              ; preds = %194
  %198 = fptosi double %195 to i32
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.3, i32 noundef 278, i32 noundef %198, i32 noundef 0)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.7)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %199

199:                                              ; preds = %194, %197
  %200 = load i32, ptr %4, align 4, !tbaa !5
  %.not1582 = icmp eq i32 %200, 0
  br i1 %.not1582, label %202, label %201

201:                                              ; preds = %199
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.3, i32 noundef 279, i32 noundef %200, i32 noundef 0)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %202

202:                                              ; preds = %199, %201
  %203 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.000000e+00, ptr noundef nonnull %3)
  %204 = trunc i64 %203 to i32
  %205 = icmp sgt i32 %204, 1073741824
  %206 = add nsw i32 %204, -1073741824
  %207 = sub nsw i32 1073741824, %204
  %208 = select i1 %205, i32 %206, i32 %207
  %209 = icmp sgt i32 %208, 1
  br i1 %209, label %210, label %212

210:                                              ; preds = %202
  %211 = sitofp i32 %204 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.46, double noundef %211, double noundef 0x41D0000000000000, ptr noundef nonnull @.str.3, i32 noundef 282)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %212

212:                                              ; preds = %210, %202
  %213 = load i32, ptr %3, align 4, !tbaa !5
  %.not1583 = icmp eq i32 %213, 1
  br i1 %.not1583, label %215, label %214

214:                                              ; preds = %212
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.3, i32 noundef 283, i32 noundef %213, i32 noundef 1)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %215

215:                                              ; preds = %212, %214
  %216 = call double @frexp(double noundef 1.000000e+00, ptr noundef nonnull %4) #9
  %217 = fcmp ogt double %216, 5.000000e-01
  %218 = fadd double %216, -5.000000e-01
  %219 = fsub double 5.000000e-01, %216
  %220 = select i1 %217, double %218, double %219
  %221 = fcmp une double %216, 5.000000e-01
  %222 = fcmp ogt double %220, 1.000000e-05
  %or.cond25 = and i1 %221, %222
  br i1 %or.cond25, label %223, label %224

223:                                              ; preds = %215
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.49, double noundef %216, double noundef 5.000000e-01, ptr noundef nonnull @.str.3, i32 noundef 285)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %224

224:                                              ; preds = %223, %215
  %225 = load i32, ptr %4, align 4, !tbaa !5
  %.not1584 = icmp eq i32 %225, 1
  br i1 %.not1584, label %227, label %226

226:                                              ; preds = %224
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 286, i32 noundef %225, i32 noundef 1)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %227

227:                                              ; preds = %224, %226
  %228 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 2.500000e-01, ptr noundef nonnull %3)
  %229 = trunc i64 %228 to i32
  %230 = icmp sgt i32 %229, 1073741824
  %231 = add nsw i32 %229, -1073741824
  %232 = sub nsw i32 1073741824, %229
  %233 = select i1 %230, i32 %231, i32 %232
  %234 = icmp sgt i32 %233, 1
  br i1 %234, label %235, label %237

235:                                              ; preds = %227
  %236 = sitofp i32 %229 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.46, double noundef %236, double noundef 0x41D0000000000000, ptr noundef nonnull @.str.3, i32 noundef 289)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %237

237:                                              ; preds = %235, %227
  %238 = load i32, ptr %3, align 4, !tbaa !5
  %.not1585 = icmp eq i32 %238, -1
  br i1 %.not1585, label %240, label %239

239:                                              ; preds = %237
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.3, i32 noundef 290, i32 noundef %238, i32 noundef -1)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %240

240:                                              ; preds = %237, %239
  %241 = call double @frexp(double noundef 2.500000e-01, ptr noundef nonnull %4) #9
  %242 = fcmp ogt double %241, 5.000000e-01
  %243 = fadd double %241, -5.000000e-01
  %244 = fsub double 5.000000e-01, %241
  %245 = select i1 %242, double %243, double %244
  %246 = fcmp une double %241, 5.000000e-01
  %247 = fcmp ogt double %245, 1.000000e-05
  %or.cond29 = and i1 %246, %247
  br i1 %or.cond29, label %248, label %249

248:                                              ; preds = %240
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.49, double noundef %241, double noundef 5.000000e-01, ptr noundef nonnull @.str.3, i32 noundef 292)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %249

249:                                              ; preds = %248, %240
  %250 = load i32, ptr %4, align 4, !tbaa !5
  %.not1586 = icmp eq i32 %250, -1
  br i1 %.not1586, label %252, label %251

251:                                              ; preds = %249
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.3, i32 noundef 293, i32 noundef %250, i32 noundef -1)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %252

252:                                              ; preds = %249, %251
  %253 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef -1.000000e+00, ptr noundef nonnull %3)
  %254 = trunc i64 %253 to i32
  %255 = icmp sgt i32 %254, -1073741824
  %256 = add i32 %254, 1073741824
  %257 = sub nuw nsw i32 -1073741824, %254
  %258 = select i1 %255, i32 %256, i32 %257
  %259 = icmp sgt i32 %258, 1
  br i1 %259, label %260, label %262

260:                                              ; preds = %252
  %261 = sitofp i32 %254 to double
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.56, double noundef %261, double noundef 0xC1D0000000000000, ptr noundef nonnull @.str.3, i32 noundef 296)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %262

262:                                              ; preds = %260, %252
  %263 = load i32, ptr %3, align 4, !tbaa !5
  %.not1587 = icmp eq i32 %263, 1
  br i1 %.not1587, label %265, label %264

264:                                              ; preds = %262
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.3, i32 noundef 297, i32 noundef %263, i32 noundef 1)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %265

265:                                              ; preds = %262, %264
  %266 = call double @frexp(double noundef -1.000000e+00, ptr noundef nonnull %4) #9
  %267 = fcmp ogt double %266, -5.000000e-01
  %268 = fadd double %266, 5.000000e-01
  %269 = fsub double -5.000000e-01, %266
  %270 = select i1 %267, double %268, double %269
  %271 = fcmp une double %266, -5.000000e-01
  %272 = fcmp ogt double %270, 1.000000e-05
  %or.cond33 = and i1 %271, %272
  br i1 %or.cond33, label %273, label %274

273:                                              ; preds = %265
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.57, double noundef %266, double noundef -5.000000e-01, ptr noundef nonnull @.str.3, i32 noundef 299)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %274

274:                                              ; preds = %273, %265
  %275 = load i32, ptr %4, align 4, !tbaa !5
  %.not1588 = icmp eq i32 %275, 1
  br i1 %.not1588, label %277, label %276

276:                                              ; preds = %274
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 300, i32 noundef %275, i32 noundef 1)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %277

277:                                              ; preds = %274, %276
  %278 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.234500e+02, ptr noundef nonnull %3)
  %279 = trunc i64 %278 to i32
  %280 = sitofp i32 %279 to double
  %281 = icmp sgt i32 %279, 2071147046
  %282 = fadd double %280, 0xC1DEDCCC89B0EE4A
  %283 = fsub double 0x41DEDCCC89B0EE4A, %280
  %284 = select i1 %281, double %282, double %283
  %285 = fcmp ogt double %284, 1.000000e+03
  br i1 %285, label %286, label %287

286:                                              ; preds = %277
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.58, double noundef %280, double noundef 0x41DEDCCC89B0EE4A, ptr noundef nonnull @.str.3, i32 noundef 303)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %287

287:                                              ; preds = %286, %277
  %288 = load i32, ptr %3, align 4, !tbaa !5
  %.not1589 = icmp eq i32 %288, 7
  br i1 %.not1589, label %290, label %289

289:                                              ; preds = %287
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.3, i32 noundef 304, i32 noundef %288, i32 noundef 7)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %290

290:                                              ; preds = %287, %289
  %291 = call double @frexp(double noundef 1.234500e+02, ptr noundef nonnull %4) #9
  %292 = fcmp ogt double %291, 9.644530e-01
  %293 = fadd double %291, -9.644530e-01
  %294 = fsub double 9.644530e-01, %291
  %295 = select i1 %292, double %293, double %294
  %296 = fcmp une double %291, 9.644530e-01
  %297 = fcmp ogt double %295, 1.000000e-05
  %or.cond37 = and i1 %296, %297
  br i1 %or.cond37, label %298, label %299

298:                                              ; preds = %290
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.61, double noundef %291, double noundef 9.644530e-01, ptr noundef nonnull @.str.3, i32 noundef 306)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %299

299:                                              ; preds = %298, %290
  %300 = load i32, ptr %4, align 4, !tbaa !5
  %.not1590 = icmp eq i32 %300, 7
  br i1 %.not1590, label %._crit_edge1658, label %301

._crit_edge1658:                                  ; preds = %299
  %.pre1659 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1630

301:                                              ; preds = %299
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.3, i32 noundef 307, i32 noundef %300, i32 noundef 7)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1630

.lr.ph1630:                                       ; preds = %._crit_edge1658, %301
  %302 = phi i8 [ %.pre1659, %._crit_edge1658 ], [ 1, %301 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #9
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %303 = xor i8 %302, 1
  %not.1591 = zext nneg i8 %303 to i32
  %304 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %305 = add nsw i32 %304, %not.1591
  store i32 %305, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %306 = zext nneg i8 %302 to i32
  %307 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %308 = add nsw i32 %307, %306
  store i32 %308, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.64)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %309 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef 0, i32 noundef 0)
  %310 = fcmp une double %309, 0.000000e+00
  br i1 %310, label %311, label %313

311:                                              ; preds = %.lr.ph1630
  %312 = fptosi double %309 to i32
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 312, i32 noundef 0, i32 noundef %312)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.6)
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.7)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %313

313:                                              ; preds = %.lr.ph1630, %311
  %314 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef 1073741824, i32 noundef 1)
  %315 = fcmp olt double %314, 1.000000e+00
  %316 = fsub double 1.000000e+00, %314
  %317 = fadd double %314, -1.000000e+00
  %318 = select i1 %315, double %316, double %317
  %319 = fcmp une double %314, 1.000000e+00
  %320 = fcmp ogt double %318, 1.000000e-05
  %or.cond39 = and i1 %319, %320
  br i1 %or.cond39, label %321, label %322

321:                                              ; preds = %313
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.65, double noundef 1.000000e+00, double noundef %314, ptr noundef nonnull @.str.3, i32 noundef 315)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %322

322:                                              ; preds = %321, %313
  %323 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef 1073741824, i32 noundef 2)
  %324 = fcmp olt double %323, 2.000000e+00
  %325 = fsub double 2.000000e+00, %323
  %326 = fadd double %323, -2.000000e+00
  %327 = select i1 %324, double %325, double %326
  %328 = fcmp une double %323, 2.000000e+00
  %329 = fcmp ogt double %327, 1.000000e-05
  %or.cond41 = and i1 %328, %329
  br i1 %or.cond41, label %330, label %331

330:                                              ; preds = %322
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.66, double noundef 2.000000e+00, double noundef %323, ptr noundef nonnull @.str.3, i32 noundef 318)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %331

331:                                              ; preds = %330, %322
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #9
  %332 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 3.000000e+00, ptr noundef nonnull %5)
  %333 = load i32, ptr %5, align 4, !tbaa !5
  %334 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %332, i32 noundef %333)
  %335 = fcmp olt double %334, 3.000000e+00
  %336 = fsub double 3.000000e+00, %334
  %337 = fadd double %334, -3.000000e+00
  %338 = select i1 %335, double %336, double %337
  %339 = fcmp une double %334, 3.000000e+00
  %340 = fcmp ogt double %338, 1.000000e-05
  %or.cond43 = and i1 %339, %340
  br i1 %or.cond43, label %341, label %342

341:                                              ; preds = %331
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.67, double noundef 3.000000e+00, double noundef %334, ptr noundef nonnull @.str.3, i32 noundef 323)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %342

342:                                              ; preds = %341, %331
  %343 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 1.234500e+02, ptr noundef nonnull %5)
  %344 = load i32, ptr %5, align 4, !tbaa !5
  %345 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %343, i32 noundef %344)
  %346 = fcmp olt double %345, 1.234500e+02
  %347 = fsub double 1.234500e+02, %345
  %348 = fadd double %345, -1.234500e+02
  %349 = select i1 %346, double %347, double %348
  %350 = fcmp une double %345, 1.234500e+02
  %351 = fcmp ogt double %349, 1.000000e-05
  %or.cond45 = and i1 %350, %351
  br i1 %or.cond45, label %352, label %353

352:                                              ; preds = %342
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.68, double noundef 1.234500e+02, double noundef %345, ptr noundef nonnull @.str.3, i32 noundef 327)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %353

353:                                              ; preds = %352, %342
  %354 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0xC0373B7985271BCE, ptr noundef nonnull %5)
  %355 = load i32, ptr %5, align 4, !tbaa !5
  %356 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %354, i32 noundef %355)
  %357 = fcmp olt double %356, 0xC0373B7985271BCE
  %358 = fsub double 0xC0373B7985271BCE, %356
  %359 = fadd double %356, 0x40373B7985271BCE
  %360 = select i1 %357, double %358, double %359
  %361 = fcmp une double %356, 0xC0373B7985271BCE
  %362 = fcmp ogt double %360, 1.000000e-05
  %or.cond47 = and i1 %361, %362
  br i1 %or.cond47, label %363, label %364

363:                                              ; preds = %353
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.69, double noundef 0xC0373B7985271BCE, double noundef %356, ptr noundef nonnull @.str.3, i32 noundef 331)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %364

364:                                              ; preds = %363, %353
  %365 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF8000000000000, ptr noundef nonnull %5)
  %366 = load i32, ptr %5, align 4, !tbaa !5
  %367 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %365, i32 noundef %366)
  %368 = call noundef zeroext i1 @_ZSt5isnand(double noundef %367)
  br i1 %368, label %370, label %369

369:                                              ; preds = %364
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.3, i32 noundef 335)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %370

370:                                              ; preds = %369, %364
  %371 = call noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef 0x7FF0000000000000, ptr noundef nonnull %5)
  %372 = load i32, ptr %5, align 4, !tbaa !5
  %373 = call noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef %371, i32 noundef %372)
  %374 = call noundef zeroext i1 @_ZSt8isfinited(double noundef %373)
  br i1 %374, label %375, label %._crit_edge1660

._crit_edge1660:                                  ; preds = %370
  %.pre1661 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1633

375:                                              ; preds = %370
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.3, i32 noundef 339)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1633

.lr.ph1633:                                       ; preds = %._crit_edge1660, %375
  %376 = phi i8 [ %.pre1661, %._crit_edge1660 ], [ 1, %375 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #9
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %377 = xor i8 %376, 1
  %not.1579 = zext nneg i8 %377 to i32
  %378 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %379 = add nsw i32 %378, %not.1579
  store i32 %379, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %380 = zext nneg i8 %376 to i32
  %381 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %382 = add nsw i32 %381, %380
  store i32 %382, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.72)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %383 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef 1.000000e+00)
  %384 = fcmp olt double %383, 1.000000e+00
  %385 = fsub double 1.000000e+00, %383
  %386 = fadd double %383, -1.000000e+00
  %387 = select i1 %384, double %385, double %386
  %388 = fcmp une double %383, 1.000000e+00
  %389 = fcmp ogt double %387, 1.000000e-05
  %or.cond49 = and i1 %388, %389
  br i1 %or.cond49, label %390, label %391

390:                                              ; preds = %.lr.ph1633
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.73, double noundef 1.000000e+00, double noundef %383, ptr noundef nonnull @.str.3, i32 noundef 343)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %391

391:                                              ; preds = %390, %.lr.ph1633
  %392 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef 2.000000e+00)
  %393 = fcmp olt double %392, 2.000000e+00
  %394 = fsub double 2.000000e+00, %392
  %395 = fadd double %392, -2.000000e+00
  %396 = select i1 %393, double %394, double %395
  %397 = fcmp une double %392, 2.000000e+00
  %398 = fcmp ogt double %396, 1.000000e-05
  %or.cond51 = and i1 %397, %398
  br i1 %or.cond51, label %399, label %400

399:                                              ; preds = %391
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.74, double noundef 2.000000e+00, double noundef %392, ptr noundef nonnull @.str.3, i32 noundef 344)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %400

400:                                              ; preds = %399, %391
  %401 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 2.000000e+00, double noundef 1.000000e+00)
  %402 = fcmp olt double %401, 2.000000e+00
  %403 = fsub double 2.000000e+00, %401
  %404 = fadd double %401, -2.000000e+00
  %405 = select i1 %402, double %403, double %404
  %406 = fcmp une double %401, 2.000000e+00
  %407 = fcmp ogt double %405, 1.000000e-05
  %or.cond53 = and i1 %406, %407
  br i1 %or.cond53, label %408, label %409

408:                                              ; preds = %400
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.75, double noundef 2.000000e+00, double noundef %401, ptr noundef nonnull @.str.3, i32 noundef 345)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %409

409:                                              ; preds = %408, %400
  %410 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 2.000000e+00, double noundef 2.000000e+00)
  %411 = fcmp olt double %410, 4.000000e+00
  %412 = fsub double 4.000000e+00, %410
  %413 = fadd double %410, -4.000000e+00
  %414 = select i1 %411, double %412, double %413
  %415 = fcmp une double %410, 4.000000e+00
  %416 = fcmp ogt double %414, 1.000000e-05
  %or.cond55 = and i1 %415, %416
  br i1 %or.cond55, label %417, label %418

417:                                              ; preds = %409
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.76, double noundef 4.000000e+00, double noundef %410, ptr noundef nonnull @.str.3, i32 noundef 346)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %418

418:                                              ; preds = %417, %409
  %419 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef 5.000000e-01)
  %420 = fcmp olt double %419, 5.000000e-01
  %421 = fsub double 5.000000e-01, %419
  %422 = fadd double %419, -5.000000e-01
  %423 = select i1 %420, double %421, double %422
  %424 = fcmp une double %419, 5.000000e-01
  %425 = fcmp ogt double %423, 1.000000e-05
  %or.cond57 = and i1 %424, %425
  br i1 %or.cond57, label %426, label %427

426:                                              ; preds = %418
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.77, double noundef 5.000000e-01, double noundef %419, ptr noundef nonnull @.str.3, i32 noundef 347)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %427

427:                                              ; preds = %426, %418
  %428 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 5.000000e-01, double noundef 5.000000e-01)
  %429 = fcmp olt double %428, 2.500000e-01
  %430 = fsub double 2.500000e-01, %428
  %431 = fadd double %428, -2.500000e-01
  %432 = select i1 %429, double %430, double %431
  %433 = fcmp une double %428, 2.500000e-01
  %434 = fcmp ogt double %432, 1.000000e-05
  %or.cond59 = and i1 %433, %434
  br i1 %or.cond59, label %435, label %436

435:                                              ; preds = %427
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.78, double noundef 2.500000e-01, double noundef %428, ptr noundef nonnull @.str.3, i32 noundef 349)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %436

436:                                              ; preds = %435, %427
  %437 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 1.000000e+00, double noundef -1.000000e+00)
  %438 = fcmp olt double %437, -1.000000e+00
  %439 = fsub double -1.000000e+00, %437
  %440 = fadd double %437, 1.000000e+00
  %441 = select i1 %438, double %439, double %440
  %442 = fcmp une double %437, -1.000000e+00
  %443 = fcmp ogt double %441, 1.000000e-05
  %or.cond61 = and i1 %442, %443
  br i1 %or.cond61, label %444, label %445

444:                                              ; preds = %436
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.79, double noundef -1.000000e+00, double noundef %437, ptr noundef nonnull @.str.3, i32 noundef 351)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %445

445:                                              ; preds = %444, %436
  %446 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef -1.000000e+00, double noundef 1.000000e+00)
  %447 = fcmp olt double %446, -1.000000e+00
  %448 = fsub double -1.000000e+00, %446
  %449 = fadd double %446, 1.000000e+00
  %450 = select i1 %447, double %448, double %449
  %451 = fcmp une double %446, -1.000000e+00
  %452 = fcmp ogt double %450, 1.000000e-05
  %or.cond63 = and i1 %451, %452
  br i1 %or.cond63, label %453, label %454

453:                                              ; preds = %445
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.80, double noundef -1.000000e+00, double noundef %446, ptr noundef nonnull @.str.3, i32 noundef 353)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %454

454:                                              ; preds = %453, %445
  %455 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef -1.000000e+00, double noundef -1.000000e+00)
  %456 = fcmp olt double %455, 1.000000e+00
  %457 = fsub double 1.000000e+00, %455
  %458 = fadd double %455, -1.000000e+00
  %459 = select i1 %456, double %457, double %458
  %460 = fcmp une double %455, 1.000000e+00
  %461 = fcmp ogt double %459, 1.000000e-05
  %or.cond65 = and i1 %460, %461
  br i1 %or.cond65, label %462, label %463

462:                                              ; preds = %454
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.81, double noundef 1.000000e+00, double noundef %455, ptr noundef nonnull @.str.3, i32 noundef 355)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %463

463:                                              ; preds = %462, %454
  %464 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 3.000000e+03, double noundef 5.000000e+03)
  %465 = fcmp olt double %464, 1.500000e+07
  %466 = fsub double 1.500000e+07, %464
  %467 = fadd double %464, -1.500000e+07
  %468 = select i1 %465, double %466, double %467
  %469 = fcmp une double %464, 1.500000e+07
  %470 = fcmp ogt double %468, 1.000000e-05
  %or.cond67 = and i1 %469, %470
  br i1 %or.cond67, label %471, label %472

471:                                              ; preds = %463
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.82, double noundef 1.500000e+07, double noundef %464, ptr noundef nonnull @.str.3, i32 noundef 357)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %472

472:                                              ; preds = %471, %463
  %473 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 0x7FF8000000000000, double noundef 5.000000e+03)
  %474 = call noundef zeroext i1 @_ZSt5isnand(double noundef %473)
  br i1 %474, label %476, label %475

475:                                              ; preds = %472
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.3, i32 noundef 359)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %476

476:                                              ; preds = %475, %472
  %477 = call noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef 3.000000e+03, double noundef 0x7FF8000000000000)
  %478 = call noundef zeroext i1 @_ZSt5isnand(double noundef %477)
  br i1 %478, label %._crit_edge1662, label %479

._crit_edge1662:                                  ; preds = %476
  %.pre1663 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1636

479:                                              ; preds = %476
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 361)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1636

.lr.ph1636:                                       ; preds = %._crit_edge1662, %479
  %480 = phi i8 [ %.pre1663, %._crit_edge1662 ], [ 1, %479 ]
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %481 = xor i8 %480, 1
  %not.1578 = zext nneg i8 %481 to i32
  %482 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %483 = add nsw i32 %482, %not.1578
  store i32 %483, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %484 = zext nneg i8 %480 to i32
  %485 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %486 = add nsw i32 %485, %484
  store i32 %486, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.85)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %487 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0.000000e+00, double noundef 1.000000e+00)
  %.not1569 = icmp eq i32 %487, -1
  br i1 %.not1569, label %489, label %488

488:                                              ; preds = %.lr.ph1636
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 365, i32 noundef -1, i32 noundef %487)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %489

489:                                              ; preds = %.lr.ph1636, %488
  %490 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 1.000000e+00, double noundef 0.000000e+00)
  %.not1570 = icmp eq i32 %490, 1
  br i1 %.not1570, label %492, label %491

491:                                              ; preds = %489
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.3, i32 noundef 366, i32 noundef 1, i32 noundef %490)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %492

492:                                              ; preds = %489, %491
  %493 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 1.000000e+00, double noundef 1.000000e+00)
  %.not1571 = icmp eq i32 %493, 0
  br i1 %.not1571, label %495, label %494

494:                                              ; preds = %492
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 367, i32 noundef 0, i32 noundef %493)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %495

495:                                              ; preds = %492, %494
  %496 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0.000000e+00, double noundef 0.000000e+00)
  %.not1572 = icmp eq i32 %496, 0
  br i1 %.not1572, label %498, label %497

497:                                              ; preds = %495
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.3, i32 noundef 368, i32 noundef 0, i32 noundef %496)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %498

498:                                              ; preds = %495, %497
  %499 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef -1.000000e+01, double noundef 1.000000e+01)
  %.not1573 = icmp eq i32 %499, -1
  br i1 %.not1573, label %501, label %500

500:                                              ; preds = %498
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.3, i32 noundef 369, i32 noundef -1, i32 noundef %499)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %501

501:                                              ; preds = %498, %500
  %502 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 1.234500e+02, double noundef 1.000000e+01)
  %.not1574 = icmp eq i32 %502, 1
  br i1 %.not1574, label %504, label %503

503:                                              ; preds = %501
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.3, i32 noundef 370, i32 noundef 1, i32 noundef %502)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %504

504:                                              ; preds = %501, %503
  %505 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0x7FF8000000000000, double noundef 0x7FF0000000000000)
  %.not1575 = icmp eq i32 %505, 1
  br i1 %.not1575, label %507, label %506

506:                                              ; preds = %504
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.3, i32 noundef 373, i32 noundef 1, i32 noundef %505)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %507

507:                                              ; preds = %504, %506
  %508 = call noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef 0x7FF0000000000000, double noundef 0x7FF8000000000000)
  %.not1576 = icmp eq i32 %508, 1
  br i1 %.not1576, label %._crit_edge1664, label %509

._crit_edge1664:                                  ; preds = %507
  %.pre1665 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %510

509:                                              ; preds = %507
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.3, i32 noundef 376, i32 noundef 1, i32 noundef %508)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %510

510:                                              ; preds = %._crit_edge1664, %509
  %511 = phi i8 [ %.pre1665, %._crit_edge1664 ], [ 1, %509 ]
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %512 = xor i8 %511, 1
  %not.1577 = zext nneg i8 %512 to i32
  %513 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %514 = add nsw i32 %513, %not.1577
  store i32 %514, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %515 = zext nneg i8 %511 to i32
  %516 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %517 = add nsw i32 %516, %515
  store i32 %517, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.102)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %518 = getelementptr inbounds i8, ptr %7, i64 4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %519 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %6, double noundef 1.000000e+00, double noundef 1.600000e+01, i32 noundef 4)
  store i64 %519, ptr %7, align 8
  %520 = trunc i64 %519 to i32
  %.not1560 = icmp eq i32 %520, 2147483647
  %521 = lshr i64 %519, 32
  %522 = trunc nuw i64 %521 to i32
  br i1 %.not1560, label %524, label %523

523:                                              ; preds = %510
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.3, i32 noundef 392, i32 noundef %520, i32 noundef 2147483647)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %.pre1666 = load i32, ptr %518, align 4, !tbaa !13
  br label %524

524:                                              ; preds = %510, %523
  %525 = phi i32 [ %522, %510 ], [ %.pre1666, %523 ]
  %.not1561 = icmp eq i32 %525, 31
  br i1 %.not1561, label %527, label %526

526:                                              ; preds = %524
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.3, i32 noundef 393, i32 noundef %525, i32 noundef 31)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %527

527:                                              ; preds = %524, %526
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  %528 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %6, double noundef 1.000000e+00, double noundef 8.000000e+00, i32 noundef 4)
  store i64 %528, ptr %8, align 8
  %529 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  %530 = load i32, ptr %7, align 8, !tbaa !15
  %.not1562 = icmp eq i32 %530, 1073741824
  br i1 %.not1562, label %532, label %531

531:                                              ; preds = %527
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 396, i32 noundef %530, i32 noundef 1073741824)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %532

532:                                              ; preds = %527, %531
  %533 = load i32, ptr %518, align 4, !tbaa !13
  %.not1563 = icmp eq i32 %533, 31
  br i1 %.not1563, label %535, label %534

534:                                              ; preds = %532
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.3, i32 noundef 397, i32 noundef %533, i32 noundef 31)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %535

535:                                              ; preds = %532, %534
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  %536 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %6, double noundef 2.000000e+00, double noundef 1.600000e+01, i32 noundef 5)
  store i64 %536, ptr %9, align 8
  %537 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  %538 = load i32, ptr %7, align 8, !tbaa !15
  %.not1564 = icmp eq i32 %538, 2147483647
  br i1 %.not1564, label %540, label %539

539:                                              ; preds = %535
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.3, i32 noundef 401, i32 noundef %538, i32 noundef 2147483647)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %540

540:                                              ; preds = %535, %539
  %541 = load i32, ptr %518, align 4, !tbaa !13
  %.not1565 = icmp eq i32 %541, 31
  br i1 %.not1565, label %543, label %542

542:                                              ; preds = %540
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.3, i32 noundef 402, i32 noundef %541, i32 noundef 31)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %543

543:                                              ; preds = %540, %542
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  %544 = call i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1) %6, double noundef 2.000000e+00, double noundef 8.000000e+00, i32 noundef 5)
  store i64 %544, ptr %10, align 8
  %545 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  %546 = load i32, ptr %7, align 8, !tbaa !15
  %.not1566 = icmp eq i32 %546, 1073741824
  br i1 %.not1566, label %548, label %547

547:                                              ; preds = %543
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 405, i32 noundef %546, i32 noundef 1073741824)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %548

548:                                              ; preds = %543, %547
  %549 = load i32, ptr %518, align 4, !tbaa !13
  %.not1567 = icmp eq i32 %549, 31
  br i1 %.not1567, label %._crit_edge1667, label %550

._crit_edge1667:                                  ; preds = %548
  %.pre1668 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1642

550:                                              ; preds = %548
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.3, i32 noundef 406, i32 noundef %549, i32 noundef 31)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1642

.lr.ph1642:                                       ; preds = %._crit_edge1667, %550
  %551 = phi i8 [ %.pre1668, %._crit_edge1667 ], [ 1, %550 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #9
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %552 = xor i8 %551, 1
  %not.1568 = zext nneg i8 %552 to i32
  %553 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %554 = add nsw i32 %553, %not.1568
  store i32 %554, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %555 = zext nneg i8 %551 to i32
  %556 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %557 = add nsw i32 %556, %555
  store i32 %557, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.109)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %558 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 4, i32 noundef 27, i32 noundef 31)
  %.not1555 = icmp eq i32 %558, 15
  br i1 %.not1555, label %560, label %559

559:                                              ; preds = %.lr.ph1642
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.3, i32 noundef 410, i32 noundef %558, i32 noundef 15)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %560

560:                                              ; preds = %.lr.ph1642, %559
  %561 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 3, i32 noundef 27, i32 noundef 31)
  %.not1556 = icmp eq i32 %561, 14
  br i1 %.not1556, label %563, label %562

562:                                              ; preds = %560
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.3, i32 noundef 411, i32 noundef %561, i32 noundef 14)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %563

563:                                              ; preds = %560, %562
  %564 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 3, i32 noundef 28, i32 noundef 31)
  %.not1557 = icmp eq i32 %564, 7
  br i1 %.not1557, label %566, label %565

565:                                              ; preds = %563
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.3, i32 noundef 412, i32 noundef %564, i32 noundef 7)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %566

566:                                              ; preds = %563, %565
  %567 = call noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef 4, i32 noundef 2, i32 noundef 31)
  %.not1558 = icmp eq i32 %567, 503316480
  br i1 %.not1558, label %._crit_edge1670, label %568

._crit_edge1670:                                  ; preds = %566
  %.pre1671 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %.lr.ph1646

568:                                              ; preds = %566
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.3, i32 noundef 413, i32 noundef %567, i32 noundef 503316480)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %.lr.ph1646

.lr.ph1646:                                       ; preds = %._crit_edge1670, %568
  %569 = phi i8 [ %.pre1671, %._crit_edge1670 ], [ 1, %568 ]
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %570 = xor i8 %569, 1
  %not.1559 = zext nneg i8 %570 to i32
  %571 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %572 = add nsw i32 %571, %not.1559
  store i32 %572, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %573 = zext nneg i8 %569 to i32
  %574 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %575 = add nsw i32 %574, %573
  store i32 %575, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.118)
  store i8 0, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  store i8 0, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  %.pre1672 = load i32, ptr @__const.main.expected_effective_scale_significand, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %11) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(104) %11, ptr noundef nonnull align 16 dereferenceable(104) @__const.main.weights, i64 104, i1 false)
  call void @llvm.lifetime.start.p0(i64 52, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 52, ptr nonnull %13) #9
  call void @_ZN6tflite23QuantizeMultiplierArrayEPKdmPiS2_(ptr noundef nonnull %11, i64 noundef 13, ptr noundef nonnull %12, ptr noundef nonnull %13)
  %576 = load i32, ptr %12, align 16, !tbaa !5
  %.not = icmp eq i32 %576, %.pre1672
  br i1 %.not, label %578, label %577

577:                                              ; preds = %.lr.ph1646
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %576, i32 noundef %.pre1672)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %578

578:                                              ; preds = %.lr.ph1646, %577
  %579 = load i32, ptr %13, align 16, !tbaa !5
  %580 = load i32, ptr @__const.main.expected_effective_scale_shift, align 16, !tbaa !5
  %.not1554 = icmp eq i32 %579, %580
  br i1 %.not1554, label %582, label %581

581:                                              ; preds = %578
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %579, i32 noundef %580)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %582

582:                                              ; preds = %578, %581
  %583 = getelementptr inbounds i8, ptr %12, i64 4
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 4), align 4, !tbaa !5
  %.not.1 = icmp eq i32 %584, %585
  br i1 %.not.1, label %587, label %586

586:                                              ; preds = %582
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %584, i32 noundef %585)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %587

587:                                              ; preds = %586, %582
  %588 = getelementptr inbounds i8, ptr %13, i64 4
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 4), align 4, !tbaa !5
  %.not1554.1 = icmp eq i32 %589, %590
  br i1 %.not1554.1, label %592, label %591

591:                                              ; preds = %587
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %589, i32 noundef %590)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %592

592:                                              ; preds = %591, %587
  %593 = getelementptr inbounds i8, ptr %12, i64 8
  %594 = load i32, ptr %593, align 8, !tbaa !5
  %595 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 8), align 8, !tbaa !5
  %.not.2 = icmp eq i32 %594, %595
  br i1 %.not.2, label %597, label %596

596:                                              ; preds = %592
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %594, i32 noundef %595)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %597

597:                                              ; preds = %596, %592
  %598 = getelementptr inbounds i8, ptr %13, i64 8
  %599 = load i32, ptr %598, align 8, !tbaa !5
  %600 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 8), align 8, !tbaa !5
  %.not1554.2 = icmp eq i32 %599, %600
  br i1 %.not1554.2, label %602, label %601

601:                                              ; preds = %597
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %599, i32 noundef %600)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %602

602:                                              ; preds = %601, %597
  %603 = getelementptr inbounds i8, ptr %12, i64 12
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 12), align 4, !tbaa !5
  %.not.3 = icmp eq i32 %604, %605
  br i1 %.not.3, label %607, label %606

606:                                              ; preds = %602
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %604, i32 noundef %605)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %607

607:                                              ; preds = %606, %602
  %608 = getelementptr inbounds i8, ptr %13, i64 12
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 12), align 4, !tbaa !5
  %.not1554.3 = icmp eq i32 %609, %610
  br i1 %.not1554.3, label %612, label %611

611:                                              ; preds = %607
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %609, i32 noundef %610)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %612

612:                                              ; preds = %611, %607
  %613 = getelementptr inbounds i8, ptr %12, i64 16
  %614 = load i32, ptr %613, align 16, !tbaa !5
  %615 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 16), align 16, !tbaa !5
  %.not.4 = icmp eq i32 %614, %615
  br i1 %.not.4, label %617, label %616

616:                                              ; preds = %612
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %614, i32 noundef %615)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %617

617:                                              ; preds = %616, %612
  %618 = getelementptr inbounds i8, ptr %13, i64 16
  %619 = load i32, ptr %618, align 16, !tbaa !5
  %620 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 16), align 16, !tbaa !5
  %.not1554.4 = icmp eq i32 %619, %620
  br i1 %.not1554.4, label %622, label %621

621:                                              ; preds = %617
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %619, i32 noundef %620)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %622

622:                                              ; preds = %621, %617
  %623 = getelementptr inbounds i8, ptr %12, i64 20
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 20), align 4, !tbaa !5
  %.not.5 = icmp eq i32 %624, %625
  br i1 %.not.5, label %627, label %626

626:                                              ; preds = %622
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %624, i32 noundef %625)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %627

627:                                              ; preds = %626, %622
  %628 = getelementptr inbounds i8, ptr %13, i64 20
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 20), align 4, !tbaa !5
  %.not1554.5 = icmp eq i32 %629, %630
  br i1 %.not1554.5, label %632, label %631

631:                                              ; preds = %627
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %629, i32 noundef %630)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %632

632:                                              ; preds = %631, %627
  %633 = getelementptr inbounds i8, ptr %12, i64 24
  %634 = load i32, ptr %633, align 8, !tbaa !5
  %635 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 24), align 8, !tbaa !5
  %.not.6 = icmp eq i32 %634, %635
  br i1 %.not.6, label %637, label %636

636:                                              ; preds = %632
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %634, i32 noundef %635)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %637

637:                                              ; preds = %636, %632
  %638 = getelementptr inbounds i8, ptr %13, i64 24
  %639 = load i32, ptr %638, align 8, !tbaa !5
  %640 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 24), align 8, !tbaa !5
  %.not1554.6 = icmp eq i32 %639, %640
  br i1 %.not1554.6, label %642, label %641

641:                                              ; preds = %637
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %639, i32 noundef %640)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %642

642:                                              ; preds = %641, %637
  %643 = getelementptr inbounds i8, ptr %12, i64 28
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 28), align 4, !tbaa !5
  %.not.7 = icmp eq i32 %644, %645
  br i1 %.not.7, label %647, label %646

646:                                              ; preds = %642
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %644, i32 noundef %645)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %647

647:                                              ; preds = %646, %642
  %648 = getelementptr inbounds i8, ptr %13, i64 28
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 28), align 4, !tbaa !5
  %.not1554.7 = icmp eq i32 %649, %650
  br i1 %.not1554.7, label %652, label %651

651:                                              ; preds = %647
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %649, i32 noundef %650)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %652

652:                                              ; preds = %651, %647
  %653 = getelementptr inbounds i8, ptr %12, i64 32
  %654 = load i32, ptr %653, align 16, !tbaa !5
  %655 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 32), align 16, !tbaa !5
  %.not.8 = icmp eq i32 %654, %655
  br i1 %.not.8, label %657, label %656

656:                                              ; preds = %652
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %654, i32 noundef %655)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %657

657:                                              ; preds = %656, %652
  %658 = getelementptr inbounds i8, ptr %13, i64 32
  %659 = load i32, ptr %658, align 16, !tbaa !5
  %660 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 32), align 16, !tbaa !5
  %.not1554.8 = icmp eq i32 %659, %660
  br i1 %.not1554.8, label %662, label %661

661:                                              ; preds = %657
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %659, i32 noundef %660)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %662

662:                                              ; preds = %661, %657
  %663 = getelementptr inbounds i8, ptr %12, i64 36
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 36), align 4, !tbaa !5
  %.not.9 = icmp eq i32 %664, %665
  br i1 %.not.9, label %667, label %666

666:                                              ; preds = %662
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %664, i32 noundef %665)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %667

667:                                              ; preds = %666, %662
  %668 = getelementptr inbounds i8, ptr %13, i64 36
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 36), align 4, !tbaa !5
  %.not1554.9 = icmp eq i32 %669, %670
  br i1 %.not1554.9, label %672, label %671

671:                                              ; preds = %667
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %669, i32 noundef %670)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %672

672:                                              ; preds = %671, %667
  %673 = getelementptr inbounds i8, ptr %12, i64 40
  %674 = load i32, ptr %673, align 8, !tbaa !5
  %675 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 40), align 8, !tbaa !5
  %.not.10 = icmp eq i32 %674, %675
  br i1 %.not.10, label %677, label %676

676:                                              ; preds = %672
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %674, i32 noundef %675)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %677

677:                                              ; preds = %676, %672
  %678 = getelementptr inbounds i8, ptr %13, i64 40
  %679 = load i32, ptr %678, align 8, !tbaa !5
  %680 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 40), align 8, !tbaa !5
  %.not1554.10 = icmp eq i32 %679, %680
  br i1 %.not1554.10, label %682, label %681

681:                                              ; preds = %677
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %679, i32 noundef %680)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %682

682:                                              ; preds = %681, %677
  %683 = getelementptr inbounds i8, ptr %12, i64 44
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 44), align 4, !tbaa !5
  %.not.11 = icmp eq i32 %684, %685
  br i1 %.not.11, label %687, label %686

686:                                              ; preds = %682
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %684, i32 noundef %685)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %687

687:                                              ; preds = %686, %682
  %688 = getelementptr inbounds i8, ptr %13, i64 44
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 44), align 4, !tbaa !5
  %.not1554.11 = icmp eq i32 %689, %690
  br i1 %.not1554.11, label %692, label %691

691:                                              ; preds = %687
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %689, i32 noundef %690)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %692

692:                                              ; preds = %691, %687
  %693 = getelementptr inbounds i8, ptr %12, i64 48
  %694 = load i32, ptr %693, align 16, !tbaa !5
  %695 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_significand, i64 48), align 16, !tbaa !5
  %.not.12 = icmp eq i32 %694, %695
  br i1 %.not.12, label %697, label %696

696:                                              ; preds = %692
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 459, i32 noundef %694, i32 noundef %695)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %697

697:                                              ; preds = %696, %692
  %698 = getelementptr inbounds i8, ptr %13, i64 48
  %699 = load i32, ptr %698, align 16, !tbaa !5
  %700 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.expected_effective_scale_shift, i64 48), align 16, !tbaa !5
  %.not1554.12 = icmp eq i32 %699, %700
  br i1 %.not1554.12, label %._crit_edge1673, label %701

._crit_edge1673:                                  ; preds = %697
  %.pre1674 = load i8, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9, !range !11
  br label %._crit_edge1647

701:                                              ; preds = %697
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 461, i32 noundef %699, i32 noundef %700)
  store i8 1, ptr @_ZN10micro_test13did_test_failE, align 1, !tbaa !9
  br label %._crit_edge1647

._crit_edge1647:                                  ; preds = %._crit_edge1673, %701
  %702 = phi i8 [ %.pre1674, %._crit_edge1673 ], [ 1, %701 ]
  call void @llvm.lifetime.end.p0(i64 52, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 52, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %11) #9
  store i8 1, ptr @_ZN10micro_test16is_test_completeE, align 1, !tbaa !9
  %703 = xor i8 %702, 1
  %not. = zext nneg i8 %703 to i32
  %704 = load i32, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %705 = add nsw i32 %704, %not.
  store i32 %705, ptr @_ZN10micro_test12tests_passedE, align 4, !tbaa !5
  %706 = zext nneg i8 %702 to i32
  %707 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %708 = add nsw i32 %707, %706
  store i32 %708, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %709 = add nsw i32 %708, %705
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull @.str.123, i32 noundef %705, i32 noundef %709)
  %710 = load i32, ptr @_ZN10micro_test12tests_failedE, align 4, !tbaa !5
  %711 = icmp ne i32 %710, 0
  %.str.124..str.125 = select i1 %711, ptr @.str.125, ptr @.str.124
  %. = zext i1 %711 to i32
  call void (ptr, ...) @_Z11MicroPrintfPKcz(ptr noundef nonnull %.str.124..str.125)
  ret i32 %.
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6tflite14InitializeTestEv() local_unnamed_addr #1

declare void @_Z11MicroPrintfPKcz(ptr noundef, ...) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfaEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdaEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfsEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdsEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfiEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdiEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIflEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdlEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfhEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdhEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIftEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdtEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfjEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdjEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIfmEEvv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6tflite12_GLOBAL__N_116RunSafeCastTestsIdmEEvv() local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local { i32, double } @_ZN6tflite24ChooseQuantizationParamsIhEENS_18QuantizationParamsEdd(double noundef, double noundef) local_unnamed_addr #3

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

declare noundef i64 @_ZN6tflite12IntegerFrExpEdPi(double noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt14numeric_limitsIlE3maxEv() local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt14numeric_limitsIlE3minEv() local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: write)
declare double @frexp(double noundef, ptr nocapture noundef) local_unnamed_addr #6

declare noundef double @_ZN6tflite26DoubleFromFractionAndShiftEli(i64 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnand(double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt8isfinited(double noundef) local_unnamed_addr #5

declare noundef double @_ZN6tflite21IntegerDoubleMultiplyEdd(double noundef, double noundef) local_unnamed_addr #2

declare noundef i32 @_ZN6tflite20IntegerDoubleCompareEdd(double noundef, double noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden i64 @"_ZZ4mainENK3$_0clEddi"(ptr noundef nonnull align 1 dereferenceable(1), double noundef, double noundef, i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #5 align 2

declare noundef i32 @_ZN6tflite20CalculateInputRadiusEiii(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare void @_ZN6tflite23QuantizeMultiplierArrayEPKdmPiS2_(ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #8

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.abs.i64(i64, i1 immarg) #8

attributes #0 = { mustprogress norecurse 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 #1 = { inlinehint mustprogress 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress 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 #4 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { mustprogress 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 #6 = { mustprogress nofree nounwind willreturn memory(argmem: write) "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 #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { nounwind }

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass