; LLVM IR from kthohr/gcem :: tests (rounding)

; 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"

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@GCEM_TEST_NUMBER = external dso_local global i32, align 4
@.str = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca i8, align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca i8, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca i8, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca i8, align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca i8, align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca i8, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca i8, align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca i8, align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca i8, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca i8, align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca i8, align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca float, align 4
  %97 = alloca float, align 4
  %98 = alloca float, align 4
  %99 = alloca i8, align 1
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator", align 1
  %104 = alloca x86_fp80, align 16
  %105 = alloca x86_fp80, align 16
  %106 = alloca x86_fp80, align 16
  %107 = alloca i8, align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca x86_fp80, align 16
  %113 = alloca x86_fp80, align 16
  %114 = alloca x86_fp80, align 16
  %115 = alloca i8, align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator", align 1
  %120 = alloca x86_fp80, align 16
  %121 = alloca x86_fp80, align 16
  %122 = alloca x86_fp80, align 16
  %123 = alloca i8, align 1
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator", align 1
  %128 = alloca double, align 8
  %129 = alloca double, align 8
  %130 = alloca double, align 8
  %131 = alloca i8, align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator", align 1
  %136 = alloca double, align 8
  %137 = alloca double, align 8
  %138 = alloca double, align 8
  %139 = alloca i8, align 1
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator", align 1
  %144 = alloca double, align 8
  %145 = alloca double, align 8
  %146 = alloca double, align 8
  %147 = alloca i8, align 1
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator", align 1
  %152 = alloca double, align 8
  %153 = alloca double, align 8
  %154 = alloca double, align 8
  %155 = alloca i8, align 1
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator", align 1
  %160 = alloca double, align 8
  %161 = alloca double, align 8
  %162 = alloca double, align 8
  %163 = alloca i8, align 1
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::allocator", align 1
  %168 = alloca double, align 8
  %169 = alloca double, align 8
  %170 = alloca double, align 8
  %171 = alloca i8, align 1
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::allocator", align 1
  %176 = alloca double, align 8
  %177 = alloca double, align 8
  %178 = alloca double, align 8
  %179 = alloca i8, align 1
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::allocator", align 1
  %184 = alloca double, align 8
  %185 = alloca double, align 8
  %186 = alloca double, align 8
  %187 = alloca i8, align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::allocator", align 1
  %192 = alloca double, align 8
  %193 = alloca double, align 8
  %194 = alloca double, align 8
  %195 = alloca i8, align 1
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator", align 1
  %200 = alloca double, align 8
  %201 = alloca double, align 8
  %202 = alloca double, align 8
  %203 = alloca i8, align 1
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::allocator", align 1
  %208 = alloca double, align 8
  %209 = alloca double, align 8
  %210 = alloca double, align 8
  %211 = alloca i8, align 1
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::allocator", align 1
  %216 = alloca float, align 4
  %217 = alloca float, align 4
  %218 = alloca float, align 4
  %219 = alloca i8, align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::allocator", align 1
  %224 = alloca x86_fp80, align 16
  %225 = alloca x86_fp80, align 16
  %226 = alloca x86_fp80, align 16
  %227 = alloca i8, align 1
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca x86_fp80, align 16
  %233 = alloca x86_fp80, align 16
  %234 = alloca x86_fp80, align 16
  %235 = alloca i8, align 1
  %236 = alloca %"class.std::__cxx11::basic_string", align 8
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::allocator", align 1
  %240 = alloca x86_fp80, align 16
  %241 = alloca x86_fp80, align 16
  %242 = alloca x86_fp80, align 16
  %243 = alloca i8, align 1
  %244 = alloca %"class.std::__cxx11::basic_string", align 8
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::allocator", align 1
  %248 = alloca double, align 8
  %249 = alloca double, align 8
  %250 = alloca double, align 8
  %251 = alloca i8, align 1
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::__cxx11::basic_string", align 8
  %255 = alloca %"class.std::allocator", align 1
  %256 = alloca double, align 8
  %257 = alloca double, align 8
  %258 = alloca double, align 8
  %259 = alloca i8, align 1
  %260 = alloca %"class.std::__cxx11::basic_string", align 8
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::__cxx11::basic_string", align 8
  %263 = alloca %"class.std::allocator", align 1
  %264 = alloca double, align 8
  %265 = alloca double, align 8
  %266 = alloca double, align 8
  %267 = alloca i8, align 1
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.std::__cxx11::basic_string", align 8
  %271 = alloca %"class.std::allocator", align 1
  %272 = alloca double, align 8
  %273 = alloca double, align 8
  %274 = alloca double, align 8
  %275 = alloca i8, align 1
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.std::__cxx11::basic_string", align 8
  %279 = alloca %"class.std::allocator", align 1
  %280 = alloca double, align 8
  %281 = alloca double, align 8
  %282 = alloca double, align 8
  %283 = alloca i8, align 1
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::__cxx11::basic_string", align 8
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::allocator", align 1
  %288 = alloca double, align 8
  %289 = alloca double, align 8
  %290 = alloca double, align 8
  %291 = alloca i8, align 1
  %292 = alloca %"class.std::__cxx11::basic_string", align 8
  %293 = alloca %"class.std::__cxx11::basic_string", align 8
  %294 = alloca %"class.std::__cxx11::basic_string", align 8
  %295 = alloca %"class.std::allocator", align 1
  %296 = alloca double, align 8
  %297 = alloca double, align 8
  %298 = alloca double, align 8
  %299 = alloca i8, align 1
  %300 = alloca %"class.std::__cxx11::basic_string", align 8
  %301 = alloca %"class.std::__cxx11::basic_string", align 8
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.std::allocator", align 1
  %304 = alloca double, align 8
  %305 = alloca double, align 8
  %306 = alloca double, align 8
  %307 = alloca i8, align 1
  %308 = alloca %"class.std::__cxx11::basic_string", align 8
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca %"class.std::__cxx11::basic_string", align 8
  %311 = alloca %"class.std::allocator", align 1
  %312 = alloca double, align 8
  %313 = alloca double, align 8
  %314 = alloca double, align 8
  %315 = alloca i8, align 1
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::__cxx11::basic_string", align 8
  %318 = alloca %"class.std::__cxx11::basic_string", align 8
  %319 = alloca %"class.std::allocator", align 1
  %320 = alloca double, align 8
  %321 = alloca double, align 8
  %322 = alloca double, align 8
  %323 = alloca i8, align 1
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.std::__cxx11::basic_string", align 8
  %327 = alloca %"class.std::allocator", align 1
  %328 = alloca double, align 8
  %329 = alloca double, align 8
  %330 = alloca double, align 8
  %331 = alloca i8, align 1
  %332 = alloca %"class.std::__cxx11::basic_string", align 8
  %333 = alloca %"class.std::__cxx11::basic_string", align 8
  %334 = alloca %"class.std::__cxx11::basic_string", align 8
  %335 = alloca %"class.std::allocator", align 1
  %336 = alloca float, align 4
  %337 = alloca float, align 4
  %338 = alloca float, align 4
  %339 = alloca i8, align 1
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::__cxx11::basic_string", align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator", align 1
  %344 = alloca x86_fp80, align 16
  %345 = alloca x86_fp80, align 16
  %346 = alloca x86_fp80, align 16
  %347 = alloca i8, align 1
  %348 = alloca %"class.std::__cxx11::basic_string", align 8
  %349 = alloca %"class.std::__cxx11::basic_string", align 8
  %350 = alloca %"class.std::__cxx11::basic_string", align 8
  %351 = alloca %"class.std::allocator", align 1
  %352 = alloca x86_fp80, align 16
  %353 = alloca x86_fp80, align 16
  %354 = alloca x86_fp80, align 16
  %355 = alloca i8, align 1
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca %"class.std::__cxx11::basic_string", align 8
  %358 = alloca %"class.std::__cxx11::basic_string", align 8
  %359 = alloca %"class.std::allocator", align 1
  %360 = alloca x86_fp80, align 16
  %361 = alloca x86_fp80, align 16
  %362 = alloca x86_fp80, align 16
  %363 = alloca i8, align 1
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::__cxx11::basic_string", align 8
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::allocator", align 1
  %368 = alloca double, align 8
  %369 = alloca double, align 8
  %370 = alloca double, align 8
  %371 = alloca i8, align 1
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca %"class.std::__cxx11::basic_string", align 8
  %374 = alloca %"class.std::__cxx11::basic_string", align 8
  %375 = alloca %"class.std::allocator", align 1
  %376 = alloca double, align 8
  %377 = alloca double, align 8
  %378 = alloca double, align 8
  %379 = alloca i8, align 1
  %380 = alloca %"class.std::__cxx11::basic_string", align 8
  %381 = alloca %"class.std::__cxx11::basic_string", align 8
  %382 = alloca %"class.std::__cxx11::basic_string", align 8
  %383 = alloca %"class.std::allocator", align 1
  %384 = alloca double, align 8
  %385 = alloca double, align 8
  %386 = alloca double, align 8
  %387 = alloca i8, align 1
  %388 = alloca %"class.std::__cxx11::basic_string", align 8
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.std::__cxx11::basic_string", align 8
  %391 = alloca %"class.std::allocator", align 1
  %392 = alloca double, align 8
  %393 = alloca double, align 8
  %394 = alloca double, align 8
  %395 = alloca i8, align 1
  %396 = alloca %"class.std::__cxx11::basic_string", align 8
  %397 = alloca %"class.std::__cxx11::basic_string", align 8
  %398 = alloca %"class.std::__cxx11::basic_string", align 8
  %399 = alloca %"class.std::allocator", align 1
  %400 = alloca double, align 8
  %401 = alloca double, align 8
  %402 = alloca double, align 8
  %403 = alloca i8, align 1
  %404 = alloca %"class.std::__cxx11::basic_string", align 8
  %405 = alloca %"class.std::__cxx11::basic_string", align 8
  %406 = alloca %"class.std::__cxx11::basic_string", align 8
  %407 = alloca %"class.std::allocator", align 1
  %408 = alloca double, align 8
  %409 = alloca double, align 8
  %410 = alloca double, align 8
  %411 = alloca i8, align 1
  %412 = alloca %"class.std::__cxx11::basic_string", align 8
  %413 = alloca %"class.std::__cxx11::basic_string", align 8
  %414 = alloca %"class.std::__cxx11::basic_string", align 8
  %415 = alloca %"class.std::allocator", align 1
  %416 = alloca double, align 8
  %417 = alloca double, align 8
  %418 = alloca double, align 8
  %419 = alloca i8, align 1
  %420 = alloca %"class.std::__cxx11::basic_string", align 8
  %421 = alloca %"class.std::__cxx11::basic_string", align 8
  %422 = alloca %"class.std::__cxx11::basic_string", align 8
  %423 = alloca %"class.std::allocator", align 1
  %424 = alloca double, align 8
  %425 = alloca double, align 8
  %426 = alloca double, align 8
  %427 = alloca i8, align 1
  %428 = alloca %"class.std::__cxx11::basic_string", align 8
  %429 = alloca %"class.std::__cxx11::basic_string", align 8
  %430 = alloca %"class.std::__cxx11::basic_string", align 8
  %431 = alloca %"class.std::allocator", align 1
  %432 = alloca double, align 8
  %433 = alloca double, align 8
  %434 = alloca double, align 8
  %435 = alloca i8, align 1
  %436 = alloca %"class.std::__cxx11::basic_string", align 8
  %437 = alloca %"class.std::__cxx11::basic_string", align 8
  %438 = alloca %"class.std::__cxx11::basic_string", align 8
  %439 = alloca %"class.std::allocator", align 1
  %440 = alloca double, align 8
  %441 = alloca double, align 8
  %442 = alloca double, align 8
  %443 = alloca i8, align 1
  %444 = alloca %"class.std::__cxx11::basic_string", align 8
  %445 = alloca %"class.std::__cxx11::basic_string", align 8
  %446 = alloca %"class.std::__cxx11::basic_string", align 8
  %447 = alloca %"class.std::allocator", align 1
  %448 = alloca double, align 8
  %449 = alloca double, align 8
  %450 = alloca double, align 8
  %451 = alloca i8, align 1
  %452 = alloca %"class.std::__cxx11::basic_string", align 8
  %453 = alloca %"class.std::__cxx11::basic_string", align 8
  %454 = alloca %"class.std::__cxx11::basic_string", align 8
  %455 = alloca %"class.std::allocator", align 1
  %456 = alloca double, align 8
  %457 = alloca double, align 8
  %458 = alloca double, align 8
  %459 = alloca i8, align 1
  %460 = alloca %"class.std::__cxx11::basic_string", align 8
  %461 = alloca %"class.std::__cxx11::basic_string", align 8
  %462 = alloca %"class.std::__cxx11::basic_string", align 8
  %463 = alloca %"class.std::allocator", align 1
  %464 = alloca float, align 4
  %465 = alloca float, align 4
  %466 = alloca float, align 4
  %467 = alloca i8, align 1
  %468 = alloca %"class.std::__cxx11::basic_string", align 8
  %469 = alloca %"class.std::__cxx11::basic_string", align 8
  %470 = alloca %"class.std::__cxx11::basic_string", align 8
  %471 = alloca %"class.std::allocator", align 1
  %472 = alloca x86_fp80, align 16
  %473 = alloca x86_fp80, align 16
  %474 = alloca x86_fp80, align 16
  %475 = alloca i8, align 1
  %476 = alloca %"class.std::__cxx11::basic_string", align 8
  %477 = alloca %"class.std::__cxx11::basic_string", align 8
  %478 = alloca %"class.std::__cxx11::basic_string", align 8
  %479 = alloca %"class.std::allocator", align 1
  %480 = alloca x86_fp80, align 16
  %481 = alloca x86_fp80, align 16
  %482 = alloca x86_fp80, align 16
  %483 = alloca i8, align 1
  %484 = alloca %"class.std::__cxx11::basic_string", align 8
  %485 = alloca %"class.std::__cxx11::basic_string", align 8
  %486 = alloca %"class.std::__cxx11::basic_string", align 8
  %487 = alloca %"class.std::allocator", align 1
  %488 = alloca x86_fp80, align 16
  %489 = alloca x86_fp80, align 16
  %490 = alloca x86_fp80, align 16
  %491 = alloca i8, align 1
  %492 = alloca %"class.std::__cxx11::basic_string", align 8
  %493 = alloca %"class.std::__cxx11::basic_string", align 8
  %494 = alloca %"class.std::__cxx11::basic_string", align 8
  %495 = alloca %"class.std::allocator", align 1
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %3) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %496 unwind label %523

496:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2)
          to label %497 unwind label %527

497:                                              ; preds = %496
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #7
  %498 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %499 = add nsw i32 %498, 1
  store i32 %499, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %500 unwind label %532

500:                                              ; preds = %497
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %501 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #7
  store double %501, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %502 = call double @llvm.floor.f64(double 0.000000e+00)
  store double %502, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %503 = load double, ptr %8, align 8, !tbaa !9
  %504 = load double, ptr %9, align 8, !tbaa !9
  %505 = fsub double %503, %504
  %506 = invoke noundef double @_ZSt3absd(double noundef %505)
          to label %507 unwind label %536

507:                                              ; preds = %500
  %508 = load double, ptr %9, align 8, !tbaa !9
  %509 = invoke noundef double @_ZSt3absd(double noundef %508)
          to label %510 unwind label %536

510:                                              ; preds = %507
  %511 = fadd double 1.000000e+00, %509
  %512 = fdiv double %506, %511
  store double %512, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  store i8 0, ptr %11, align 1, !tbaa !11
  %513 = load double, ptr %8, align 8, !tbaa !9
  %514 = fpext double %513 to x86_fp80
  %515 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %514)
          to label %516 unwind label %540

516:                                              ; preds = %510
  br i1 %515, label %517, label %544

517:                                              ; preds = %516
  %518 = load double, ptr %9, align 8, !tbaa !9
  %519 = fpext double %518 to x86_fp80
  %520 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %519)
          to label %521 unwind label %540

521:                                              ; preds = %517
  br i1 %520, label %522, label %544

522:                                              ; preds = %521
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %575

523:                                              ; preds = %0
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %4, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %5, align 4
  br label %531

527:                                              ; preds = %496
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %4, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  br label %531

531:                                              ; preds = %527, %523
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #7
  br label %5774

532:                                              ; preds = %497
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %4, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  br label %615

536:                                              ; preds = %507, %500
  %537 = landingpad { ptr, i32 }
          cleanup
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %4, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %5, align 4
  br label %614

540:                                              ; preds = %578, %563, %549, %544, %517, %510
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %4, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %5, align 4
  br label %613

544:                                              ; preds = %521, %516
  %545 = load double, ptr %8, align 8, !tbaa !9
  %546 = fpext double %545 to x86_fp80
  %547 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %546)
          to label %548 unwind label %540

548:                                              ; preds = %544
  br i1 %547, label %559, label %549

549:                                              ; preds = %548
  %550 = load double, ptr %8, align 8, !tbaa !9
  %551 = fpext double %550 to x86_fp80
  %552 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %551)
          to label %553 unwind label %540

553:                                              ; preds = %549
  br i1 %552, label %554, label %559

554:                                              ; preds = %553
  %555 = load double, ptr %8, align 8, !tbaa !9
  %556 = load double, ptr %9, align 8, !tbaa !9
  %557 = fcmp oeq double %555, %556
  br i1 %557, label %558, label %559

558:                                              ; preds = %554
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %574

559:                                              ; preds = %554, %553, %548
  %560 = load double, ptr %10, align 8, !tbaa !9
  %561 = fcmp olt double %560, 0x3D06849B86A12B9B
  br i1 %561, label %562, label %563

562:                                              ; preds = %559
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %573

563:                                              ; preds = %559
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %564 unwind label %540

564:                                              ; preds = %563
  %565 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %566 = load double, ptr %8, align 8, !tbaa !9
  %567 = load double, ptr %9, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %12, i32 noundef %565, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %566, double noundef %567, double noundef 0.000000e+00)
          to label %568 unwind label %569

568:                                              ; preds = %564
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %573

569:                                              ; preds = %564
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %4, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %613

573:                                              ; preds = %568, %562
  br label %574

574:                                              ; preds = %573, %558
  br label %575

575:                                              ; preds = %574, %522
  %576 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %577 = trunc i8 %576 to i1
  br i1 %577, label %578, label %587

578:                                              ; preds = %575
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %579 unwind label %540

579:                                              ; preds = %578
  %580 = load double, ptr %8, align 8, !tbaa !9
  %581 = load double, ptr %10, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %13, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %580, double noundef %581, double noundef 0.000000e+00)
          to label %582 unwind label %583

582:                                              ; preds = %579
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %587

583:                                              ; preds = %579
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %4, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %613

587:                                              ; preds = %582, %575
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  %588 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %589 = add nsw i32 %588, 1
  store i32 %589, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %590 unwind label %616

590:                                              ; preds = %587
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %591 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #7
  store double %591, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %592 = call double @llvm.floor.f64(double -0.000000e+00)
  store double %592, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %593 = load double, ptr %16, align 8, !tbaa !9
  %594 = load double, ptr %17, align 8, !tbaa !9
  %595 = fsub double %593, %594
  %596 = invoke noundef double @_ZSt3absd(double noundef %595)
          to label %597 unwind label %620

597:                                              ; preds = %590
  %598 = load double, ptr %17, align 8, !tbaa !9
  %599 = invoke noundef double @_ZSt3absd(double noundef %598)
          to label %600 unwind label %620

600:                                              ; preds = %597
  %601 = fadd double 1.000000e+00, %599
  %602 = fdiv double %596, %601
  store double %602, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  store i8 0, ptr %19, align 1, !tbaa !11
  %603 = load double, ptr %16, align 8, !tbaa !9
  %604 = fpext double %603 to x86_fp80
  %605 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %604)
          to label %606 unwind label %624

606:                                              ; preds = %600
  br i1 %605, label %607, label %628

607:                                              ; preds = %606
  %608 = load double, ptr %17, align 8, !tbaa !9
  %609 = fpext double %608 to x86_fp80
  %610 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %609)
          to label %611 unwind label %624

611:                                              ; preds = %607
  br i1 %610, label %612, label %628

612:                                              ; preds = %611
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %659

613:                                              ; preds = %583, %569, %540
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %614

614:                                              ; preds = %613, %536
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %615

615:                                              ; preds = %614, %532
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %5774

616:                                              ; preds = %587
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %4, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  br label %699

620:                                              ; preds = %597, %590
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %4, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %5, align 4
  br label %698

624:                                              ; preds = %662, %647, %633, %628, %607, %600
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %4, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %5, align 4
  br label %697

628:                                              ; preds = %611, %606
  %629 = load double, ptr %16, align 8, !tbaa !9
  %630 = fpext double %629 to x86_fp80
  %631 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %630)
          to label %632 unwind label %624

632:                                              ; preds = %628
  br i1 %631, label %643, label %633

633:                                              ; preds = %632
  %634 = load double, ptr %16, align 8, !tbaa !9
  %635 = fpext double %634 to x86_fp80
  %636 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %635)
          to label %637 unwind label %624

637:                                              ; preds = %633
  br i1 %636, label %638, label %643

638:                                              ; preds = %637
  %639 = load double, ptr %16, align 8, !tbaa !9
  %640 = load double, ptr %17, align 8, !tbaa !9
  %641 = fcmp oeq double %639, %640
  br i1 %641, label %642, label %643

642:                                              ; preds = %638
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %658

643:                                              ; preds = %638, %637, %632
  %644 = load double, ptr %18, align 8, !tbaa !9
  %645 = fcmp olt double %644, 0x3D06849B86A12B9B
  br i1 %645, label %646, label %647

646:                                              ; preds = %643
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %657

647:                                              ; preds = %643
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %648 unwind label %624

648:                                              ; preds = %647
  %649 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %650 = load double, ptr %16, align 8, !tbaa !9
  %651 = load double, ptr %17, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %20, i32 noundef %649, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %650, double noundef %651, double noundef -0.000000e+00)
          to label %652 unwind label %653

652:                                              ; preds = %648
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %657

653:                                              ; preds = %648
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %4, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %697

657:                                              ; preds = %652, %646
  br label %658

658:                                              ; preds = %657, %642
  br label %659

659:                                              ; preds = %658, %612
  %660 = load i8, ptr %19, align 1, !tbaa !11, !range !13, !noundef !14
  %661 = trunc i8 %660 to i1
  br i1 %661, label %662, label %671

662:                                              ; preds = %659
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %663 unwind label %624

663:                                              ; preds = %662
  %664 = load double, ptr %16, align 8, !tbaa !9
  %665 = load double, ptr %18, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %21, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %664, double noundef %665, double noundef -0.000000e+00)
          to label %666 unwind label %667

666:                                              ; preds = %663
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %671

667:                                              ; preds = %663
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %4, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %697

671:                                              ; preds = %666, %659
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  %672 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %674 unwind label %700

674:                                              ; preds = %671
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %675 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #7
  store double %675, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %676 = call double @llvm.floor.f64(double 4.200000e+00)
  store double %676, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %677 = load double, ptr %24, align 8, !tbaa !9
  %678 = load double, ptr %25, align 8, !tbaa !9
  %679 = fsub double %677, %678
  %680 = invoke noundef double @_ZSt3absd(double noundef %679)
          to label %681 unwind label %704

681:                                              ; preds = %674
  %682 = load double, ptr %25, align 8, !tbaa !9
  %683 = invoke noundef double @_ZSt3absd(double noundef %682)
          to label %684 unwind label %704

684:                                              ; preds = %681
  %685 = fadd double 1.000000e+00, %683
  %686 = fdiv double %680, %685
  store double %686, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  store i8 0, ptr %27, align 1, !tbaa !11
  %687 = load double, ptr %24, align 8, !tbaa !9
  %688 = fpext double %687 to x86_fp80
  %689 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %688)
          to label %690 unwind label %708

690:                                              ; preds = %684
  br i1 %689, label %691, label %712

691:                                              ; preds = %690
  %692 = load double, ptr %25, align 8, !tbaa !9
  %693 = fpext double %692 to x86_fp80
  %694 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %693)
          to label %695 unwind label %708

695:                                              ; preds = %691
  br i1 %694, label %696, label %712

696:                                              ; preds = %695
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %743

697:                                              ; preds = %667, %653, %624
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %698

698:                                              ; preds = %697, %620
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %699

699:                                              ; preds = %698, %616
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %5774

700:                                              ; preds = %671
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %4, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  br label %783

704:                                              ; preds = %681, %674
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %4, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %5, align 4
  br label %782

708:                                              ; preds = %746, %731, %717, %712, %691, %684
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %4, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %5, align 4
  br label %781

712:                                              ; preds = %695, %690
  %713 = load double, ptr %24, align 8, !tbaa !9
  %714 = fpext double %713 to x86_fp80
  %715 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %714)
          to label %716 unwind label %708

716:                                              ; preds = %712
  br i1 %715, label %727, label %717

717:                                              ; preds = %716
  %718 = load double, ptr %24, align 8, !tbaa !9
  %719 = fpext double %718 to x86_fp80
  %720 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %719)
          to label %721 unwind label %708

721:                                              ; preds = %717
  br i1 %720, label %722, label %727

722:                                              ; preds = %721
  %723 = load double, ptr %24, align 8, !tbaa !9
  %724 = load double, ptr %25, align 8, !tbaa !9
  %725 = fcmp oeq double %723, %724
  br i1 %725, label %726, label %727

726:                                              ; preds = %722
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %742

727:                                              ; preds = %722, %721, %716
  %728 = load double, ptr %26, align 8, !tbaa !9
  %729 = fcmp olt double %728, 0x3D06849B86A12B9B
  br i1 %729, label %730, label %731

730:                                              ; preds = %727
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %741

731:                                              ; preds = %727
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %732 unwind label %708

732:                                              ; preds = %731
  %733 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %734 = load double, ptr %24, align 8, !tbaa !9
  %735 = load double, ptr %25, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %28, i32 noundef %733, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %734, double noundef %735, double noundef 4.200000e+00)
          to label %736 unwind label %737

736:                                              ; preds = %732
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %741

737:                                              ; preds = %732
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %4, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %781

741:                                              ; preds = %736, %730
  br label %742

742:                                              ; preds = %741, %726
  br label %743

743:                                              ; preds = %742, %696
  %744 = load i8, ptr %27, align 1, !tbaa !11, !range !13, !noundef !14
  %745 = trunc i8 %744 to i1
  br i1 %745, label %746, label %755

746:                                              ; preds = %743
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %747 unwind label %708

747:                                              ; preds = %746
  %748 = load double, ptr %24, align 8, !tbaa !9
  %749 = load double, ptr %26, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %29, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %748, double noundef %749, double noundef 4.200000e+00)
          to label %750 unwind label %751

750:                                              ; preds = %747
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %755

751:                                              ; preds = %747
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %4, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %781

755:                                              ; preds = %750, %743
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  %756 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %757 = add nsw i32 %756, 1
  store i32 %757, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %758 unwind label %784

758:                                              ; preds = %755
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %759 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #7
  store double %759, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %760 = call double @llvm.floor.f64(double 4.500000e+00)
  store double %760, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %761 = load double, ptr %32, align 8, !tbaa !9
  %762 = load double, ptr %33, align 8, !tbaa !9
  %763 = fsub double %761, %762
  %764 = invoke noundef double @_ZSt3absd(double noundef %763)
          to label %765 unwind label %788

765:                                              ; preds = %758
  %766 = load double, ptr %33, align 8, !tbaa !9
  %767 = invoke noundef double @_ZSt3absd(double noundef %766)
          to label %768 unwind label %788

768:                                              ; preds = %765
  %769 = fadd double 1.000000e+00, %767
  %770 = fdiv double %764, %769
  store double %770, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  store i8 0, ptr %35, align 1, !tbaa !11
  %771 = load double, ptr %32, align 8, !tbaa !9
  %772 = fpext double %771 to x86_fp80
  %773 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %772)
          to label %774 unwind label %792

774:                                              ; preds = %768
  br i1 %773, label %775, label %796

775:                                              ; preds = %774
  %776 = load double, ptr %33, align 8, !tbaa !9
  %777 = fpext double %776 to x86_fp80
  %778 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %777)
          to label %779 unwind label %792

779:                                              ; preds = %775
  br i1 %778, label %780, label %796

780:                                              ; preds = %779
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %827

781:                                              ; preds = %751, %737, %708
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  br label %782

782:                                              ; preds = %781, %704
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %783

783:                                              ; preds = %782, %700
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %5774

784:                                              ; preds = %755
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %4, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  br label %867

788:                                              ; preds = %765, %758
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %4, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %5, align 4
  br label %866

792:                                              ; preds = %830, %815, %801, %796, %775, %768
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %4, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %5, align 4
  br label %865

796:                                              ; preds = %779, %774
  %797 = load double, ptr %32, align 8, !tbaa !9
  %798 = fpext double %797 to x86_fp80
  %799 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %798)
          to label %800 unwind label %792

800:                                              ; preds = %796
  br i1 %799, label %811, label %801

801:                                              ; preds = %800
  %802 = load double, ptr %32, align 8, !tbaa !9
  %803 = fpext double %802 to x86_fp80
  %804 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %803)
          to label %805 unwind label %792

805:                                              ; preds = %801
  br i1 %804, label %806, label %811

806:                                              ; preds = %805
  %807 = load double, ptr %32, align 8, !tbaa !9
  %808 = load double, ptr %33, align 8, !tbaa !9
  %809 = fcmp oeq double %807, %808
  br i1 %809, label %810, label %811

810:                                              ; preds = %806
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %826

811:                                              ; preds = %806, %805, %800
  %812 = load double, ptr %34, align 8, !tbaa !9
  %813 = fcmp olt double %812, 0x3D06849B86A12B9B
  br i1 %813, label %814, label %815

814:                                              ; preds = %811
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %825

815:                                              ; preds = %811
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %816 unwind label %792

816:                                              ; preds = %815
  %817 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %818 = load double, ptr %32, align 8, !tbaa !9
  %819 = load double, ptr %33, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %36, i32 noundef %817, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %818, double noundef %819, double noundef 4.500000e+00)
          to label %820 unwind label %821

820:                                              ; preds = %816
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %825

821:                                              ; preds = %816
  %822 = landingpad { ptr, i32 }
          cleanup
  %823 = extractvalue { ptr, i32 } %822, 0
  store ptr %823, ptr %4, align 8
  %824 = extractvalue { ptr, i32 } %822, 1
  store i32 %824, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %865

825:                                              ; preds = %820, %814
  br label %826

826:                                              ; preds = %825, %810
  br label %827

827:                                              ; preds = %826, %780
  %828 = load i8, ptr %35, align 1, !tbaa !11, !range !13, !noundef !14
  %829 = trunc i8 %828 to i1
  br i1 %829, label %830, label %839

830:                                              ; preds = %827
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %831 unwind label %792

831:                                              ; preds = %830
  %832 = load double, ptr %32, align 8, !tbaa !9
  %833 = load double, ptr %34, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %37, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %832, double noundef %833, double noundef 4.500000e+00)
          to label %834 unwind label %835

834:                                              ; preds = %831
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %839

835:                                              ; preds = %831
  %836 = landingpad { ptr, i32 }
          cleanup
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %4, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %865

839:                                              ; preds = %834, %827
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  %840 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %841 = add nsw i32 %840, 1
  store i32 %841, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %842 unwind label %868

842:                                              ; preds = %839
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %843 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #7
  store double %843, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %844 = call double @llvm.floor.f64(double 4.700000e+00)
  store double %844, ptr %41, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %845 = load double, ptr %40, align 8, !tbaa !9
  %846 = load double, ptr %41, align 8, !tbaa !9
  %847 = fsub double %845, %846
  %848 = invoke noundef double @_ZSt3absd(double noundef %847)
          to label %849 unwind label %872

849:                                              ; preds = %842
  %850 = load double, ptr %41, align 8, !tbaa !9
  %851 = invoke noundef double @_ZSt3absd(double noundef %850)
          to label %852 unwind label %872

852:                                              ; preds = %849
  %853 = fadd double 1.000000e+00, %851
  %854 = fdiv double %848, %853
  store double %854, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  store i8 0, ptr %43, align 1, !tbaa !11
  %855 = load double, ptr %40, align 8, !tbaa !9
  %856 = fpext double %855 to x86_fp80
  %857 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %856)
          to label %858 unwind label %876

858:                                              ; preds = %852
  br i1 %857, label %859, label %880

859:                                              ; preds = %858
  %860 = load double, ptr %41, align 8, !tbaa !9
  %861 = fpext double %860 to x86_fp80
  %862 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %861)
          to label %863 unwind label %876

863:                                              ; preds = %859
  br i1 %862, label %864, label %880

864:                                              ; preds = %863
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %911

865:                                              ; preds = %835, %821, %792
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %866

866:                                              ; preds = %865, %788
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %867

867:                                              ; preds = %866, %784
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %5774

868:                                              ; preds = %839
  %869 = landingpad { ptr, i32 }
          cleanup
  %870 = extractvalue { ptr, i32 } %869, 0
  store ptr %870, ptr %4, align 8
  %871 = extractvalue { ptr, i32 } %869, 1
  store i32 %871, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  br label %951

872:                                              ; preds = %849, %842
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %4, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %5, align 4
  br label %950

876:                                              ; preds = %914, %899, %885, %880, %859, %852
  %877 = landingpad { ptr, i32 }
          cleanup
  %878 = extractvalue { ptr, i32 } %877, 0
  store ptr %878, ptr %4, align 8
  %879 = extractvalue { ptr, i32 } %877, 1
  store i32 %879, ptr %5, align 4
  br label %949

880:                                              ; preds = %863, %858
  %881 = load double, ptr %40, align 8, !tbaa !9
  %882 = fpext double %881 to x86_fp80
  %883 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %882)
          to label %884 unwind label %876

884:                                              ; preds = %880
  br i1 %883, label %895, label %885

885:                                              ; preds = %884
  %886 = load double, ptr %40, align 8, !tbaa !9
  %887 = fpext double %886 to x86_fp80
  %888 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %887)
          to label %889 unwind label %876

889:                                              ; preds = %885
  br i1 %888, label %890, label %895

890:                                              ; preds = %889
  %891 = load double, ptr %40, align 8, !tbaa !9
  %892 = load double, ptr %41, align 8, !tbaa !9
  %893 = fcmp oeq double %891, %892
  br i1 %893, label %894, label %895

894:                                              ; preds = %890
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %910

895:                                              ; preds = %890, %889, %884
  %896 = load double, ptr %42, align 8, !tbaa !9
  %897 = fcmp olt double %896, 0x3D06849B86A12B9B
  br i1 %897, label %898, label %899

898:                                              ; preds = %895
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %909

899:                                              ; preds = %895
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %900 unwind label %876

900:                                              ; preds = %899
  %901 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %902 = load double, ptr %40, align 8, !tbaa !9
  %903 = load double, ptr %41, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %44, i32 noundef %901, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %902, double noundef %903, double noundef 4.700000e+00)
          to label %904 unwind label %905

904:                                              ; preds = %900
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %909

905:                                              ; preds = %900
  %906 = landingpad { ptr, i32 }
          cleanup
  %907 = extractvalue { ptr, i32 } %906, 0
  store ptr %907, ptr %4, align 8
  %908 = extractvalue { ptr, i32 } %906, 1
  store i32 %908, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %949

909:                                              ; preds = %904, %898
  br label %910

910:                                              ; preds = %909, %894
  br label %911

911:                                              ; preds = %910, %864
  %912 = load i8, ptr %43, align 1, !tbaa !11, !range !13, !noundef !14
  %913 = trunc i8 %912 to i1
  br i1 %913, label %914, label %923

914:                                              ; preds = %911
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %915 unwind label %876

915:                                              ; preds = %914
  %916 = load double, ptr %40, align 8, !tbaa !9
  %917 = load double, ptr %42, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %45, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %916, double noundef %917, double noundef 4.700000e+00)
          to label %918 unwind label %919

918:                                              ; preds = %915
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %923

919:                                              ; preds = %915
  %920 = landingpad { ptr, i32 }
          cleanup
  %921 = extractvalue { ptr, i32 } %920, 0
  store ptr %921, ptr %4, align 8
  %922 = extractvalue { ptr, i32 } %920, 1
  store i32 %922, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %949

923:                                              ; preds = %918, %911
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  %924 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %926 unwind label %952

926:                                              ; preds = %923
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %927 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #7
  store double %927, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %928 = call double @llvm.floor.f64(double 5.000000e+00)
  store double %928, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %929 = load double, ptr %48, align 8, !tbaa !9
  %930 = load double, ptr %49, align 8, !tbaa !9
  %931 = fsub double %929, %930
  %932 = invoke noundef double @_ZSt3absd(double noundef %931)
          to label %933 unwind label %956

933:                                              ; preds = %926
  %934 = load double, ptr %49, align 8, !tbaa !9
  %935 = invoke noundef double @_ZSt3absd(double noundef %934)
          to label %936 unwind label %956

936:                                              ; preds = %933
  %937 = fadd double 1.000000e+00, %935
  %938 = fdiv double %932, %937
  store double %938, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #7
  store i8 0, ptr %51, align 1, !tbaa !11
  %939 = load double, ptr %48, align 8, !tbaa !9
  %940 = fpext double %939 to x86_fp80
  %941 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %940)
          to label %942 unwind label %960

942:                                              ; preds = %936
  br i1 %941, label %943, label %964

943:                                              ; preds = %942
  %944 = load double, ptr %49, align 8, !tbaa !9
  %945 = fpext double %944 to x86_fp80
  %946 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %945)
          to label %947 unwind label %960

947:                                              ; preds = %943
  br i1 %946, label %948, label %964

948:                                              ; preds = %947
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %995

949:                                              ; preds = %919, %905, %876
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %950

950:                                              ; preds = %949, %872
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %951

951:                                              ; preds = %950, %868
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %5774

952:                                              ; preds = %923
  %953 = landingpad { ptr, i32 }
          cleanup
  %954 = extractvalue { ptr, i32 } %953, 0
  store ptr %954, ptr %4, align 8
  %955 = extractvalue { ptr, i32 } %953, 1
  store i32 %955, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  br label %1035

956:                                              ; preds = %933, %926
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %4, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %5, align 4
  br label %1034

960:                                              ; preds = %998, %983, %969, %964, %943, %936
  %961 = landingpad { ptr, i32 }
          cleanup
  %962 = extractvalue { ptr, i32 } %961, 0
  store ptr %962, ptr %4, align 8
  %963 = extractvalue { ptr, i32 } %961, 1
  store i32 %963, ptr %5, align 4
  br label %1033

964:                                              ; preds = %947, %942
  %965 = load double, ptr %48, align 8, !tbaa !9
  %966 = fpext double %965 to x86_fp80
  %967 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %966)
          to label %968 unwind label %960

968:                                              ; preds = %964
  br i1 %967, label %979, label %969

969:                                              ; preds = %968
  %970 = load double, ptr %48, align 8, !tbaa !9
  %971 = fpext double %970 to x86_fp80
  %972 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %971)
          to label %973 unwind label %960

973:                                              ; preds = %969
  br i1 %972, label %974, label %979

974:                                              ; preds = %973
  %975 = load double, ptr %48, align 8, !tbaa !9
  %976 = load double, ptr %49, align 8, !tbaa !9
  %977 = fcmp oeq double %975, %976
  br i1 %977, label %978, label %979

978:                                              ; preds = %974
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %994

979:                                              ; preds = %974, %973, %968
  %980 = load double, ptr %50, align 8, !tbaa !9
  %981 = fcmp olt double %980, 0x3D06849B86A12B9B
  br i1 %981, label %982, label %983

982:                                              ; preds = %979
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %993

983:                                              ; preds = %979
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %984 unwind label %960

984:                                              ; preds = %983
  %985 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %986 = load double, ptr %48, align 8, !tbaa !9
  %987 = load double, ptr %49, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %52, i32 noundef %985, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %986, double noundef %987, double noundef 5.000000e+00)
          to label %988 unwind label %989

988:                                              ; preds = %984
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %993

989:                                              ; preds = %984
  %990 = landingpad { ptr, i32 }
          cleanup
  %991 = extractvalue { ptr, i32 } %990, 0
  store ptr %991, ptr %4, align 8
  %992 = extractvalue { ptr, i32 } %990, 1
  store i32 %992, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %1033

993:                                              ; preds = %988, %982
  br label %994

994:                                              ; preds = %993, %978
  br label %995

995:                                              ; preds = %994, %948
  %996 = load i8, ptr %51, align 1, !tbaa !11, !range !13, !noundef !14
  %997 = trunc i8 %996 to i1
  br i1 %997, label %998, label %1007

998:                                              ; preds = %995
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %999 unwind label %960

999:                                              ; preds = %998
  %1000 = load double, ptr %48, align 8, !tbaa !9
  %1001 = load double, ptr %50, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %53, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1000, double noundef %1001, double noundef 5.000000e+00)
          to label %1002 unwind label %1003

1002:                                             ; preds = %999
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %1007

1003:                                             ; preds = %999
  %1004 = landingpad { ptr, i32 }
          cleanup
  %1005 = extractvalue { ptr, i32 } %1004, 0
  store ptr %1005, ptr %4, align 8
  %1006 = extractvalue { ptr, i32 } %1004, 1
  store i32 %1006, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %1033

1007:                                             ; preds = %1002, %995
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  %1008 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %1010 unwind label %1036

1010:                                             ; preds = %1007
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %1011 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #7
  store double %1011, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %1012 = call double @llvm.floor.f64(double -4.200000e+00)
  store double %1012, ptr %57, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %1013 = load double, ptr %56, align 8, !tbaa !9
  %1014 = load double, ptr %57, align 8, !tbaa !9
  %1015 = fsub double %1013, %1014
  %1016 = invoke noundef double @_ZSt3absd(double noundef %1015)
          to label %1017 unwind label %1040

1017:                                             ; preds = %1010
  %1018 = load double, ptr %57, align 8, !tbaa !9
  %1019 = invoke noundef double @_ZSt3absd(double noundef %1018)
          to label %1020 unwind label %1040

1020:                                             ; preds = %1017
  %1021 = fadd double 1.000000e+00, %1019
  %1022 = fdiv double %1016, %1021
  store double %1022, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  store i8 0, ptr %59, align 1, !tbaa !11
  %1023 = load double, ptr %56, align 8, !tbaa !9
  %1024 = fpext double %1023 to x86_fp80
  %1025 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1024)
          to label %1026 unwind label %1044

1026:                                             ; preds = %1020
  br i1 %1025, label %1027, label %1048

1027:                                             ; preds = %1026
  %1028 = load double, ptr %57, align 8, !tbaa !9
  %1029 = fpext double %1028 to x86_fp80
  %1030 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1029)
          to label %1031 unwind label %1044

1031:                                             ; preds = %1027
  br i1 %1030, label %1032, label %1048

1032:                                             ; preds = %1031
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %1079

1033:                                             ; preds = %1003, %989, %960
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  br label %1034

1034:                                             ; preds = %1033, %956
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %1035

1035:                                             ; preds = %1034, %952
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %5774

1036:                                             ; preds = %1007
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %4, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  br label %1119

1040:                                             ; preds = %1017, %1010
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %4, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %5, align 4
  br label %1118

1044:                                             ; preds = %1082, %1067, %1053, %1048, %1027, %1020
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %4, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %5, align 4
  br label %1117

1048:                                             ; preds = %1031, %1026
  %1049 = load double, ptr %56, align 8, !tbaa !9
  %1050 = fpext double %1049 to x86_fp80
  %1051 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1050)
          to label %1052 unwind label %1044

1052:                                             ; preds = %1048
  br i1 %1051, label %1063, label %1053

1053:                                             ; preds = %1052
  %1054 = load double, ptr %56, align 8, !tbaa !9
  %1055 = fpext double %1054 to x86_fp80
  %1056 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1055)
          to label %1057 unwind label %1044

1057:                                             ; preds = %1053
  br i1 %1056, label %1058, label %1063

1058:                                             ; preds = %1057
  %1059 = load double, ptr %56, align 8, !tbaa !9
  %1060 = load double, ptr %57, align 8, !tbaa !9
  %1061 = fcmp oeq double %1059, %1060
  br i1 %1061, label %1062, label %1063

1062:                                             ; preds = %1058
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %1078

1063:                                             ; preds = %1058, %1057, %1052
  %1064 = load double, ptr %58, align 8, !tbaa !9
  %1065 = fcmp olt double %1064, 0x3D06849B86A12B9B
  br i1 %1065, label %1066, label %1067

1066:                                             ; preds = %1063
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %1077

1067:                                             ; preds = %1063
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %1068 unwind label %1044

1068:                                             ; preds = %1067
  %1069 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1070 = load double, ptr %56, align 8, !tbaa !9
  %1071 = load double, ptr %57, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %60, i32 noundef %1069, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1070, double noundef %1071, double noundef -4.200000e+00)
          to label %1072 unwind label %1073

1072:                                             ; preds = %1068
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %1077

1073:                                             ; preds = %1068
  %1074 = landingpad { ptr, i32 }
          cleanup
  %1075 = extractvalue { ptr, i32 } %1074, 0
  store ptr %1075, ptr %4, align 8
  %1076 = extractvalue { ptr, i32 } %1074, 1
  store i32 %1076, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %1117

1077:                                             ; preds = %1072, %1066
  br label %1078

1078:                                             ; preds = %1077, %1062
  br label %1079

1079:                                             ; preds = %1078, %1032
  %1080 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %1081 = trunc i8 %1080 to i1
  br i1 %1081, label %1082, label %1091

1082:                                             ; preds = %1079
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %1083 unwind label %1044

1083:                                             ; preds = %1082
  %1084 = load double, ptr %56, align 8, !tbaa !9
  %1085 = load double, ptr %58, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %61, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1084, double noundef %1085, double noundef -4.200000e+00)
          to label %1086 unwind label %1087

1086:                                             ; preds = %1083
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %1091

1087:                                             ; preds = %1083
  %1088 = landingpad { ptr, i32 }
          cleanup
  %1089 = extractvalue { ptr, i32 } %1088, 0
  store ptr %1089, ptr %4, align 8
  %1090 = extractvalue { ptr, i32 } %1088, 1
  store i32 %1090, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %1117

1091:                                             ; preds = %1086, %1079
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  %1092 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %1094 unwind label %1120

1094:                                             ; preds = %1091
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %1095 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #7
  store double %1095, ptr %64, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %1096 = call double @llvm.floor.f64(double -4.700000e+00)
  store double %1096, ptr %65, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %1097 = load double, ptr %64, align 8, !tbaa !9
  %1098 = load double, ptr %65, align 8, !tbaa !9
  %1099 = fsub double %1097, %1098
  %1100 = invoke noundef double @_ZSt3absd(double noundef %1099)
          to label %1101 unwind label %1124

1101:                                             ; preds = %1094
  %1102 = load double, ptr %65, align 8, !tbaa !9
  %1103 = invoke noundef double @_ZSt3absd(double noundef %1102)
          to label %1104 unwind label %1124

1104:                                             ; preds = %1101
  %1105 = fadd double 1.000000e+00, %1103
  %1106 = fdiv double %1100, %1105
  store double %1106, ptr %66, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  store i8 0, ptr %67, align 1, !tbaa !11
  %1107 = load double, ptr %64, align 8, !tbaa !9
  %1108 = fpext double %1107 to x86_fp80
  %1109 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1108)
          to label %1110 unwind label %1128

1110:                                             ; preds = %1104
  br i1 %1109, label %1111, label %1132

1111:                                             ; preds = %1110
  %1112 = load double, ptr %65, align 8, !tbaa !9
  %1113 = fpext double %1112 to x86_fp80
  %1114 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1113)
          to label %1115 unwind label %1128

1115:                                             ; preds = %1111
  br i1 %1114, label %1116, label %1132

1116:                                             ; preds = %1115
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %1163

1117:                                             ; preds = %1087, %1073, %1044
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  br label %1118

1118:                                             ; preds = %1117, %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %1119

1119:                                             ; preds = %1118, %1036
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %5774

1120:                                             ; preds = %1091
  %1121 = landingpad { ptr, i32 }
          cleanup
  %1122 = extractvalue { ptr, i32 } %1121, 0
  store ptr %1122, ptr %4, align 8
  %1123 = extractvalue { ptr, i32 } %1121, 1
  store i32 %1123, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  br label %1203

1124:                                             ; preds = %1101, %1094
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %4, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %5, align 4
  br label %1202

1128:                                             ; preds = %1166, %1151, %1137, %1132, %1111, %1104
  %1129 = landingpad { ptr, i32 }
          cleanup
  %1130 = extractvalue { ptr, i32 } %1129, 0
  store ptr %1130, ptr %4, align 8
  %1131 = extractvalue { ptr, i32 } %1129, 1
  store i32 %1131, ptr %5, align 4
  br label %1201

1132:                                             ; preds = %1115, %1110
  %1133 = load double, ptr %64, align 8, !tbaa !9
  %1134 = fpext double %1133 to x86_fp80
  %1135 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1134)
          to label %1136 unwind label %1128

1136:                                             ; preds = %1132
  br i1 %1135, label %1147, label %1137

1137:                                             ; preds = %1136
  %1138 = load double, ptr %64, align 8, !tbaa !9
  %1139 = fpext double %1138 to x86_fp80
  %1140 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1139)
          to label %1141 unwind label %1128

1141:                                             ; preds = %1137
  br i1 %1140, label %1142, label %1147

1142:                                             ; preds = %1141
  %1143 = load double, ptr %64, align 8, !tbaa !9
  %1144 = load double, ptr %65, align 8, !tbaa !9
  %1145 = fcmp oeq double %1143, %1144
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1142
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %1162

1147:                                             ; preds = %1142, %1141, %1136
  %1148 = load double, ptr %66, align 8, !tbaa !9
  %1149 = fcmp olt double %1148, 0x3D06849B86A12B9B
  br i1 %1149, label %1150, label %1151

1150:                                             ; preds = %1147
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %1161

1151:                                             ; preds = %1147
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %1152 unwind label %1128

1152:                                             ; preds = %1151
  %1153 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1154 = load double, ptr %64, align 8, !tbaa !9
  %1155 = load double, ptr %65, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %68, i32 noundef %1153, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1154, double noundef %1155, double noundef -4.700000e+00)
          to label %1156 unwind label %1157

1156:                                             ; preds = %1152
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %1161

1157:                                             ; preds = %1152
  %1158 = landingpad { ptr, i32 }
          cleanup
  %1159 = extractvalue { ptr, i32 } %1158, 0
  store ptr %1159, ptr %4, align 8
  %1160 = extractvalue { ptr, i32 } %1158, 1
  store i32 %1160, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %1201

1161:                                             ; preds = %1156, %1150
  br label %1162

1162:                                             ; preds = %1161, %1146
  br label %1163

1163:                                             ; preds = %1162, %1116
  %1164 = load i8, ptr %67, align 1, !tbaa !11, !range !13, !noundef !14
  %1165 = trunc i8 %1164 to i1
  br i1 %1165, label %1166, label %1175

1166:                                             ; preds = %1163
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %1167 unwind label %1128

1167:                                             ; preds = %1166
  %1168 = load double, ptr %64, align 8, !tbaa !9
  %1169 = load double, ptr %66, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %69, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1168, double noundef %1169, double noundef -4.700000e+00)
          to label %1170 unwind label %1171

1170:                                             ; preds = %1167
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %1175

1171:                                             ; preds = %1167
  %1172 = landingpad { ptr, i32 }
          cleanup
  %1173 = extractvalue { ptr, i32 } %1172, 0
  store ptr %1173, ptr %4, align 8
  %1174 = extractvalue { ptr, i32 } %1172, 1
  store i32 %1174, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %1201

1175:                                             ; preds = %1170, %1163
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  %1176 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1177 = add nsw i32 %1176, 1
  store i32 %1177, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %1178 unwind label %1204

1178:                                             ; preds = %1175
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %1179 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #7
  store double %1179, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %1180 = call double @llvm.floor.f64(double -5.000000e+00)
  store double %1180, ptr %73, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %1181 = load double, ptr %72, align 8, !tbaa !9
  %1182 = load double, ptr %73, align 8, !tbaa !9
  %1183 = fsub double %1181, %1182
  %1184 = invoke noundef double @_ZSt3absd(double noundef %1183)
          to label %1185 unwind label %1208

1185:                                             ; preds = %1178
  %1186 = load double, ptr %73, align 8, !tbaa !9
  %1187 = invoke noundef double @_ZSt3absd(double noundef %1186)
          to label %1188 unwind label %1208

1188:                                             ; preds = %1185
  %1189 = fadd double 1.000000e+00, %1187
  %1190 = fdiv double %1184, %1189
  store double %1190, ptr %74, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #7
  store i8 0, ptr %75, align 1, !tbaa !11
  %1191 = load double, ptr %72, align 8, !tbaa !9
  %1192 = fpext double %1191 to x86_fp80
  %1193 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1192)
          to label %1194 unwind label %1212

1194:                                             ; preds = %1188
  br i1 %1193, label %1195, label %1216

1195:                                             ; preds = %1194
  %1196 = load double, ptr %73, align 8, !tbaa !9
  %1197 = fpext double %1196 to x86_fp80
  %1198 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1197)
          to label %1199 unwind label %1212

1199:                                             ; preds = %1195
  br i1 %1198, label %1200, label %1216

1200:                                             ; preds = %1199
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %1247

1201:                                             ; preds = %1171, %1157, %1128
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  br label %1202

1202:                                             ; preds = %1201, %1124
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %1203

1203:                                             ; preds = %1202, %1120
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %5774

1204:                                             ; preds = %1175
  %1205 = landingpad { ptr, i32 }
          cleanup
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %4, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  br label %1287

1208:                                             ; preds = %1185, %1178
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %4, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %5, align 4
  br label %1286

1212:                                             ; preds = %1250, %1235, %1221, %1216, %1195, %1188
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %4, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %5, align 4
  br label %1285

1216:                                             ; preds = %1199, %1194
  %1217 = load double, ptr %72, align 8, !tbaa !9
  %1218 = fpext double %1217 to x86_fp80
  %1219 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1218)
          to label %1220 unwind label %1212

1220:                                             ; preds = %1216
  br i1 %1219, label %1231, label %1221

1221:                                             ; preds = %1220
  %1222 = load double, ptr %72, align 8, !tbaa !9
  %1223 = fpext double %1222 to x86_fp80
  %1224 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1223)
          to label %1225 unwind label %1212

1225:                                             ; preds = %1221
  br i1 %1224, label %1226, label %1231

1226:                                             ; preds = %1225
  %1227 = load double, ptr %72, align 8, !tbaa !9
  %1228 = load double, ptr %73, align 8, !tbaa !9
  %1229 = fcmp oeq double %1227, %1228
  br i1 %1229, label %1230, label %1231

1230:                                             ; preds = %1226
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %1246

1231:                                             ; preds = %1226, %1225, %1220
  %1232 = load double, ptr %74, align 8, !tbaa !9
  %1233 = fcmp olt double %1232, 0x3D06849B86A12B9B
  br i1 %1233, label %1234, label %1235

1234:                                             ; preds = %1231
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %1245

1235:                                             ; preds = %1231
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %1236 unwind label %1212

1236:                                             ; preds = %1235
  %1237 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1238 = load double, ptr %72, align 8, !tbaa !9
  %1239 = load double, ptr %73, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %76, i32 noundef %1237, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1238, double noundef %1239, double noundef -5.000000e+00)
          to label %1240 unwind label %1241

1240:                                             ; preds = %1236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %1245

1241:                                             ; preds = %1236
  %1242 = landingpad { ptr, i32 }
          cleanup
  %1243 = extractvalue { ptr, i32 } %1242, 0
  store ptr %1243, ptr %4, align 8
  %1244 = extractvalue { ptr, i32 } %1242, 1
  store i32 %1244, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %1285

1245:                                             ; preds = %1240, %1234
  br label %1246

1246:                                             ; preds = %1245, %1230
  br label %1247

1247:                                             ; preds = %1246, %1200
  %1248 = load i8, ptr %75, align 1, !tbaa !11, !range !13, !noundef !14
  %1249 = trunc i8 %1248 to i1
  br i1 %1249, label %1250, label %1259

1250:                                             ; preds = %1247
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %1251 unwind label %1212

1251:                                             ; preds = %1250
  %1252 = load double, ptr %72, align 8, !tbaa !9
  %1253 = load double, ptr %74, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %77, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1252, double noundef %1253, double noundef -5.000000e+00)
          to label %1254 unwind label %1255

1254:                                             ; preds = %1251
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %1259

1255:                                             ; preds = %1251
  %1256 = landingpad { ptr, i32 }
          cleanup
  %1257 = extractvalue { ptr, i32 } %1256, 0
  store ptr %1257, ptr %4, align 8
  %1258 = extractvalue { ptr, i32 } %1256, 1
  store i32 %1258, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %1285

1259:                                             ; preds = %1254, %1247
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  %1260 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %1262 unwind label %1288

1262:                                             ; preds = %1259
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #7
  %1263 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #7
  store double %1263, ptr %80, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %1264 = call double @llvm.floor.f64(double 4.200000e+33)
  store double %1264, ptr %81, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %1265 = load double, ptr %80, align 8, !tbaa !9
  %1266 = load double, ptr %81, align 8, !tbaa !9
  %1267 = fsub double %1265, %1266
  %1268 = invoke noundef double @_ZSt3absd(double noundef %1267)
          to label %1269 unwind label %1292

1269:                                             ; preds = %1262
  %1270 = load double, ptr %81, align 8, !tbaa !9
  %1271 = invoke noundef double @_ZSt3absd(double noundef %1270)
          to label %1272 unwind label %1292

1272:                                             ; preds = %1269
  %1273 = fadd double 1.000000e+00, %1271
  %1274 = fdiv double %1268, %1273
  store double %1274, ptr %82, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #7
  store i8 0, ptr %83, align 1, !tbaa !11
  %1275 = load double, ptr %80, align 8, !tbaa !9
  %1276 = fpext double %1275 to x86_fp80
  %1277 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1276)
          to label %1278 unwind label %1296

1278:                                             ; preds = %1272
  br i1 %1277, label %1279, label %1300

1279:                                             ; preds = %1278
  %1280 = load double, ptr %81, align 8, !tbaa !9
  %1281 = fpext double %1280 to x86_fp80
  %1282 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1281)
          to label %1283 unwind label %1296

1283:                                             ; preds = %1279
  br i1 %1282, label %1284, label %1300

1284:                                             ; preds = %1283
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1331

1285:                                             ; preds = %1255, %1241, %1212
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  br label %1286

1286:                                             ; preds = %1285, %1208
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %1287

1287:                                             ; preds = %1286, %1204
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %5774

1288:                                             ; preds = %1259
  %1289 = landingpad { ptr, i32 }
          cleanup
  %1290 = extractvalue { ptr, i32 } %1289, 0
  store ptr %1290, ptr %4, align 8
  %1291 = extractvalue { ptr, i32 } %1289, 1
  store i32 %1291, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #7
  br label %1371

1292:                                             ; preds = %1269, %1262
  %1293 = landingpad { ptr, i32 }
          cleanup
  %1294 = extractvalue { ptr, i32 } %1293, 0
  store ptr %1294, ptr %4, align 8
  %1295 = extractvalue { ptr, i32 } %1293, 1
  store i32 %1295, ptr %5, align 4
  br label %1370

1296:                                             ; preds = %1334, %1319, %1305, %1300, %1279, %1272
  %1297 = landingpad { ptr, i32 }
          cleanup
  %1298 = extractvalue { ptr, i32 } %1297, 0
  store ptr %1298, ptr %4, align 8
  %1299 = extractvalue { ptr, i32 } %1297, 1
  store i32 %1299, ptr %5, align 4
  br label %1369

1300:                                             ; preds = %1283, %1278
  %1301 = load double, ptr %80, align 8, !tbaa !9
  %1302 = fpext double %1301 to x86_fp80
  %1303 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1302)
          to label %1304 unwind label %1296

1304:                                             ; preds = %1300
  br i1 %1303, label %1315, label %1305

1305:                                             ; preds = %1304
  %1306 = load double, ptr %80, align 8, !tbaa !9
  %1307 = fpext double %1306 to x86_fp80
  %1308 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1307)
          to label %1309 unwind label %1296

1309:                                             ; preds = %1305
  br i1 %1308, label %1310, label %1315

1310:                                             ; preds = %1309
  %1311 = load double, ptr %80, align 8, !tbaa !9
  %1312 = load double, ptr %81, align 8, !tbaa !9
  %1313 = fcmp oeq double %1311, %1312
  br i1 %1313, label %1314, label %1315

1314:                                             ; preds = %1310
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1330

1315:                                             ; preds = %1310, %1309, %1304
  %1316 = load double, ptr %82, align 8, !tbaa !9
  %1317 = fcmp olt double %1316, 0x3D06849B86A12B9B
  br i1 %1317, label %1318, label %1319

1318:                                             ; preds = %1315
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1329

1319:                                             ; preds = %1315
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1320 unwind label %1296

1320:                                             ; preds = %1319
  %1321 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1322 = load double, ptr %80, align 8, !tbaa !9
  %1323 = load double, ptr %81, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %84, i32 noundef %1321, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1322, double noundef %1323, double noundef 4.200000e+33)
          to label %1324 unwind label %1325

1324:                                             ; preds = %1320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1329

1325:                                             ; preds = %1320
  %1326 = landingpad { ptr, i32 }
          cleanup
  %1327 = extractvalue { ptr, i32 } %1326, 0
  store ptr %1327, ptr %4, align 8
  %1328 = extractvalue { ptr, i32 } %1326, 1
  store i32 %1328, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1369

1329:                                             ; preds = %1324, %1318
  br label %1330

1330:                                             ; preds = %1329, %1314
  br label %1331

1331:                                             ; preds = %1330, %1284
  %1332 = load i8, ptr %83, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc i8 %1332 to i1
  br i1 %1333, label %1334, label %1343

1334:                                             ; preds = %1331
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1335 unwind label %1296

1335:                                             ; preds = %1334
  %1336 = load double, ptr %80, align 8, !tbaa !9
  %1337 = load double, ptr %82, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %85, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1336, double noundef %1337, double noundef 4.200000e+33)
          to label %1338 unwind label %1339

1338:                                             ; preds = %1335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1343

1339:                                             ; preds = %1335
  %1340 = landingpad { ptr, i32 }
          cleanup
  %1341 = extractvalue { ptr, i32 } %1340, 0
  store ptr %1341, ptr %4, align 8
  %1342 = extractvalue { ptr, i32 } %1340, 1
  store i32 %1342, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1369

1343:                                             ; preds = %1338, %1331
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  %1344 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1345 = add nsw i32 %1344, 1
  store i32 %1345, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1346 unwind label %1372

1346:                                             ; preds = %1343
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #7
  %1347 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #7
  store double %1347, ptr %88, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  %1348 = call double @llvm.floor.f64(double -4.200000e+33)
  store double %1348, ptr %89, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %1349 = load double, ptr %88, align 8, !tbaa !9
  %1350 = load double, ptr %89, align 8, !tbaa !9
  %1351 = fsub double %1349, %1350
  %1352 = invoke noundef double @_ZSt3absd(double noundef %1351)
          to label %1353 unwind label %1376

1353:                                             ; preds = %1346
  %1354 = load double, ptr %89, align 8, !tbaa !9
  %1355 = invoke noundef double @_ZSt3absd(double noundef %1354)
          to label %1356 unwind label %1376

1356:                                             ; preds = %1353
  %1357 = fadd double 1.000000e+00, %1355
  %1358 = fdiv double %1352, %1357
  store double %1358, ptr %90, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #7
  store i8 0, ptr %91, align 1, !tbaa !11
  %1359 = load double, ptr %88, align 8, !tbaa !9
  %1360 = fpext double %1359 to x86_fp80
  %1361 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1360)
          to label %1362 unwind label %1380

1362:                                             ; preds = %1356
  br i1 %1361, label %1363, label %1384

1363:                                             ; preds = %1362
  %1364 = load double, ptr %89, align 8, !tbaa !9
  %1365 = fpext double %1364 to x86_fp80
  %1366 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1365)
          to label %1367 unwind label %1380

1367:                                             ; preds = %1363
  br i1 %1366, label %1368, label %1384

1368:                                             ; preds = %1367
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1415

1369:                                             ; preds = %1339, %1325, %1296
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  br label %1370

1370:                                             ; preds = %1369, %1292
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %1371

1371:                                             ; preds = %1370, %1288
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  br label %5774

1372:                                             ; preds = %1343
  %1373 = landingpad { ptr, i32 }
          cleanup
  %1374 = extractvalue { ptr, i32 } %1373, 0
  store ptr %1374, ptr %4, align 8
  %1375 = extractvalue { ptr, i32 } %1373, 1
  store i32 %1375, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #7
  br label %1458

1376:                                             ; preds = %1353, %1346
  %1377 = landingpad { ptr, i32 }
          cleanup
  %1378 = extractvalue { ptr, i32 } %1377, 0
  store ptr %1378, ptr %4, align 8
  %1379 = extractvalue { ptr, i32 } %1377, 1
  store i32 %1379, ptr %5, align 4
  br label %1457

1380:                                             ; preds = %1418, %1403, %1389, %1384, %1363, %1356
  %1381 = landingpad { ptr, i32 }
          cleanup
  %1382 = extractvalue { ptr, i32 } %1381, 0
  store ptr %1382, ptr %4, align 8
  %1383 = extractvalue { ptr, i32 } %1381, 1
  store i32 %1383, ptr %5, align 4
  br label %1456

1384:                                             ; preds = %1367, %1362
  %1385 = load double, ptr %88, align 8, !tbaa !9
  %1386 = fpext double %1385 to x86_fp80
  %1387 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1386)
          to label %1388 unwind label %1380

1388:                                             ; preds = %1384
  br i1 %1387, label %1399, label %1389

1389:                                             ; preds = %1388
  %1390 = load double, ptr %88, align 8, !tbaa !9
  %1391 = fpext double %1390 to x86_fp80
  %1392 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1391)
          to label %1393 unwind label %1380

1393:                                             ; preds = %1389
  br i1 %1392, label %1394, label %1399

1394:                                             ; preds = %1393
  %1395 = load double, ptr %88, align 8, !tbaa !9
  %1396 = load double, ptr %89, align 8, !tbaa !9
  %1397 = fcmp oeq double %1395, %1396
  br i1 %1397, label %1398, label %1399

1398:                                             ; preds = %1394
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1414

1399:                                             ; preds = %1394, %1393, %1388
  %1400 = load double, ptr %90, align 8, !tbaa !9
  %1401 = fcmp olt double %1400, 0x3D06849B86A12B9B
  br i1 %1401, label %1402, label %1403

1402:                                             ; preds = %1399
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1413

1403:                                             ; preds = %1399
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1404 unwind label %1380

1404:                                             ; preds = %1403
  %1405 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1406 = load double, ptr %88, align 8, !tbaa !9
  %1407 = load double, ptr %89, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %92, i32 noundef %1405, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1406, double noundef %1407, double noundef -4.200000e+33)
          to label %1408 unwind label %1409

1408:                                             ; preds = %1404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1413

1409:                                             ; preds = %1404
  %1410 = landingpad { ptr, i32 }
          cleanup
  %1411 = extractvalue { ptr, i32 } %1410, 0
  store ptr %1411, ptr %4, align 8
  %1412 = extractvalue { ptr, i32 } %1410, 1
  store i32 %1412, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1456

1413:                                             ; preds = %1408, %1402
  br label %1414

1414:                                             ; preds = %1413, %1398
  br label %1415

1415:                                             ; preds = %1414, %1368
  %1416 = load i8, ptr %91, align 1, !tbaa !11, !range !13, !noundef !14
  %1417 = trunc i8 %1416 to i1
  br i1 %1417, label %1418, label %1427

1418:                                             ; preds = %1415
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1419 unwind label %1380

1419:                                             ; preds = %1418
  %1420 = load double, ptr %88, align 8, !tbaa !9
  %1421 = load double, ptr %90, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %93, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1420, double noundef %1421, double noundef -4.200000e+33)
          to label %1422 unwind label %1423

1422:                                             ; preds = %1419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1427

1423:                                             ; preds = %1419
  %1424 = landingpad { ptr, i32 }
          cleanup
  %1425 = extractvalue { ptr, i32 } %1424, 0
  store ptr %1425, ptr %4, align 8
  %1426 = extractvalue { ptr, i32 } %1424, 1
  store i32 %1426, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1456

1427:                                             ; preds = %1422, %1415
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  %1428 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1429 = add nsw i32 %1428, 1
  store i32 %1429, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %1430 unwind label %1459

1430:                                             ; preds = %1427
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #7
  %1431 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %1432 = call noundef float @_ZN4gcem5floorIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %1431) #7
  store float %1432, ptr %96, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #7
  %1433 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %1434 = invoke noundef float @_ZSt5floorf(float noundef %1433)
          to label %1435 unwind label %1463

1435:                                             ; preds = %1430
  store float %1434, ptr %97, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #7
  %1436 = load float, ptr %96, align 4, !tbaa !15
  %1437 = load float, ptr %97, align 4, !tbaa !15
  %1438 = fsub float %1436, %1437
  %1439 = invoke noundef float @_ZSt3absf(float noundef %1438)
          to label %1440 unwind label %1467

1440:                                             ; preds = %1435
  %1441 = load float, ptr %97, align 4, !tbaa !15
  %1442 = invoke noundef float @_ZSt3absf(float noundef %1441)
          to label %1443 unwind label %1467

1443:                                             ; preds = %1440
  %1444 = fadd float 1.000000e+00, %1442
  %1445 = fdiv float %1439, %1444
  store float %1445, ptr %98, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #7
  store i8 0, ptr %99, align 1, !tbaa !11
  %1446 = load float, ptr %96, align 4, !tbaa !15
  %1447 = fpext float %1446 to x86_fp80
  %1448 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1447)
          to label %1449 unwind label %1471

1449:                                             ; preds = %1443
  br i1 %1448, label %1450, label %1475

1450:                                             ; preds = %1449
  %1451 = load float, ptr %97, align 4, !tbaa !15
  %1452 = fpext float %1451 to x86_fp80
  %1453 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1452)
          to label %1454 unwind label %1471

1454:                                             ; preds = %1450
  br i1 %1453, label %1455, label %1475

1455:                                             ; preds = %1454
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1508

1456:                                             ; preds = %1423, %1409, %1380
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  br label %1457

1457:                                             ; preds = %1456, %1376
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %1458

1458:                                             ; preds = %1457, %1372
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  br label %5774

1459:                                             ; preds = %1427
  %1460 = landingpad { ptr, i32 }
          cleanup
  %1461 = extractvalue { ptr, i32 } %1460, 0
  store ptr %1461, ptr %4, align 8
  %1462 = extractvalue { ptr, i32 } %1460, 1
  store i32 %1462, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #7
  br label %1553

1463:                                             ; preds = %1430
  %1464 = landingpad { ptr, i32 }
          cleanup
  %1465 = extractvalue { ptr, i32 } %1464, 0
  store ptr %1465, ptr %4, align 8
  %1466 = extractvalue { ptr, i32 } %1464, 1
  store i32 %1466, ptr %5, align 4
  br label %1552

1467:                                             ; preds = %1440, %1435
  %1468 = landingpad { ptr, i32 }
          cleanup
  %1469 = extractvalue { ptr, i32 } %1468, 0
  store ptr %1469, ptr %4, align 8
  %1470 = extractvalue { ptr, i32 } %1468, 1
  store i32 %1470, ptr %5, align 4
  br label %1551

1471:                                             ; preds = %1511, %1495, %1480, %1475, %1450, %1443
  %1472 = landingpad { ptr, i32 }
          cleanup
  %1473 = extractvalue { ptr, i32 } %1472, 0
  store ptr %1473, ptr %4, align 8
  %1474 = extractvalue { ptr, i32 } %1472, 1
  store i32 %1474, ptr %5, align 4
  br label %1550

1475:                                             ; preds = %1454, %1449
  %1476 = load float, ptr %96, align 4, !tbaa !15
  %1477 = fpext float %1476 to x86_fp80
  %1478 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1477)
          to label %1479 unwind label %1471

1479:                                             ; preds = %1475
  br i1 %1478, label %1490, label %1480

1480:                                             ; preds = %1479
  %1481 = load float, ptr %96, align 4, !tbaa !15
  %1482 = fpext float %1481 to x86_fp80
  %1483 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1482)
          to label %1484 unwind label %1471

1484:                                             ; preds = %1480
  br i1 %1483, label %1485, label %1490

1485:                                             ; preds = %1484
  %1486 = load float, ptr %96, align 4, !tbaa !15
  %1487 = load float, ptr %97, align 4, !tbaa !15
  %1488 = fcmp oeq float %1486, %1487
  br i1 %1488, label %1489, label %1490

1489:                                             ; preds = %1485
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1507

1490:                                             ; preds = %1485, %1484, %1479
  %1491 = load float, ptr %98, align 4, !tbaa !15
  %1492 = fpext float %1491 to double
  %1493 = fcmp olt double %1492, 0x3D06849B86A12B9B
  br i1 %1493, label %1494, label %1495

1494:                                             ; preds = %1490
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1506

1495:                                             ; preds = %1490
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1496 unwind label %1471

1496:                                             ; preds = %1495
  %1497 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1498 = load float, ptr %96, align 4, !tbaa !15
  %1499 = load float, ptr %97, align 4, !tbaa !15
  %1500 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %100, i32 noundef %1497, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %1498, float noundef %1499, float noundef %1500)
          to label %1501 unwind label %1502

1501:                                             ; preds = %1496
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1506

1502:                                             ; preds = %1496
  %1503 = landingpad { ptr, i32 }
          cleanup
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %4, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1550

1506:                                             ; preds = %1501, %1494
  br label %1507

1507:                                             ; preds = %1506, %1489
  br label %1508

1508:                                             ; preds = %1507, %1455
  %1509 = load i8, ptr %99, align 1, !tbaa !11, !range !13, !noundef !14
  %1510 = trunc i8 %1509 to i1
  br i1 %1510, label %1511, label %1521

1511:                                             ; preds = %1508
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1512 unwind label %1471

1512:                                             ; preds = %1511
  %1513 = load float, ptr %96, align 4, !tbaa !15
  %1514 = load float, ptr %98, align 4, !tbaa !15
  %1515 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %101, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %1513, float noundef %1514, float noundef %1515)
          to label %1516 unwind label %1517

1516:                                             ; preds = %1512
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1521

1517:                                             ; preds = %1512
  %1518 = landingpad { ptr, i32 }
          cleanup
  %1519 = extractvalue { ptr, i32 } %1518, 0
  store ptr %1519, ptr %4, align 8
  %1520 = extractvalue { ptr, i32 } %1518, 1
  store i32 %1520, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1550

1521:                                             ; preds = %1516, %1508
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  %1522 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1523 = add nsw i32 %1522, 1
  store i32 %1523, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %1524 unwind label %1554

1524:                                             ; preds = %1521
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #7
  %1525 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1526 = fneg x86_fp80 %1525
  %1527 = call noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1526) #7
  store x86_fp80 %1527, ptr %104, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #7
  %1528 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1529 = fneg x86_fp80 %1528
  %1530 = invoke noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef %1529)
          to label %1531 unwind label %1558

1531:                                             ; preds = %1524
  store x86_fp80 %1530, ptr %105, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #7
  %1532 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1533 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1534 = fsub x86_fp80 %1532, %1533
  %1535 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1534)
          to label %1536 unwind label %1562

1536:                                             ; preds = %1531
  %1537 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1538 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1537)
          to label %1539 unwind label %1562

1539:                                             ; preds = %1536
  %1540 = fadd x86_fp80 0xK3FFF8000000000000000, %1538
  %1541 = fdiv x86_fp80 %1535, %1540
  store x86_fp80 %1541, ptr %106, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #7
  store i8 0, ptr %107, align 1, !tbaa !11
  %1542 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1543 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1542)
          to label %1544 unwind label %1566

1544:                                             ; preds = %1539
  br i1 %1543, label %1545, label %1570

1545:                                             ; preds = %1544
  %1546 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1547 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1546)
          to label %1548 unwind label %1566

1548:                                             ; preds = %1545
  br i1 %1547, label %1549, label %1570

1549:                                             ; preds = %1548
  store i8 1, ptr %107, align 1, !tbaa !11
  br label %1601

1550:                                             ; preds = %1517, %1502, %1471
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #7
  br label %1551

1551:                                             ; preds = %1550, %1467
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  br label %1552

1552:                                             ; preds = %1551, %1463
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %1553

1553:                                             ; preds = %1552, %1459
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  br label %5774

1554:                                             ; preds = %1521
  %1555 = landingpad { ptr, i32 }
          cleanup
  %1556 = extractvalue { ptr, i32 } %1555, 0
  store ptr %1556, ptr %4, align 8
  %1557 = extractvalue { ptr, i32 } %1555, 1
  store i32 %1557, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #7
  br label %1645

1558:                                             ; preds = %1524
  %1559 = landingpad { ptr, i32 }
          cleanup
  %1560 = extractvalue { ptr, i32 } %1559, 0
  store ptr %1560, ptr %4, align 8
  %1561 = extractvalue { ptr, i32 } %1559, 1
  store i32 %1561, ptr %5, align 4
  br label %1644

1562:                                             ; preds = %1536, %1531
  %1563 = landingpad { ptr, i32 }
          cleanup
  %1564 = extractvalue { ptr, i32 } %1563, 0
  store ptr %1564, ptr %4, align 8
  %1565 = extractvalue { ptr, i32 } %1563, 1
  store i32 %1565, ptr %5, align 4
  br label %1643

1566:                                             ; preds = %1604, %1587, %1574, %1570, %1545, %1539
  %1567 = landingpad { ptr, i32 }
          cleanup
  %1568 = extractvalue { ptr, i32 } %1567, 0
  store ptr %1568, ptr %4, align 8
  %1569 = extractvalue { ptr, i32 } %1567, 1
  store i32 %1569, ptr %5, align 4
  br label %1642

1570:                                             ; preds = %1548, %1544
  %1571 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1572 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1571)
          to label %1573 unwind label %1566

1573:                                             ; preds = %1570
  br i1 %1572, label %1583, label %1574

1574:                                             ; preds = %1573
  %1575 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1576 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1575)
          to label %1577 unwind label %1566

1577:                                             ; preds = %1574
  br i1 %1576, label %1578, label %1583

1578:                                             ; preds = %1577
  %1579 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1580 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1581 = fcmp oeq x86_fp80 %1579, %1580
  br i1 %1581, label %1582, label %1583

1582:                                             ; preds = %1578
  store i8 1, ptr %107, align 1, !tbaa !11
  br label %1600

1583:                                             ; preds = %1578, %1577, %1573
  %1584 = load x86_fp80, ptr %106, align 16, !tbaa !17
  %1585 = fcmp olt x86_fp80 %1584, 0xK3FD0B424DC35095CD800
  br i1 %1585, label %1586, label %1587

1586:                                             ; preds = %1583
  store i8 1, ptr %107, align 1, !tbaa !11
  br label %1599

1587:                                             ; preds = %1583
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1588 unwind label %1566

1588:                                             ; preds = %1587
  %1589 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1590 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1591 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1592 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1593 = fneg x86_fp80 %1592
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %108, i32 noundef %1589, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1590, x86_fp80 noundef %1591, x86_fp80 noundef %1593)
          to label %1594 unwind label %1595

1594:                                             ; preds = %1588
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1599

1595:                                             ; preds = %1588
  %1596 = landingpad { ptr, i32 }
          cleanup
  %1597 = extractvalue { ptr, i32 } %1596, 0
  store ptr %1597, ptr %4, align 8
  %1598 = extractvalue { ptr, i32 } %1596, 1
  store i32 %1598, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1642

1599:                                             ; preds = %1594, %1586
  br label %1600

1600:                                             ; preds = %1599, %1582
  br label %1601

1601:                                             ; preds = %1600, %1549
  %1602 = load i8, ptr %107, align 1, !tbaa !11, !range !13, !noundef !14
  %1603 = trunc i8 %1602 to i1
  br i1 %1603, label %1604, label %1615

1604:                                             ; preds = %1601
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1605 unwind label %1566

1605:                                             ; preds = %1604
  %1606 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1607 = load x86_fp80, ptr %106, align 16, !tbaa !17
  %1608 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1609 = fneg x86_fp80 %1608
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %109, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1606, x86_fp80 noundef %1607, x86_fp80 noundef %1609)
          to label %1610 unwind label %1611

1610:                                             ; preds = %1605
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1615

1611:                                             ; preds = %1605
  %1612 = landingpad { ptr, i32 }
          cleanup
  %1613 = extractvalue { ptr, i32 } %1612, 0
  store ptr %1613, ptr %4, align 8
  %1614 = extractvalue { ptr, i32 } %1612, 1
  store i32 %1614, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1642

1615:                                             ; preds = %1610, %1601
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  %1616 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1617 = add nsw i32 %1616, 1
  store i32 %1617, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %1618 unwind label %1646

1618:                                             ; preds = %1615
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #7
  %1619 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1620 = call noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1619) #7
  store x86_fp80 %1620, ptr %112, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #7
  %1621 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1622 = invoke noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef %1621)
          to label %1623 unwind label %1650

1623:                                             ; preds = %1618
  store x86_fp80 %1622, ptr %113, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #7
  %1624 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1625 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1626 = fsub x86_fp80 %1624, %1625
  %1627 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1626)
          to label %1628 unwind label %1654

1628:                                             ; preds = %1623
  %1629 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1630 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1629)
          to label %1631 unwind label %1654

1631:                                             ; preds = %1628
  %1632 = fadd x86_fp80 0xK3FFF8000000000000000, %1630
  %1633 = fdiv x86_fp80 %1627, %1632
  store x86_fp80 %1633, ptr %114, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #7
  store i8 0, ptr %115, align 1, !tbaa !11
  %1634 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1635 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1634)
          to label %1636 unwind label %1658

1636:                                             ; preds = %1631
  br i1 %1635, label %1637, label %1662

1637:                                             ; preds = %1636
  %1638 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1639 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1638)
          to label %1640 unwind label %1658

1640:                                             ; preds = %1637
  br i1 %1639, label %1641, label %1662

1641:                                             ; preds = %1640
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1692

1642:                                             ; preds = %1611, %1595, %1566
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #7
  br label %1643

1643:                                             ; preds = %1642, %1562
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #7
  br label %1644

1644:                                             ; preds = %1643, %1558
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %1645

1645:                                             ; preds = %1644, %1554
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %5774

1646:                                             ; preds = %1615
  %1647 = landingpad { ptr, i32 }
          cleanup
  %1648 = extractvalue { ptr, i32 } %1647, 0
  store ptr %1648, ptr %4, align 8
  %1649 = extractvalue { ptr, i32 } %1647, 1
  store i32 %1649, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #7
  br label %1735

1650:                                             ; preds = %1618
  %1651 = landingpad { ptr, i32 }
          cleanup
  %1652 = extractvalue { ptr, i32 } %1651, 0
  store ptr %1652, ptr %4, align 8
  %1653 = extractvalue { ptr, i32 } %1651, 1
  store i32 %1653, ptr %5, align 4
  br label %1734

1654:                                             ; preds = %1628, %1623
  %1655 = landingpad { ptr, i32 }
          cleanup
  %1656 = extractvalue { ptr, i32 } %1655, 0
  store ptr %1656, ptr %4, align 8
  %1657 = extractvalue { ptr, i32 } %1655, 1
  store i32 %1657, ptr %5, align 4
  br label %1733

1658:                                             ; preds = %1695, %1679, %1666, %1662, %1637, %1631
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %4, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %5, align 4
  br label %1732

1662:                                             ; preds = %1640, %1636
  %1663 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1664 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1663)
          to label %1665 unwind label %1658

1665:                                             ; preds = %1662
  br i1 %1664, label %1675, label %1666

1666:                                             ; preds = %1665
  %1667 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1668 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1667)
          to label %1669 unwind label %1658

1669:                                             ; preds = %1666
  br i1 %1668, label %1670, label %1675

1670:                                             ; preds = %1669
  %1671 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1672 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1673 = fcmp oeq x86_fp80 %1671, %1672
  br i1 %1673, label %1674, label %1675

1674:                                             ; preds = %1670
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1691

1675:                                             ; preds = %1670, %1669, %1665
  %1676 = load x86_fp80, ptr %114, align 16, !tbaa !17
  %1677 = fcmp olt x86_fp80 %1676, 0xK3FD0B424DC35095CD800
  br i1 %1677, label %1678, label %1679

1678:                                             ; preds = %1675
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1690

1679:                                             ; preds = %1675
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1680 unwind label %1658

1680:                                             ; preds = %1679
  %1681 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1682 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1683 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1684 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %116, i32 noundef %1681, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1682, x86_fp80 noundef %1683, x86_fp80 noundef %1684)
          to label %1685 unwind label %1686

1685:                                             ; preds = %1680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1690

1686:                                             ; preds = %1680
  %1687 = landingpad { ptr, i32 }
          cleanup
  %1688 = extractvalue { ptr, i32 } %1687, 0
  store ptr %1688, ptr %4, align 8
  %1689 = extractvalue { ptr, i32 } %1687, 1
  store i32 %1689, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1732

1690:                                             ; preds = %1685, %1678
  br label %1691

1691:                                             ; preds = %1690, %1674
  br label %1692

1692:                                             ; preds = %1691, %1641
  %1693 = load i8, ptr %115, align 1, !tbaa !11, !range !13, !noundef !14
  %1694 = trunc i8 %1693 to i1
  br i1 %1694, label %1695, label %1705

1695:                                             ; preds = %1692
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1696 unwind label %1658

1696:                                             ; preds = %1695
  %1697 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1698 = load x86_fp80, ptr %114, align 16, !tbaa !17
  %1699 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %117, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1697, x86_fp80 noundef %1698, x86_fp80 noundef %1699)
          to label %1700 unwind label %1701

1700:                                             ; preds = %1696
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1705

1701:                                             ; preds = %1696
  %1702 = landingpad { ptr, i32 }
          cleanup
  %1703 = extractvalue { ptr, i32 } %1702, 0
  store ptr %1703, ptr %4, align 8
  %1704 = extractvalue { ptr, i32 } %1702, 1
  store i32 %1704, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1732

1705:                                             ; preds = %1700, %1692
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  %1706 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1707 = add nsw i32 %1706, 1
  store i32 %1707, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %1708 unwind label %1736

1708:                                             ; preds = %1705
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #7
  %1709 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1710 = call noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1709) #7
  store x86_fp80 %1710, ptr %120, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #7
  %1711 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1712 = invoke noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef %1711)
          to label %1713 unwind label %1740

1713:                                             ; preds = %1708
  store x86_fp80 %1712, ptr %121, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #7
  %1714 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1715 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1716 = fsub x86_fp80 %1714, %1715
  %1717 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1716)
          to label %1718 unwind label %1744

1718:                                             ; preds = %1713
  %1719 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1720 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1719)
          to label %1721 unwind label %1744

1721:                                             ; preds = %1718
  %1722 = fadd x86_fp80 0xK3FFF8000000000000000, %1720
  %1723 = fdiv x86_fp80 %1717, %1722
  store x86_fp80 %1723, ptr %122, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #7
  store i8 0, ptr %123, align 1, !tbaa !11
  %1724 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1725 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1724)
          to label %1726 unwind label %1748

1726:                                             ; preds = %1721
  br i1 %1725, label %1727, label %1752

1727:                                             ; preds = %1726
  %1728 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1729 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1728)
          to label %1730 unwind label %1748

1730:                                             ; preds = %1727
  br i1 %1729, label %1731, label %1752

1731:                                             ; preds = %1730
  store i8 1, ptr %123, align 1, !tbaa !11
  br label %1782

1732:                                             ; preds = %1701, %1686, %1658
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #7
  br label %1733

1733:                                             ; preds = %1732, %1654
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #7
  br label %1734

1734:                                             ; preds = %1733, %1650
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %1735

1735:                                             ; preds = %1734, %1646
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  br label %5774

1736:                                             ; preds = %1705
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %4, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #7
  br label %1824

1740:                                             ; preds = %1708
  %1741 = landingpad { ptr, i32 }
          cleanup
  %1742 = extractvalue { ptr, i32 } %1741, 0
  store ptr %1742, ptr %4, align 8
  %1743 = extractvalue { ptr, i32 } %1741, 1
  store i32 %1743, ptr %5, align 4
  br label %1823

1744:                                             ; preds = %1718, %1713
  %1745 = landingpad { ptr, i32 }
          cleanup
  %1746 = extractvalue { ptr, i32 } %1745, 0
  store ptr %1746, ptr %4, align 8
  %1747 = extractvalue { ptr, i32 } %1745, 1
  store i32 %1747, ptr %5, align 4
  br label %1822

1748:                                             ; preds = %1785, %1769, %1756, %1752, %1727, %1721
  %1749 = landingpad { ptr, i32 }
          cleanup
  %1750 = extractvalue { ptr, i32 } %1749, 0
  store ptr %1750, ptr %4, align 8
  %1751 = extractvalue { ptr, i32 } %1749, 1
  store i32 %1751, ptr %5, align 4
  br label %1821

1752:                                             ; preds = %1730, %1726
  %1753 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1754 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1753)
          to label %1755 unwind label %1748

1755:                                             ; preds = %1752
  br i1 %1754, label %1765, label %1756

1756:                                             ; preds = %1755
  %1757 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1758 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1757)
          to label %1759 unwind label %1748

1759:                                             ; preds = %1756
  br i1 %1758, label %1760, label %1765

1760:                                             ; preds = %1759
  %1761 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1762 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1763 = fcmp oeq x86_fp80 %1761, %1762
  br i1 %1763, label %1764, label %1765

1764:                                             ; preds = %1760
  store i8 1, ptr %123, align 1, !tbaa !11
  br label %1781

1765:                                             ; preds = %1760, %1759, %1755
  %1766 = load x86_fp80, ptr %122, align 16, !tbaa !17
  %1767 = fcmp olt x86_fp80 %1766, 0xK3FD0B424DC35095CD800
  br i1 %1767, label %1768, label %1769

1768:                                             ; preds = %1765
  store i8 1, ptr %123, align 1, !tbaa !11
  br label %1780

1769:                                             ; preds = %1765
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1770 unwind label %1748

1770:                                             ; preds = %1769
  %1771 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1772 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1773 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1774 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %124, i32 noundef %1771, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1772, x86_fp80 noundef %1773, x86_fp80 noundef %1774)
          to label %1775 unwind label %1776

1775:                                             ; preds = %1770
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1780

1776:                                             ; preds = %1770
  %1777 = landingpad { ptr, i32 }
          cleanup
  %1778 = extractvalue { ptr, i32 } %1777, 0
  store ptr %1778, ptr %4, align 8
  %1779 = extractvalue { ptr, i32 } %1777, 1
  store i32 %1779, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1821

1780:                                             ; preds = %1775, %1768
  br label %1781

1781:                                             ; preds = %1780, %1764
  br label %1782

1782:                                             ; preds = %1781, %1731
  %1783 = load i8, ptr %123, align 1, !tbaa !11, !range !13, !noundef !14
  %1784 = trunc i8 %1783 to i1
  br i1 %1784, label %1785, label %1795

1785:                                             ; preds = %1782
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1786 unwind label %1748

1786:                                             ; preds = %1785
  %1787 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1788 = load x86_fp80, ptr %122, align 16, !tbaa !17
  %1789 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %125, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1787, x86_fp80 noundef %1788, x86_fp80 noundef %1789)
          to label %1790 unwind label %1791

1790:                                             ; preds = %1786
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1795

1791:                                             ; preds = %1786
  %1792 = landingpad { ptr, i32 }
          cleanup
  %1793 = extractvalue { ptr, i32 } %1792, 0
  store ptr %1793, ptr %4, align 8
  %1794 = extractvalue { ptr, i32 } %1792, 1
  store i32 %1794, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1821

1795:                                             ; preds = %1790, %1782
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  %1796 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1797 = add nsw i32 %1796, 1
  store i32 %1797, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %127) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %1798 unwind label %1825

1798:                                             ; preds = %1795
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #7
  %1799 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #7
  store double %1799, ptr %128, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #7
  %1800 = call double @llvm.ceil.f64(double 0.000000e+00)
  store double %1800, ptr %129, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #7
  %1801 = load double, ptr %128, align 8, !tbaa !9
  %1802 = load double, ptr %129, align 8, !tbaa !9
  %1803 = fsub double %1801, %1802
  %1804 = invoke noundef double @_ZSt3absd(double noundef %1803)
          to label %1805 unwind label %1829

1805:                                             ; preds = %1798
  %1806 = load double, ptr %129, align 8, !tbaa !9
  %1807 = invoke noundef double @_ZSt3absd(double noundef %1806)
          to label %1808 unwind label %1829

1808:                                             ; preds = %1805
  %1809 = fadd double 1.000000e+00, %1807
  %1810 = fdiv double %1804, %1809
  store double %1810, ptr %130, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #7
  store i8 0, ptr %131, align 1, !tbaa !11
  %1811 = load double, ptr %128, align 8, !tbaa !9
  %1812 = fpext double %1811 to x86_fp80
  %1813 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1812)
          to label %1814 unwind label %1833

1814:                                             ; preds = %1808
  br i1 %1813, label %1815, label %1837

1815:                                             ; preds = %1814
  %1816 = load double, ptr %129, align 8, !tbaa !9
  %1817 = fpext double %1816 to x86_fp80
  %1818 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1817)
          to label %1819 unwind label %1833

1819:                                             ; preds = %1815
  br i1 %1818, label %1820, label %1837

1820:                                             ; preds = %1819
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1868

1821:                                             ; preds = %1791, %1776, %1748
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #7
  br label %1822

1822:                                             ; preds = %1821, %1744
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #7
  br label %1823

1823:                                             ; preds = %1822, %1740
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %1824

1824:                                             ; preds = %1823, %1736
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  br label %5774

1825:                                             ; preds = %1795
  %1826 = landingpad { ptr, i32 }
          cleanup
  %1827 = extractvalue { ptr, i32 } %1826, 0
  store ptr %1827, ptr %4, align 8
  %1828 = extractvalue { ptr, i32 } %1826, 1
  store i32 %1828, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #7
  br label %1908

1829:                                             ; preds = %1805, %1798
  %1830 = landingpad { ptr, i32 }
          cleanup
  %1831 = extractvalue { ptr, i32 } %1830, 0
  store ptr %1831, ptr %4, align 8
  %1832 = extractvalue { ptr, i32 } %1830, 1
  store i32 %1832, ptr %5, align 4
  br label %1907

1833:                                             ; preds = %1871, %1856, %1842, %1837, %1815, %1808
  %1834 = landingpad { ptr, i32 }
          cleanup
  %1835 = extractvalue { ptr, i32 } %1834, 0
  store ptr %1835, ptr %4, align 8
  %1836 = extractvalue { ptr, i32 } %1834, 1
  store i32 %1836, ptr %5, align 4
  br label %1906

1837:                                             ; preds = %1819, %1814
  %1838 = load double, ptr %128, align 8, !tbaa !9
  %1839 = fpext double %1838 to x86_fp80
  %1840 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1839)
          to label %1841 unwind label %1833

1841:                                             ; preds = %1837
  br i1 %1840, label %1852, label %1842

1842:                                             ; preds = %1841
  %1843 = load double, ptr %128, align 8, !tbaa !9
  %1844 = fpext double %1843 to x86_fp80
  %1845 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1844)
          to label %1846 unwind label %1833

1846:                                             ; preds = %1842
  br i1 %1845, label %1847, label %1852

1847:                                             ; preds = %1846
  %1848 = load double, ptr %128, align 8, !tbaa !9
  %1849 = load double, ptr %129, align 8, !tbaa !9
  %1850 = fcmp oeq double %1848, %1849
  br i1 %1850, label %1851, label %1852

1851:                                             ; preds = %1847
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1867

1852:                                             ; preds = %1847, %1846, %1841
  %1853 = load double, ptr %130, align 8, !tbaa !9
  %1854 = fcmp olt double %1853, 0x3D06849B86A12B9B
  br i1 %1854, label %1855, label %1856

1855:                                             ; preds = %1852
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1866

1856:                                             ; preds = %1852
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1857 unwind label %1833

1857:                                             ; preds = %1856
  %1858 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1859 = load double, ptr %128, align 8, !tbaa !9
  %1860 = load double, ptr %129, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %132, i32 noundef %1858, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1859, double noundef %1860, double noundef 0.000000e+00)
          to label %1861 unwind label %1862

1861:                                             ; preds = %1857
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1866

1862:                                             ; preds = %1857
  %1863 = landingpad { ptr, i32 }
          cleanup
  %1864 = extractvalue { ptr, i32 } %1863, 0
  store ptr %1864, ptr %4, align 8
  %1865 = extractvalue { ptr, i32 } %1863, 1
  store i32 %1865, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1906

1866:                                             ; preds = %1861, %1855
  br label %1867

1867:                                             ; preds = %1866, %1851
  br label %1868

1868:                                             ; preds = %1867, %1820
  %1869 = load i8, ptr %131, align 1, !tbaa !11, !range !13, !noundef !14
  %1870 = trunc i8 %1869 to i1
  br i1 %1870, label %1871, label %1880

1871:                                             ; preds = %1868
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1872 unwind label %1833

1872:                                             ; preds = %1871
  %1873 = load double, ptr %128, align 8, !tbaa !9
  %1874 = load double, ptr %130, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %133, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1873, double noundef %1874, double noundef 0.000000e+00)
          to label %1875 unwind label %1876

1875:                                             ; preds = %1872
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1880

1876:                                             ; preds = %1872
  %1877 = landingpad { ptr, i32 }
          cleanup
  %1878 = extractvalue { ptr, i32 } %1877, 0
  store ptr %1878, ptr %4, align 8
  %1879 = extractvalue { ptr, i32 } %1877, 1
  store i32 %1879, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1906

1880:                                             ; preds = %1875, %1868
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  %1881 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1882 = add nsw i32 %1881, 1
  store i32 %1882, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %135) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %1883 unwind label %1909

1883:                                             ; preds = %1880
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #7
  %1884 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #7
  store double %1884, ptr %136, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #7
  %1885 = call double @llvm.ceil.f64(double -0.000000e+00)
  store double %1885, ptr %137, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #7
  %1886 = load double, ptr %136, align 8, !tbaa !9
  %1887 = load double, ptr %137, align 8, !tbaa !9
  %1888 = fsub double %1886, %1887
  %1889 = invoke noundef double @_ZSt3absd(double noundef %1888)
          to label %1890 unwind label %1913

1890:                                             ; preds = %1883
  %1891 = load double, ptr %137, align 8, !tbaa !9
  %1892 = invoke noundef double @_ZSt3absd(double noundef %1891)
          to label %1893 unwind label %1913

1893:                                             ; preds = %1890
  %1894 = fadd double 1.000000e+00, %1892
  %1895 = fdiv double %1889, %1894
  store double %1895, ptr %138, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #7
  store i8 0, ptr %139, align 1, !tbaa !11
  %1896 = load double, ptr %136, align 8, !tbaa !9
  %1897 = fpext double %1896 to x86_fp80
  %1898 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1897)
          to label %1899 unwind label %1917

1899:                                             ; preds = %1893
  br i1 %1898, label %1900, label %1921

1900:                                             ; preds = %1899
  %1901 = load double, ptr %137, align 8, !tbaa !9
  %1902 = fpext double %1901 to x86_fp80
  %1903 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1902)
          to label %1904 unwind label %1917

1904:                                             ; preds = %1900
  br i1 %1903, label %1905, label %1921

1905:                                             ; preds = %1904
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1952

1906:                                             ; preds = %1876, %1862, %1833
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #7
  br label %1907

1907:                                             ; preds = %1906, %1829
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %1908

1908:                                             ; preds = %1907, %1825
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  br label %5774

1909:                                             ; preds = %1880
  %1910 = landingpad { ptr, i32 }
          cleanup
  %1911 = extractvalue { ptr, i32 } %1910, 0
  store ptr %1911, ptr %4, align 8
  %1912 = extractvalue { ptr, i32 } %1910, 1
  store i32 %1912, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #7
  br label %1992

1913:                                             ; preds = %1890, %1883
  %1914 = landingpad { ptr, i32 }
          cleanup
  %1915 = extractvalue { ptr, i32 } %1914, 0
  store ptr %1915, ptr %4, align 8
  %1916 = extractvalue { ptr, i32 } %1914, 1
  store i32 %1916, ptr %5, align 4
  br label %1991

1917:                                             ; preds = %1955, %1940, %1926, %1921, %1900, %1893
  %1918 = landingpad { ptr, i32 }
          cleanup
  %1919 = extractvalue { ptr, i32 } %1918, 0
  store ptr %1919, ptr %4, align 8
  %1920 = extractvalue { ptr, i32 } %1918, 1
  store i32 %1920, ptr %5, align 4
  br label %1990

1921:                                             ; preds = %1904, %1899
  %1922 = load double, ptr %136, align 8, !tbaa !9
  %1923 = fpext double %1922 to x86_fp80
  %1924 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1923)
          to label %1925 unwind label %1917

1925:                                             ; preds = %1921
  br i1 %1924, label %1936, label %1926

1926:                                             ; preds = %1925
  %1927 = load double, ptr %136, align 8, !tbaa !9
  %1928 = fpext double %1927 to x86_fp80
  %1929 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1928)
          to label %1930 unwind label %1917

1930:                                             ; preds = %1926
  br i1 %1929, label %1931, label %1936

1931:                                             ; preds = %1930
  %1932 = load double, ptr %136, align 8, !tbaa !9
  %1933 = load double, ptr %137, align 8, !tbaa !9
  %1934 = fcmp oeq double %1932, %1933
  br i1 %1934, label %1935, label %1936

1935:                                             ; preds = %1931
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1951

1936:                                             ; preds = %1931, %1930, %1925
  %1937 = load double, ptr %138, align 8, !tbaa !9
  %1938 = fcmp olt double %1937, 0x3D06849B86A12B9B
  br i1 %1938, label %1939, label %1940

1939:                                             ; preds = %1936
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1950

1940:                                             ; preds = %1936
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1941 unwind label %1917

1941:                                             ; preds = %1940
  %1942 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1943 = load double, ptr %136, align 8, !tbaa !9
  %1944 = load double, ptr %137, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %140, i32 noundef %1942, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1943, double noundef %1944, double noundef -0.000000e+00)
          to label %1945 unwind label %1946

1945:                                             ; preds = %1941
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1950

1946:                                             ; preds = %1941
  %1947 = landingpad { ptr, i32 }
          cleanup
  %1948 = extractvalue { ptr, i32 } %1947, 0
  store ptr %1948, ptr %4, align 8
  %1949 = extractvalue { ptr, i32 } %1947, 1
  store i32 %1949, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1990

1950:                                             ; preds = %1945, %1939
  br label %1951

1951:                                             ; preds = %1950, %1935
  br label %1952

1952:                                             ; preds = %1951, %1905
  %1953 = load i8, ptr %139, align 1, !tbaa !11, !range !13, !noundef !14
  %1954 = trunc i8 %1953 to i1
  br i1 %1954, label %1955, label %1964

1955:                                             ; preds = %1952
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1956 unwind label %1917

1956:                                             ; preds = %1955
  %1957 = load double, ptr %136, align 8, !tbaa !9
  %1958 = load double, ptr %138, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %141, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1957, double noundef %1958, double noundef -0.000000e+00)
          to label %1959 unwind label %1960

1959:                                             ; preds = %1956
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1964

1960:                                             ; preds = %1956
  %1961 = landingpad { ptr, i32 }
          cleanup
  %1962 = extractvalue { ptr, i32 } %1961, 0
  store ptr %1962, ptr %4, align 8
  %1963 = extractvalue { ptr, i32 } %1961, 1
  store i32 %1963, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1990

1964:                                             ; preds = %1959, %1952
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  %1965 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1966 = add nsw i32 %1965, 1
  store i32 %1966, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %1967 unwind label %1993

1967:                                             ; preds = %1964
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #7
  %1968 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #7
  store double %1968, ptr %144, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #7
  %1969 = call double @llvm.ceil.f64(double 4.200000e+00)
  store double %1969, ptr %145, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #7
  %1970 = load double, ptr %144, align 8, !tbaa !9
  %1971 = load double, ptr %145, align 8, !tbaa !9
  %1972 = fsub double %1970, %1971
  %1973 = invoke noundef double @_ZSt3absd(double noundef %1972)
          to label %1974 unwind label %1997

1974:                                             ; preds = %1967
  %1975 = load double, ptr %145, align 8, !tbaa !9
  %1976 = invoke noundef double @_ZSt3absd(double noundef %1975)
          to label %1977 unwind label %1997

1977:                                             ; preds = %1974
  %1978 = fadd double 1.000000e+00, %1976
  %1979 = fdiv double %1973, %1978
  store double %1979, ptr %146, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #7
  store i8 0, ptr %147, align 1, !tbaa !11
  %1980 = load double, ptr %144, align 8, !tbaa !9
  %1981 = fpext double %1980 to x86_fp80
  %1982 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1981)
          to label %1983 unwind label %2001

1983:                                             ; preds = %1977
  br i1 %1982, label %1984, label %2005

1984:                                             ; preds = %1983
  %1985 = load double, ptr %145, align 8, !tbaa !9
  %1986 = fpext double %1985 to x86_fp80
  %1987 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1986)
          to label %1988 unwind label %2001

1988:                                             ; preds = %1984
  br i1 %1987, label %1989, label %2005

1989:                                             ; preds = %1988
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %2036

1990:                                             ; preds = %1960, %1946, %1917
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  br label %1991

1991:                                             ; preds = %1990, %1913
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  br label %1992

1992:                                             ; preds = %1991, %1909
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  br label %5774

1993:                                             ; preds = %1964
  %1994 = landingpad { ptr, i32 }
          cleanup
  %1995 = extractvalue { ptr, i32 } %1994, 0
  store ptr %1995, ptr %4, align 8
  %1996 = extractvalue { ptr, i32 } %1994, 1
  store i32 %1996, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #7
  br label %2076

1997:                                             ; preds = %1974, %1967
  %1998 = landingpad { ptr, i32 }
          cleanup
  %1999 = extractvalue { ptr, i32 } %1998, 0
  store ptr %1999, ptr %4, align 8
  %2000 = extractvalue { ptr, i32 } %1998, 1
  store i32 %2000, ptr %5, align 4
  br label %2075

2001:                                             ; preds = %2039, %2024, %2010, %2005, %1984, %1977
  %2002 = landingpad { ptr, i32 }
          cleanup
  %2003 = extractvalue { ptr, i32 } %2002, 0
  store ptr %2003, ptr %4, align 8
  %2004 = extractvalue { ptr, i32 } %2002, 1
  store i32 %2004, ptr %5, align 4
  br label %2074

2005:                                             ; preds = %1988, %1983
  %2006 = load double, ptr %144, align 8, !tbaa !9
  %2007 = fpext double %2006 to x86_fp80
  %2008 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2007)
          to label %2009 unwind label %2001

2009:                                             ; preds = %2005
  br i1 %2008, label %2020, label %2010

2010:                                             ; preds = %2009
  %2011 = load double, ptr %144, align 8, !tbaa !9
  %2012 = fpext double %2011 to x86_fp80
  %2013 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2012)
          to label %2014 unwind label %2001

2014:                                             ; preds = %2010
  br i1 %2013, label %2015, label %2020

2015:                                             ; preds = %2014
  %2016 = load double, ptr %144, align 8, !tbaa !9
  %2017 = load double, ptr %145, align 8, !tbaa !9
  %2018 = fcmp oeq double %2016, %2017
  br i1 %2018, label %2019, label %2020

2019:                                             ; preds = %2015
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %2035

2020:                                             ; preds = %2015, %2014, %2009
  %2021 = load double, ptr %146, align 8, !tbaa !9
  %2022 = fcmp olt double %2021, 0x3D06849B86A12B9B
  br i1 %2022, label %2023, label %2024

2023:                                             ; preds = %2020
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %2034

2024:                                             ; preds = %2020
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %2025 unwind label %2001

2025:                                             ; preds = %2024
  %2026 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2027 = load double, ptr %144, align 8, !tbaa !9
  %2028 = load double, ptr %145, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %148, i32 noundef %2026, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2027, double noundef %2028, double noundef 4.200000e+00)
          to label %2029 unwind label %2030

2029:                                             ; preds = %2025
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %2034

2030:                                             ; preds = %2025
  %2031 = landingpad { ptr, i32 }
          cleanup
  %2032 = extractvalue { ptr, i32 } %2031, 0
  store ptr %2032, ptr %4, align 8
  %2033 = extractvalue { ptr, i32 } %2031, 1
  store i32 %2033, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %2074

2034:                                             ; preds = %2029, %2023
  br label %2035

2035:                                             ; preds = %2034, %2019
  br label %2036

2036:                                             ; preds = %2035, %1989
  %2037 = load i8, ptr %147, align 1, !tbaa !11, !range !13, !noundef !14
  %2038 = trunc i8 %2037 to i1
  br i1 %2038, label %2039, label %2048

2039:                                             ; preds = %2036
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %2040 unwind label %2001

2040:                                             ; preds = %2039
  %2041 = load double, ptr %144, align 8, !tbaa !9
  %2042 = load double, ptr %146, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %149, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2041, double noundef %2042, double noundef 4.200000e+00)
          to label %2043 unwind label %2044

2043:                                             ; preds = %2040
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %2048

2044:                                             ; preds = %2040
  %2045 = landingpad { ptr, i32 }
          cleanup
  %2046 = extractvalue { ptr, i32 } %2045, 0
  store ptr %2046, ptr %4, align 8
  %2047 = extractvalue { ptr, i32 } %2045, 1
  store i32 %2047, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %2074

2048:                                             ; preds = %2043, %2036
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  %2049 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2050 = add nsw i32 %2049, 1
  store i32 %2050, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %150) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %151) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %2051 unwind label %2077

2051:                                             ; preds = %2048
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #7
  %2052 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #7
  store double %2052, ptr %152, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #7
  %2053 = call double @llvm.ceil.f64(double 4.500000e+00)
  store double %2053, ptr %153, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #7
  %2054 = load double, ptr %152, align 8, !tbaa !9
  %2055 = load double, ptr %153, align 8, !tbaa !9
  %2056 = fsub double %2054, %2055
  %2057 = invoke noundef double @_ZSt3absd(double noundef %2056)
          to label %2058 unwind label %2081

2058:                                             ; preds = %2051
  %2059 = load double, ptr %153, align 8, !tbaa !9
  %2060 = invoke noundef double @_ZSt3absd(double noundef %2059)
          to label %2061 unwind label %2081

2061:                                             ; preds = %2058
  %2062 = fadd double 1.000000e+00, %2060
  %2063 = fdiv double %2057, %2062
  store double %2063, ptr %154, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #7
  store i8 0, ptr %155, align 1, !tbaa !11
  %2064 = load double, ptr %152, align 8, !tbaa !9
  %2065 = fpext double %2064 to x86_fp80
  %2066 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2065)
          to label %2067 unwind label %2085

2067:                                             ; preds = %2061
  br i1 %2066, label %2068, label %2089

2068:                                             ; preds = %2067
  %2069 = load double, ptr %153, align 8, !tbaa !9
  %2070 = fpext double %2069 to x86_fp80
  %2071 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2070)
          to label %2072 unwind label %2085

2072:                                             ; preds = %2068
  br i1 %2071, label %2073, label %2089

2073:                                             ; preds = %2072
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %2120

2074:                                             ; preds = %2044, %2030, %2001
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  br label %2075

2075:                                             ; preds = %2074, %1997
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %2076

2076:                                             ; preds = %2075, %1993
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  br label %5774

2077:                                             ; preds = %2048
  %2078 = landingpad { ptr, i32 }
          cleanup
  %2079 = extractvalue { ptr, i32 } %2078, 0
  store ptr %2079, ptr %4, align 8
  %2080 = extractvalue { ptr, i32 } %2078, 1
  store i32 %2080, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #7
  br label %2160

2081:                                             ; preds = %2058, %2051
  %2082 = landingpad { ptr, i32 }
          cleanup
  %2083 = extractvalue { ptr, i32 } %2082, 0
  store ptr %2083, ptr %4, align 8
  %2084 = extractvalue { ptr, i32 } %2082, 1
  store i32 %2084, ptr %5, align 4
  br label %2159

2085:                                             ; preds = %2123, %2108, %2094, %2089, %2068, %2061
  %2086 = landingpad { ptr, i32 }
          cleanup
  %2087 = extractvalue { ptr, i32 } %2086, 0
  store ptr %2087, ptr %4, align 8
  %2088 = extractvalue { ptr, i32 } %2086, 1
  store i32 %2088, ptr %5, align 4
  br label %2158

2089:                                             ; preds = %2072, %2067
  %2090 = load double, ptr %152, align 8, !tbaa !9
  %2091 = fpext double %2090 to x86_fp80
  %2092 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2091)
          to label %2093 unwind label %2085

2093:                                             ; preds = %2089
  br i1 %2092, label %2104, label %2094

2094:                                             ; preds = %2093
  %2095 = load double, ptr %152, align 8, !tbaa !9
  %2096 = fpext double %2095 to x86_fp80
  %2097 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2096)
          to label %2098 unwind label %2085

2098:                                             ; preds = %2094
  br i1 %2097, label %2099, label %2104

2099:                                             ; preds = %2098
  %2100 = load double, ptr %152, align 8, !tbaa !9
  %2101 = load double, ptr %153, align 8, !tbaa !9
  %2102 = fcmp oeq double %2100, %2101
  br i1 %2102, label %2103, label %2104

2103:                                             ; preds = %2099
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %2119

2104:                                             ; preds = %2099, %2098, %2093
  %2105 = load double, ptr %154, align 8, !tbaa !9
  %2106 = fcmp olt double %2105, 0x3D06849B86A12B9B
  br i1 %2106, label %2107, label %2108

2107:                                             ; preds = %2104
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %2118

2108:                                             ; preds = %2104
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %2109 unwind label %2085

2109:                                             ; preds = %2108
  %2110 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2111 = load double, ptr %152, align 8, !tbaa !9
  %2112 = load double, ptr %153, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %156, i32 noundef %2110, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2111, double noundef %2112, double noundef 4.500000e+00)
          to label %2113 unwind label %2114

2113:                                             ; preds = %2109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %2118

2114:                                             ; preds = %2109
  %2115 = landingpad { ptr, i32 }
          cleanup
  %2116 = extractvalue { ptr, i32 } %2115, 0
  store ptr %2116, ptr %4, align 8
  %2117 = extractvalue { ptr, i32 } %2115, 1
  store i32 %2117, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %2158

2118:                                             ; preds = %2113, %2107
  br label %2119

2119:                                             ; preds = %2118, %2103
  br label %2120

2120:                                             ; preds = %2119, %2073
  %2121 = load i8, ptr %155, align 1, !tbaa !11, !range !13, !noundef !14
  %2122 = trunc i8 %2121 to i1
  br i1 %2122, label %2123, label %2132

2123:                                             ; preds = %2120
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %2124 unwind label %2085

2124:                                             ; preds = %2123
  %2125 = load double, ptr %152, align 8, !tbaa !9
  %2126 = load double, ptr %154, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %157, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2125, double noundef %2126, double noundef 4.500000e+00)
          to label %2127 unwind label %2128

2127:                                             ; preds = %2124
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %2132

2128:                                             ; preds = %2124
  %2129 = landingpad { ptr, i32 }
          cleanup
  %2130 = extractvalue { ptr, i32 } %2129, 0
  store ptr %2130, ptr %4, align 8
  %2131 = extractvalue { ptr, i32 } %2129, 1
  store i32 %2131, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %2158

2132:                                             ; preds = %2127, %2120
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #7
  %2133 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2134 = add nsw i32 %2133, 1
  store i32 %2134, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %2135 unwind label %2161

2135:                                             ; preds = %2132
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #7
  %2136 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #7
  store double %2136, ptr %160, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #7
  %2137 = call double @llvm.ceil.f64(double 4.700000e+00)
  store double %2137, ptr %161, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #7
  %2138 = load double, ptr %160, align 8, !tbaa !9
  %2139 = load double, ptr %161, align 8, !tbaa !9
  %2140 = fsub double %2138, %2139
  %2141 = invoke noundef double @_ZSt3absd(double noundef %2140)
          to label %2142 unwind label %2165

2142:                                             ; preds = %2135
  %2143 = load double, ptr %161, align 8, !tbaa !9
  %2144 = invoke noundef double @_ZSt3absd(double noundef %2143)
          to label %2145 unwind label %2165

2145:                                             ; preds = %2142
  %2146 = fadd double 1.000000e+00, %2144
  %2147 = fdiv double %2141, %2146
  store double %2147, ptr %162, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #7
  store i8 0, ptr %163, align 1, !tbaa !11
  %2148 = load double, ptr %160, align 8, !tbaa !9
  %2149 = fpext double %2148 to x86_fp80
  %2150 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2149)
          to label %2151 unwind label %2169

2151:                                             ; preds = %2145
  br i1 %2150, label %2152, label %2173

2152:                                             ; preds = %2151
  %2153 = load double, ptr %161, align 8, !tbaa !9
  %2154 = fpext double %2153 to x86_fp80
  %2155 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2154)
          to label %2156 unwind label %2169

2156:                                             ; preds = %2152
  br i1 %2155, label %2157, label %2173

2157:                                             ; preds = %2156
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %2204

2158:                                             ; preds = %2128, %2114, %2085
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #7
  br label %2159

2159:                                             ; preds = %2158, %2081
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  br label %2160

2160:                                             ; preds = %2159, %2077
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #7
  br label %5774

2161:                                             ; preds = %2132
  %2162 = landingpad { ptr, i32 }
          cleanup
  %2163 = extractvalue { ptr, i32 } %2162, 0
  store ptr %2163, ptr %4, align 8
  %2164 = extractvalue { ptr, i32 } %2162, 1
  store i32 %2164, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #7
  br label %2244

2165:                                             ; preds = %2142, %2135
  %2166 = landingpad { ptr, i32 }
          cleanup
  %2167 = extractvalue { ptr, i32 } %2166, 0
  store ptr %2167, ptr %4, align 8
  %2168 = extractvalue { ptr, i32 } %2166, 1
  store i32 %2168, ptr %5, align 4
  br label %2243

2169:                                             ; preds = %2207, %2192, %2178, %2173, %2152, %2145
  %2170 = landingpad { ptr, i32 }
          cleanup
  %2171 = extractvalue { ptr, i32 } %2170, 0
  store ptr %2171, ptr %4, align 8
  %2172 = extractvalue { ptr, i32 } %2170, 1
  store i32 %2172, ptr %5, align 4
  br label %2242

2173:                                             ; preds = %2156, %2151
  %2174 = load double, ptr %160, align 8, !tbaa !9
  %2175 = fpext double %2174 to x86_fp80
  %2176 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2175)
          to label %2177 unwind label %2169

2177:                                             ; preds = %2173
  br i1 %2176, label %2188, label %2178

2178:                                             ; preds = %2177
  %2179 = load double, ptr %160, align 8, !tbaa !9
  %2180 = fpext double %2179 to x86_fp80
  %2181 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2180)
          to label %2182 unwind label %2169

2182:                                             ; preds = %2178
  br i1 %2181, label %2183, label %2188

2183:                                             ; preds = %2182
  %2184 = load double, ptr %160, align 8, !tbaa !9
  %2185 = load double, ptr %161, align 8, !tbaa !9
  %2186 = fcmp oeq double %2184, %2185
  br i1 %2186, label %2187, label %2188

2187:                                             ; preds = %2183
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %2203

2188:                                             ; preds = %2183, %2182, %2177
  %2189 = load double, ptr %162, align 8, !tbaa !9
  %2190 = fcmp olt double %2189, 0x3D06849B86A12B9B
  br i1 %2190, label %2191, label %2192

2191:                                             ; preds = %2188
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %2202

2192:                                             ; preds = %2188
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %2193 unwind label %2169

2193:                                             ; preds = %2192
  %2194 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2195 = load double, ptr %160, align 8, !tbaa !9
  %2196 = load double, ptr %161, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %164, i32 noundef %2194, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2195, double noundef %2196, double noundef 4.700000e+00)
          to label %2197 unwind label %2198

2197:                                             ; preds = %2193
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %2202

2198:                                             ; preds = %2193
  %2199 = landingpad { ptr, i32 }
          cleanup
  %2200 = extractvalue { ptr, i32 } %2199, 0
  store ptr %2200, ptr %4, align 8
  %2201 = extractvalue { ptr, i32 } %2199, 1
  store i32 %2201, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %2242

2202:                                             ; preds = %2197, %2191
  br label %2203

2203:                                             ; preds = %2202, %2187
  br label %2204

2204:                                             ; preds = %2203, %2157
  %2205 = load i8, ptr %163, align 1, !tbaa !11, !range !13, !noundef !14
  %2206 = trunc i8 %2205 to i1
  br i1 %2206, label %2207, label %2216

2207:                                             ; preds = %2204
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %2208 unwind label %2169

2208:                                             ; preds = %2207
  %2209 = load double, ptr %160, align 8, !tbaa !9
  %2210 = load double, ptr %162, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %165, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2209, double noundef %2210, double noundef 4.700000e+00)
          to label %2211 unwind label %2212

2211:                                             ; preds = %2208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %2216

2212:                                             ; preds = %2208
  %2213 = landingpad { ptr, i32 }
          cleanup
  %2214 = extractvalue { ptr, i32 } %2213, 0
  store ptr %2214, ptr %4, align 8
  %2215 = extractvalue { ptr, i32 } %2213, 1
  store i32 %2215, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %2242

2216:                                             ; preds = %2211, %2204
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  %2217 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2218 = add nsw i32 %2217, 1
  store i32 %2218, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %167)
          to label %2219 unwind label %2245

2219:                                             ; preds = %2216
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #7
  %2220 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #7
  store double %2220, ptr %168, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #7
  %2221 = call double @llvm.ceil.f64(double 5.000000e+00)
  store double %2221, ptr %169, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #7
  %2222 = load double, ptr %168, align 8, !tbaa !9
  %2223 = load double, ptr %169, align 8, !tbaa !9
  %2224 = fsub double %2222, %2223
  %2225 = invoke noundef double @_ZSt3absd(double noundef %2224)
          to label %2226 unwind label %2249

2226:                                             ; preds = %2219
  %2227 = load double, ptr %169, align 8, !tbaa !9
  %2228 = invoke noundef double @_ZSt3absd(double noundef %2227)
          to label %2229 unwind label %2249

2229:                                             ; preds = %2226
  %2230 = fadd double 1.000000e+00, %2228
  %2231 = fdiv double %2225, %2230
  store double %2231, ptr %170, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #7
  store i8 0, ptr %171, align 1, !tbaa !11
  %2232 = load double, ptr %168, align 8, !tbaa !9
  %2233 = fpext double %2232 to x86_fp80
  %2234 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2233)
          to label %2235 unwind label %2253

2235:                                             ; preds = %2229
  br i1 %2234, label %2236, label %2257

2236:                                             ; preds = %2235
  %2237 = load double, ptr %169, align 8, !tbaa !9
  %2238 = fpext double %2237 to x86_fp80
  %2239 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2238)
          to label %2240 unwind label %2253

2240:                                             ; preds = %2236
  br i1 %2239, label %2241, label %2257

2241:                                             ; preds = %2240
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2288

2242:                                             ; preds = %2212, %2198, %2169
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  br label %2243

2243:                                             ; preds = %2242, %2165
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  br label %2244

2244:                                             ; preds = %2243, %2161
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  br label %5774

2245:                                             ; preds = %2216
  %2246 = landingpad { ptr, i32 }
          cleanup
  %2247 = extractvalue { ptr, i32 } %2246, 0
  store ptr %2247, ptr %4, align 8
  %2248 = extractvalue { ptr, i32 } %2246, 1
  store i32 %2248, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #7
  br label %2328

2249:                                             ; preds = %2226, %2219
  %2250 = landingpad { ptr, i32 }
          cleanup
  %2251 = extractvalue { ptr, i32 } %2250, 0
  store ptr %2251, ptr %4, align 8
  %2252 = extractvalue { ptr, i32 } %2250, 1
  store i32 %2252, ptr %5, align 4
  br label %2327

2253:                                             ; preds = %2291, %2276, %2262, %2257, %2236, %2229
  %2254 = landingpad { ptr, i32 }
          cleanup
  %2255 = extractvalue { ptr, i32 } %2254, 0
  store ptr %2255, ptr %4, align 8
  %2256 = extractvalue { ptr, i32 } %2254, 1
  store i32 %2256, ptr %5, align 4
  br label %2326

2257:                                             ; preds = %2240, %2235
  %2258 = load double, ptr %168, align 8, !tbaa !9
  %2259 = fpext double %2258 to x86_fp80
  %2260 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2259)
          to label %2261 unwind label %2253

2261:                                             ; preds = %2257
  br i1 %2260, label %2272, label %2262

2262:                                             ; preds = %2261
  %2263 = load double, ptr %168, align 8, !tbaa !9
  %2264 = fpext double %2263 to x86_fp80
  %2265 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2264)
          to label %2266 unwind label %2253

2266:                                             ; preds = %2262
  br i1 %2265, label %2267, label %2272

2267:                                             ; preds = %2266
  %2268 = load double, ptr %168, align 8, !tbaa !9
  %2269 = load double, ptr %169, align 8, !tbaa !9
  %2270 = fcmp oeq double %2268, %2269
  br i1 %2270, label %2271, label %2272

2271:                                             ; preds = %2267
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2287

2272:                                             ; preds = %2267, %2266, %2261
  %2273 = load double, ptr %170, align 8, !tbaa !9
  %2274 = fcmp olt double %2273, 0x3D06849B86A12B9B
  br i1 %2274, label %2275, label %2276

2275:                                             ; preds = %2272
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2286

2276:                                             ; preds = %2272
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %2277 unwind label %2253

2277:                                             ; preds = %2276
  %2278 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2279 = load double, ptr %168, align 8, !tbaa !9
  %2280 = load double, ptr %169, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %172, i32 noundef %2278, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2279, double noundef %2280, double noundef 5.000000e+00)
          to label %2281 unwind label %2282

2281:                                             ; preds = %2277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %2286

2282:                                             ; preds = %2277
  %2283 = landingpad { ptr, i32 }
          cleanup
  %2284 = extractvalue { ptr, i32 } %2283, 0
  store ptr %2284, ptr %4, align 8
  %2285 = extractvalue { ptr, i32 } %2283, 1
  store i32 %2285, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %2326

2286:                                             ; preds = %2281, %2275
  br label %2287

2287:                                             ; preds = %2286, %2271
  br label %2288

2288:                                             ; preds = %2287, %2241
  %2289 = load i8, ptr %171, align 1, !tbaa !11, !range !13, !noundef !14
  %2290 = trunc i8 %2289 to i1
  br i1 %2290, label %2291, label %2300

2291:                                             ; preds = %2288
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %2292 unwind label %2253

2292:                                             ; preds = %2291
  %2293 = load double, ptr %168, align 8, !tbaa !9
  %2294 = load double, ptr %170, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %173, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2293, double noundef %2294, double noundef 5.000000e+00)
          to label %2295 unwind label %2296

2295:                                             ; preds = %2292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  br label %2300

2296:                                             ; preds = %2292
  %2297 = landingpad { ptr, i32 }
          cleanup
  %2298 = extractvalue { ptr, i32 } %2297, 0
  store ptr %2298, ptr %4, align 8
  %2299 = extractvalue { ptr, i32 } %2297, 1
  store i32 %2299, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  br label %2326

2300:                                             ; preds = %2295, %2288
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  %2301 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2302 = add nsw i32 %2301, 1
  store i32 %2302, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %175) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %2303 unwind label %2329

2303:                                             ; preds = %2300
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #7
  %2304 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #7
  store double %2304, ptr %176, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #7
  %2305 = call double @llvm.ceil.f64(double -4.200000e+00)
  store double %2305, ptr %177, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #7
  %2306 = load double, ptr %176, align 8, !tbaa !9
  %2307 = load double, ptr %177, align 8, !tbaa !9
  %2308 = fsub double %2306, %2307
  %2309 = invoke noundef double @_ZSt3absd(double noundef %2308)
          to label %2310 unwind label %2333

2310:                                             ; preds = %2303
  %2311 = load double, ptr %177, align 8, !tbaa !9
  %2312 = invoke noundef double @_ZSt3absd(double noundef %2311)
          to label %2313 unwind label %2333

2313:                                             ; preds = %2310
  %2314 = fadd double 1.000000e+00, %2312
  %2315 = fdiv double %2309, %2314
  store double %2315, ptr %178, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #7
  store i8 0, ptr %179, align 1, !tbaa !11
  %2316 = load double, ptr %176, align 8, !tbaa !9
  %2317 = fpext double %2316 to x86_fp80
  %2318 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2317)
          to label %2319 unwind label %2337

2319:                                             ; preds = %2313
  br i1 %2318, label %2320, label %2341

2320:                                             ; preds = %2319
  %2321 = load double, ptr %177, align 8, !tbaa !9
  %2322 = fpext double %2321 to x86_fp80
  %2323 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2322)
          to label %2324 unwind label %2337

2324:                                             ; preds = %2320
  br i1 %2323, label %2325, label %2341

2325:                                             ; preds = %2324
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2372

2326:                                             ; preds = %2296, %2282, %2253
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #7
  br label %2327

2327:                                             ; preds = %2326, %2249
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %2328

2328:                                             ; preds = %2327, %2245
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  br label %5774

2329:                                             ; preds = %2300
  %2330 = landingpad { ptr, i32 }
          cleanup
  %2331 = extractvalue { ptr, i32 } %2330, 0
  store ptr %2331, ptr %4, align 8
  %2332 = extractvalue { ptr, i32 } %2330, 1
  store i32 %2332, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #7
  br label %2412

2333:                                             ; preds = %2310, %2303
  %2334 = landingpad { ptr, i32 }
          cleanup
  %2335 = extractvalue { ptr, i32 } %2334, 0
  store ptr %2335, ptr %4, align 8
  %2336 = extractvalue { ptr, i32 } %2334, 1
  store i32 %2336, ptr %5, align 4
  br label %2411

2337:                                             ; preds = %2375, %2360, %2346, %2341, %2320, %2313
  %2338 = landingpad { ptr, i32 }
          cleanup
  %2339 = extractvalue { ptr, i32 } %2338, 0
  store ptr %2339, ptr %4, align 8
  %2340 = extractvalue { ptr, i32 } %2338, 1
  store i32 %2340, ptr %5, align 4
  br label %2410

2341:                                             ; preds = %2324, %2319
  %2342 = load double, ptr %176, align 8, !tbaa !9
  %2343 = fpext double %2342 to x86_fp80
  %2344 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2343)
          to label %2345 unwind label %2337

2345:                                             ; preds = %2341
  br i1 %2344, label %2356, label %2346

2346:                                             ; preds = %2345
  %2347 = load double, ptr %176, align 8, !tbaa !9
  %2348 = fpext double %2347 to x86_fp80
  %2349 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2348)
          to label %2350 unwind label %2337

2350:                                             ; preds = %2346
  br i1 %2349, label %2351, label %2356

2351:                                             ; preds = %2350
  %2352 = load double, ptr %176, align 8, !tbaa !9
  %2353 = load double, ptr %177, align 8, !tbaa !9
  %2354 = fcmp oeq double %2352, %2353
  br i1 %2354, label %2355, label %2356

2355:                                             ; preds = %2351
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2371

2356:                                             ; preds = %2351, %2350, %2345
  %2357 = load double, ptr %178, align 8, !tbaa !9
  %2358 = fcmp olt double %2357, 0x3D06849B86A12B9B
  br i1 %2358, label %2359, label %2360

2359:                                             ; preds = %2356
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2370

2360:                                             ; preds = %2356
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %2361 unwind label %2337

2361:                                             ; preds = %2360
  %2362 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2363 = load double, ptr %176, align 8, !tbaa !9
  %2364 = load double, ptr %177, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %180, i32 noundef %2362, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2363, double noundef %2364, double noundef -4.200000e+00)
          to label %2365 unwind label %2366

2365:                                             ; preds = %2361
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %2370

2366:                                             ; preds = %2361
  %2367 = landingpad { ptr, i32 }
          cleanup
  %2368 = extractvalue { ptr, i32 } %2367, 0
  store ptr %2368, ptr %4, align 8
  %2369 = extractvalue { ptr, i32 } %2367, 1
  store i32 %2369, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %2410

2370:                                             ; preds = %2365, %2359
  br label %2371

2371:                                             ; preds = %2370, %2355
  br label %2372

2372:                                             ; preds = %2371, %2325
  %2373 = load i8, ptr %179, align 1, !tbaa !11, !range !13, !noundef !14
  %2374 = trunc i8 %2373 to i1
  br i1 %2374, label %2375, label %2384

2375:                                             ; preds = %2372
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %2376 unwind label %2337

2376:                                             ; preds = %2375
  %2377 = load double, ptr %176, align 8, !tbaa !9
  %2378 = load double, ptr %178, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %181, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2377, double noundef %2378, double noundef -4.200000e+00)
          to label %2379 unwind label %2380

2379:                                             ; preds = %2376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %2384

2380:                                             ; preds = %2376
  %2381 = landingpad { ptr, i32 }
          cleanup
  %2382 = extractvalue { ptr, i32 } %2381, 0
  store ptr %2382, ptr %4, align 8
  %2383 = extractvalue { ptr, i32 } %2381, 1
  store i32 %2383, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %2410

2384:                                             ; preds = %2379, %2372
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #7
  %2385 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2386 = add nsw i32 %2385, 1
  store i32 %2386, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %182) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %183) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %183)
          to label %2387 unwind label %2413

2387:                                             ; preds = %2384
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %183) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #7
  %2388 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #7
  store double %2388, ptr %184, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #7
  %2389 = call double @llvm.ceil.f64(double -4.700000e+00)
  store double %2389, ptr %185, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #7
  %2390 = load double, ptr %184, align 8, !tbaa !9
  %2391 = load double, ptr %185, align 8, !tbaa !9
  %2392 = fsub double %2390, %2391
  %2393 = invoke noundef double @_ZSt3absd(double noundef %2392)
          to label %2394 unwind label %2417

2394:                                             ; preds = %2387
  %2395 = load double, ptr %185, align 8, !tbaa !9
  %2396 = invoke noundef double @_ZSt3absd(double noundef %2395)
          to label %2397 unwind label %2417

2397:                                             ; preds = %2394
  %2398 = fadd double 1.000000e+00, %2396
  %2399 = fdiv double %2393, %2398
  store double %2399, ptr %186, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #7
  store i8 0, ptr %187, align 1, !tbaa !11
  %2400 = load double, ptr %184, align 8, !tbaa !9
  %2401 = fpext double %2400 to x86_fp80
  %2402 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2401)
          to label %2403 unwind label %2421

2403:                                             ; preds = %2397
  br i1 %2402, label %2404, label %2425

2404:                                             ; preds = %2403
  %2405 = load double, ptr %185, align 8, !tbaa !9
  %2406 = fpext double %2405 to x86_fp80
  %2407 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2406)
          to label %2408 unwind label %2421

2408:                                             ; preds = %2404
  br i1 %2407, label %2409, label %2425

2409:                                             ; preds = %2408
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2456

2410:                                             ; preds = %2380, %2366, %2337
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #7
  br label %2411

2411:                                             ; preds = %2410, %2333
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #7
  br label %2412

2412:                                             ; preds = %2411, %2329
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #7
  br label %5774

2413:                                             ; preds = %2384
  %2414 = landingpad { ptr, i32 }
          cleanup
  %2415 = extractvalue { ptr, i32 } %2414, 0
  store ptr %2415, ptr %4, align 8
  %2416 = extractvalue { ptr, i32 } %2414, 1
  store i32 %2416, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %183) #7
  br label %2496

2417:                                             ; preds = %2394, %2387
  %2418 = landingpad { ptr, i32 }
          cleanup
  %2419 = extractvalue { ptr, i32 } %2418, 0
  store ptr %2419, ptr %4, align 8
  %2420 = extractvalue { ptr, i32 } %2418, 1
  store i32 %2420, ptr %5, align 4
  br label %2495

2421:                                             ; preds = %2459, %2444, %2430, %2425, %2404, %2397
  %2422 = landingpad { ptr, i32 }
          cleanup
  %2423 = extractvalue { ptr, i32 } %2422, 0
  store ptr %2423, ptr %4, align 8
  %2424 = extractvalue { ptr, i32 } %2422, 1
  store i32 %2424, ptr %5, align 4
  br label %2494

2425:                                             ; preds = %2408, %2403
  %2426 = load double, ptr %184, align 8, !tbaa !9
  %2427 = fpext double %2426 to x86_fp80
  %2428 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2427)
          to label %2429 unwind label %2421

2429:                                             ; preds = %2425
  br i1 %2428, label %2440, label %2430

2430:                                             ; preds = %2429
  %2431 = load double, ptr %184, align 8, !tbaa !9
  %2432 = fpext double %2431 to x86_fp80
  %2433 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2432)
          to label %2434 unwind label %2421

2434:                                             ; preds = %2430
  br i1 %2433, label %2435, label %2440

2435:                                             ; preds = %2434
  %2436 = load double, ptr %184, align 8, !tbaa !9
  %2437 = load double, ptr %185, align 8, !tbaa !9
  %2438 = fcmp oeq double %2436, %2437
  br i1 %2438, label %2439, label %2440

2439:                                             ; preds = %2435
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2455

2440:                                             ; preds = %2435, %2434, %2429
  %2441 = load double, ptr %186, align 8, !tbaa !9
  %2442 = fcmp olt double %2441, 0x3D06849B86A12B9B
  br i1 %2442, label %2443, label %2444

2443:                                             ; preds = %2440
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2454

2444:                                             ; preds = %2440
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %2445 unwind label %2421

2445:                                             ; preds = %2444
  %2446 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2447 = load double, ptr %184, align 8, !tbaa !9
  %2448 = load double, ptr %185, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %188, i32 noundef %2446, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2447, double noundef %2448, double noundef -4.700000e+00)
          to label %2449 unwind label %2450

2449:                                             ; preds = %2445
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %2454

2450:                                             ; preds = %2445
  %2451 = landingpad { ptr, i32 }
          cleanup
  %2452 = extractvalue { ptr, i32 } %2451, 0
  store ptr %2452, ptr %4, align 8
  %2453 = extractvalue { ptr, i32 } %2451, 1
  store i32 %2453, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %2494

2454:                                             ; preds = %2449, %2443
  br label %2455

2455:                                             ; preds = %2454, %2439
  br label %2456

2456:                                             ; preds = %2455, %2409
  %2457 = load i8, ptr %187, align 1, !tbaa !11, !range !13, !noundef !14
  %2458 = trunc i8 %2457 to i1
  br i1 %2458, label %2459, label %2468

2459:                                             ; preds = %2456
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %2460 unwind label %2421

2460:                                             ; preds = %2459
  %2461 = load double, ptr %184, align 8, !tbaa !9
  %2462 = load double, ptr %186, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %189, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2461, double noundef %2462, double noundef -4.700000e+00)
          to label %2463 unwind label %2464

2463:                                             ; preds = %2460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  br label %2468

2464:                                             ; preds = %2460
  %2465 = landingpad { ptr, i32 }
          cleanup
  %2466 = extractvalue { ptr, i32 } %2465, 0
  store ptr %2466, ptr %4, align 8
  %2467 = extractvalue { ptr, i32 } %2465, 1
  store i32 %2467, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  br label %2494

2468:                                             ; preds = %2463, %2456
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #7
  %2469 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2470 = add nsw i32 %2469, 1
  store i32 %2470, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %190) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %191) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %2471 unwind label %2497

2471:                                             ; preds = %2468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #7
  %2472 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #7
  store double %2472, ptr %192, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #7
  %2473 = call double @llvm.ceil.f64(double -5.000000e+00)
  store double %2473, ptr %193, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #7
  %2474 = load double, ptr %192, align 8, !tbaa !9
  %2475 = load double, ptr %193, align 8, !tbaa !9
  %2476 = fsub double %2474, %2475
  %2477 = invoke noundef double @_ZSt3absd(double noundef %2476)
          to label %2478 unwind label %2501

2478:                                             ; preds = %2471
  %2479 = load double, ptr %193, align 8, !tbaa !9
  %2480 = invoke noundef double @_ZSt3absd(double noundef %2479)
          to label %2481 unwind label %2501

2481:                                             ; preds = %2478
  %2482 = fadd double 1.000000e+00, %2480
  %2483 = fdiv double %2477, %2482
  store double %2483, ptr %194, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %195) #7
  store i8 0, ptr %195, align 1, !tbaa !11
  %2484 = load double, ptr %192, align 8, !tbaa !9
  %2485 = fpext double %2484 to x86_fp80
  %2486 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2485)
          to label %2487 unwind label %2505

2487:                                             ; preds = %2481
  br i1 %2486, label %2488, label %2509

2488:                                             ; preds = %2487
  %2489 = load double, ptr %193, align 8, !tbaa !9
  %2490 = fpext double %2489 to x86_fp80
  %2491 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2490)
          to label %2492 unwind label %2505

2492:                                             ; preds = %2488
  br i1 %2491, label %2493, label %2509

2493:                                             ; preds = %2492
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2540

2494:                                             ; preds = %2464, %2450, %2421
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #7
  br label %2495

2495:                                             ; preds = %2494, %2417
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #7
  br label %2496

2496:                                             ; preds = %2495, %2413
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #7
  br label %5774

2497:                                             ; preds = %2468
  %2498 = landingpad { ptr, i32 }
          cleanup
  %2499 = extractvalue { ptr, i32 } %2498, 0
  store ptr %2499, ptr %4, align 8
  %2500 = extractvalue { ptr, i32 } %2498, 1
  store i32 %2500, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #7
  br label %2580

2501:                                             ; preds = %2478, %2471
  %2502 = landingpad { ptr, i32 }
          cleanup
  %2503 = extractvalue { ptr, i32 } %2502, 0
  store ptr %2503, ptr %4, align 8
  %2504 = extractvalue { ptr, i32 } %2502, 1
  store i32 %2504, ptr %5, align 4
  br label %2579

2505:                                             ; preds = %2543, %2528, %2514, %2509, %2488, %2481
  %2506 = landingpad { ptr, i32 }
          cleanup
  %2507 = extractvalue { ptr, i32 } %2506, 0
  store ptr %2507, ptr %4, align 8
  %2508 = extractvalue { ptr, i32 } %2506, 1
  store i32 %2508, ptr %5, align 4
  br label %2578

2509:                                             ; preds = %2492, %2487
  %2510 = load double, ptr %192, align 8, !tbaa !9
  %2511 = fpext double %2510 to x86_fp80
  %2512 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2511)
          to label %2513 unwind label %2505

2513:                                             ; preds = %2509
  br i1 %2512, label %2524, label %2514

2514:                                             ; preds = %2513
  %2515 = load double, ptr %192, align 8, !tbaa !9
  %2516 = fpext double %2515 to x86_fp80
  %2517 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2516)
          to label %2518 unwind label %2505

2518:                                             ; preds = %2514
  br i1 %2517, label %2519, label %2524

2519:                                             ; preds = %2518
  %2520 = load double, ptr %192, align 8, !tbaa !9
  %2521 = load double, ptr %193, align 8, !tbaa !9
  %2522 = fcmp oeq double %2520, %2521
  br i1 %2522, label %2523, label %2524

2523:                                             ; preds = %2519
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2539

2524:                                             ; preds = %2519, %2518, %2513
  %2525 = load double, ptr %194, align 8, !tbaa !9
  %2526 = fcmp olt double %2525, 0x3D06849B86A12B9B
  br i1 %2526, label %2527, label %2528

2527:                                             ; preds = %2524
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2538

2528:                                             ; preds = %2524
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %190)
          to label %2529 unwind label %2505

2529:                                             ; preds = %2528
  %2530 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2531 = load double, ptr %192, align 8, !tbaa !9
  %2532 = load double, ptr %193, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %196, i32 noundef %2530, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2531, double noundef %2532, double noundef -5.000000e+00)
          to label %2533 unwind label %2534

2533:                                             ; preds = %2529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #7
  br label %2538

2534:                                             ; preds = %2529
  %2535 = landingpad { ptr, i32 }
          cleanup
  %2536 = extractvalue { ptr, i32 } %2535, 0
  store ptr %2536, ptr %4, align 8
  %2537 = extractvalue { ptr, i32 } %2535, 1
  store i32 %2537, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #7
  br label %2578

2538:                                             ; preds = %2533, %2527
  br label %2539

2539:                                             ; preds = %2538, %2523
  br label %2540

2540:                                             ; preds = %2539, %2493
  %2541 = load i8, ptr %195, align 1, !tbaa !11, !range !13, !noundef !14
  %2542 = trunc i8 %2541 to i1
  br i1 %2542, label %2543, label %2552

2543:                                             ; preds = %2540
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %190)
          to label %2544 unwind label %2505

2544:                                             ; preds = %2543
  %2545 = load double, ptr %192, align 8, !tbaa !9
  %2546 = load double, ptr %194, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %197, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2545, double noundef %2546, double noundef -5.000000e+00)
          to label %2547 unwind label %2548

2547:                                             ; preds = %2544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %2552

2548:                                             ; preds = %2544
  %2549 = landingpad { ptr, i32 }
          cleanup
  %2550 = extractvalue { ptr, i32 } %2549, 0
  store ptr %2550, ptr %4, align 8
  %2551 = extractvalue { ptr, i32 } %2549, 1
  store i32 %2551, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %2578

2552:                                             ; preds = %2547, %2540
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #7
  %2553 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2554 = add nsw i32 %2553, 1
  store i32 %2554, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %199) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %2555 unwind label %2581

2555:                                             ; preds = %2552
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #7
  %2556 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #7
  store double %2556, ptr %200, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #7
  %2557 = call double @llvm.ceil.f64(double 4.200000e+33)
  store double %2557, ptr %201, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #7
  %2558 = load double, ptr %200, align 8, !tbaa !9
  %2559 = load double, ptr %201, align 8, !tbaa !9
  %2560 = fsub double %2558, %2559
  %2561 = invoke noundef double @_ZSt3absd(double noundef %2560)
          to label %2562 unwind label %2585

2562:                                             ; preds = %2555
  %2563 = load double, ptr %201, align 8, !tbaa !9
  %2564 = invoke noundef double @_ZSt3absd(double noundef %2563)
          to label %2565 unwind label %2585

2565:                                             ; preds = %2562
  %2566 = fadd double 1.000000e+00, %2564
  %2567 = fdiv double %2561, %2566
  store double %2567, ptr %202, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #7
  store i8 0, ptr %203, align 1, !tbaa !11
  %2568 = load double, ptr %200, align 8, !tbaa !9
  %2569 = fpext double %2568 to x86_fp80
  %2570 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2569)
          to label %2571 unwind label %2589

2571:                                             ; preds = %2565
  br i1 %2570, label %2572, label %2593

2572:                                             ; preds = %2571
  %2573 = load double, ptr %201, align 8, !tbaa !9
  %2574 = fpext double %2573 to x86_fp80
  %2575 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2574)
          to label %2576 unwind label %2589

2576:                                             ; preds = %2572
  br i1 %2575, label %2577, label %2593

2577:                                             ; preds = %2576
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2624

2578:                                             ; preds = %2548, %2534, %2505
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #7
  br label %2579

2579:                                             ; preds = %2578, %2501
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #7
  br label %2580

2580:                                             ; preds = %2579, %2497
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #7
  br label %5774

2581:                                             ; preds = %2552
  %2582 = landingpad { ptr, i32 }
          cleanup
  %2583 = extractvalue { ptr, i32 } %2582, 0
  store ptr %2583, ptr %4, align 8
  %2584 = extractvalue { ptr, i32 } %2582, 1
  store i32 %2584, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #7
  br label %2664

2585:                                             ; preds = %2562, %2555
  %2586 = landingpad { ptr, i32 }
          cleanup
  %2587 = extractvalue { ptr, i32 } %2586, 0
  store ptr %2587, ptr %4, align 8
  %2588 = extractvalue { ptr, i32 } %2586, 1
  store i32 %2588, ptr %5, align 4
  br label %2663

2589:                                             ; preds = %2627, %2612, %2598, %2593, %2572, %2565
  %2590 = landingpad { ptr, i32 }
          cleanup
  %2591 = extractvalue { ptr, i32 } %2590, 0
  store ptr %2591, ptr %4, align 8
  %2592 = extractvalue { ptr, i32 } %2590, 1
  store i32 %2592, ptr %5, align 4
  br label %2662

2593:                                             ; preds = %2576, %2571
  %2594 = load double, ptr %200, align 8, !tbaa !9
  %2595 = fpext double %2594 to x86_fp80
  %2596 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2595)
          to label %2597 unwind label %2589

2597:                                             ; preds = %2593
  br i1 %2596, label %2608, label %2598

2598:                                             ; preds = %2597
  %2599 = load double, ptr %200, align 8, !tbaa !9
  %2600 = fpext double %2599 to x86_fp80
  %2601 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2600)
          to label %2602 unwind label %2589

2602:                                             ; preds = %2598
  br i1 %2601, label %2603, label %2608

2603:                                             ; preds = %2602
  %2604 = load double, ptr %200, align 8, !tbaa !9
  %2605 = load double, ptr %201, align 8, !tbaa !9
  %2606 = fcmp oeq double %2604, %2605
  br i1 %2606, label %2607, label %2608

2607:                                             ; preds = %2603
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2623

2608:                                             ; preds = %2603, %2602, %2597
  %2609 = load double, ptr %202, align 8, !tbaa !9
  %2610 = fcmp olt double %2609, 0x3D06849B86A12B9B
  br i1 %2610, label %2611, label %2612

2611:                                             ; preds = %2608
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2622

2612:                                             ; preds = %2608
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %2613 unwind label %2589

2613:                                             ; preds = %2612
  %2614 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2615 = load double, ptr %200, align 8, !tbaa !9
  %2616 = load double, ptr %201, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %204, i32 noundef %2614, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2615, double noundef %2616, double noundef 4.200000e+33)
          to label %2617 unwind label %2618

2617:                                             ; preds = %2613
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %2622

2618:                                             ; preds = %2613
  %2619 = landingpad { ptr, i32 }
          cleanup
  %2620 = extractvalue { ptr, i32 } %2619, 0
  store ptr %2620, ptr %4, align 8
  %2621 = extractvalue { ptr, i32 } %2619, 1
  store i32 %2621, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %2662

2622:                                             ; preds = %2617, %2611
  br label %2623

2623:                                             ; preds = %2622, %2607
  br label %2624

2624:                                             ; preds = %2623, %2577
  %2625 = load i8, ptr %203, align 1, !tbaa !11, !range !13, !noundef !14
  %2626 = trunc i8 %2625 to i1
  br i1 %2626, label %2627, label %2636

2627:                                             ; preds = %2624
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %2628 unwind label %2589

2628:                                             ; preds = %2627
  %2629 = load double, ptr %200, align 8, !tbaa !9
  %2630 = load double, ptr %202, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %205, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2629, double noundef %2630, double noundef 4.200000e+33)
          to label %2631 unwind label %2632

2631:                                             ; preds = %2628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %2636

2632:                                             ; preds = %2628
  %2633 = landingpad { ptr, i32 }
          cleanup
  %2634 = extractvalue { ptr, i32 } %2633, 0
  store ptr %2634, ptr %4, align 8
  %2635 = extractvalue { ptr, i32 } %2633, 1
  store i32 %2635, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %2662

2636:                                             ; preds = %2631, %2624
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #7
  %2637 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2638 = add nsw i32 %2637, 1
  store i32 %2638, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %207) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %207)
          to label %2639 unwind label %2665

2639:                                             ; preds = %2636
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #7
  %2640 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #7
  store double %2640, ptr %208, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #7
  %2641 = call double @llvm.ceil.f64(double -4.200000e+33)
  store double %2641, ptr %209, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #7
  %2642 = load double, ptr %208, align 8, !tbaa !9
  %2643 = load double, ptr %209, align 8, !tbaa !9
  %2644 = fsub double %2642, %2643
  %2645 = invoke noundef double @_ZSt3absd(double noundef %2644)
          to label %2646 unwind label %2669

2646:                                             ; preds = %2639
  %2647 = load double, ptr %209, align 8, !tbaa !9
  %2648 = invoke noundef double @_ZSt3absd(double noundef %2647)
          to label %2649 unwind label %2669

2649:                                             ; preds = %2646
  %2650 = fadd double 1.000000e+00, %2648
  %2651 = fdiv double %2645, %2650
  store double %2651, ptr %210, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %211) #7
  store i8 0, ptr %211, align 1, !tbaa !11
  %2652 = load double, ptr %208, align 8, !tbaa !9
  %2653 = fpext double %2652 to x86_fp80
  %2654 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2653)
          to label %2655 unwind label %2673

2655:                                             ; preds = %2649
  br i1 %2654, label %2656, label %2677

2656:                                             ; preds = %2655
  %2657 = load double, ptr %209, align 8, !tbaa !9
  %2658 = fpext double %2657 to x86_fp80
  %2659 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2658)
          to label %2660 unwind label %2673

2660:                                             ; preds = %2656
  br i1 %2659, label %2661, label %2677

2661:                                             ; preds = %2660
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2708

2662:                                             ; preds = %2632, %2618, %2589
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  br label %2663

2663:                                             ; preds = %2662, %2585
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #7
  br label %2664

2664:                                             ; preds = %2663, %2581
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #7
  br label %5774

2665:                                             ; preds = %2636
  %2666 = landingpad { ptr, i32 }
          cleanup
  %2667 = extractvalue { ptr, i32 } %2666, 0
  store ptr %2667, ptr %4, align 8
  %2668 = extractvalue { ptr, i32 } %2666, 1
  store i32 %2668, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #7
  br label %2751

2669:                                             ; preds = %2646, %2639
  %2670 = landingpad { ptr, i32 }
          cleanup
  %2671 = extractvalue { ptr, i32 } %2670, 0
  store ptr %2671, ptr %4, align 8
  %2672 = extractvalue { ptr, i32 } %2670, 1
  store i32 %2672, ptr %5, align 4
  br label %2750

2673:                                             ; preds = %2711, %2696, %2682, %2677, %2656, %2649
  %2674 = landingpad { ptr, i32 }
          cleanup
  %2675 = extractvalue { ptr, i32 } %2674, 0
  store ptr %2675, ptr %4, align 8
  %2676 = extractvalue { ptr, i32 } %2674, 1
  store i32 %2676, ptr %5, align 4
  br label %2749

2677:                                             ; preds = %2660, %2655
  %2678 = load double, ptr %208, align 8, !tbaa !9
  %2679 = fpext double %2678 to x86_fp80
  %2680 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2679)
          to label %2681 unwind label %2673

2681:                                             ; preds = %2677
  br i1 %2680, label %2692, label %2682

2682:                                             ; preds = %2681
  %2683 = load double, ptr %208, align 8, !tbaa !9
  %2684 = fpext double %2683 to x86_fp80
  %2685 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2684)
          to label %2686 unwind label %2673

2686:                                             ; preds = %2682
  br i1 %2685, label %2687, label %2692

2687:                                             ; preds = %2686
  %2688 = load double, ptr %208, align 8, !tbaa !9
  %2689 = load double, ptr %209, align 8, !tbaa !9
  %2690 = fcmp oeq double %2688, %2689
  br i1 %2690, label %2691, label %2692

2691:                                             ; preds = %2687
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2707

2692:                                             ; preds = %2687, %2686, %2681
  %2693 = load double, ptr %210, align 8, !tbaa !9
  %2694 = fcmp olt double %2693, 0x3D06849B86A12B9B
  br i1 %2694, label %2695, label %2696

2695:                                             ; preds = %2692
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2706

2696:                                             ; preds = %2692
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %2697 unwind label %2673

2697:                                             ; preds = %2696
  %2698 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2699 = load double, ptr %208, align 8, !tbaa !9
  %2700 = load double, ptr %209, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %212, i32 noundef %2698, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2699, double noundef %2700, double noundef -4.200000e+33)
          to label %2701 unwind label %2702

2701:                                             ; preds = %2697
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #7
  br label %2706

2702:                                             ; preds = %2697
  %2703 = landingpad { ptr, i32 }
          cleanup
  %2704 = extractvalue { ptr, i32 } %2703, 0
  store ptr %2704, ptr %4, align 8
  %2705 = extractvalue { ptr, i32 } %2703, 1
  store i32 %2705, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #7
  br label %2749

2706:                                             ; preds = %2701, %2695
  br label %2707

2707:                                             ; preds = %2706, %2691
  br label %2708

2708:                                             ; preds = %2707, %2661
  %2709 = load i8, ptr %211, align 1, !tbaa !11, !range !13, !noundef !14
  %2710 = trunc i8 %2709 to i1
  br i1 %2710, label %2711, label %2720

2711:                                             ; preds = %2708
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %2712 unwind label %2673

2712:                                             ; preds = %2711
  %2713 = load double, ptr %208, align 8, !tbaa !9
  %2714 = load double, ptr %210, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %213, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2713, double noundef %2714, double noundef -4.200000e+33)
          to label %2715 unwind label %2716

2715:                                             ; preds = %2712
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %2720

2716:                                             ; preds = %2712
  %2717 = landingpad { ptr, i32 }
          cleanup
  %2718 = extractvalue { ptr, i32 } %2717, 0
  store ptr %2718, ptr %4, align 8
  %2719 = extractvalue { ptr, i32 } %2717, 1
  store i32 %2719, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %2749

2720:                                             ; preds = %2715, %2708
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #7
  %2721 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2722 = add nsw i32 %2721, 1
  store i32 %2722, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %214) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %215) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %2723 unwind label %2752

2723:                                             ; preds = %2720
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %215) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #7
  %2724 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %2725 = call noundef float @_ZN4gcem4ceilIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %2724) #7
  store float %2725, ptr %216, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #7
  %2726 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %2727 = invoke noundef float @_ZSt4ceilf(float noundef %2726)
          to label %2728 unwind label %2756

2728:                                             ; preds = %2723
  store float %2727, ptr %217, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #7
  %2729 = load float, ptr %216, align 4, !tbaa !15
  %2730 = load float, ptr %217, align 4, !tbaa !15
  %2731 = fsub float %2729, %2730
  %2732 = invoke noundef float @_ZSt3absf(float noundef %2731)
          to label %2733 unwind label %2760

2733:                                             ; preds = %2728
  %2734 = load float, ptr %217, align 4, !tbaa !15
  %2735 = invoke noundef float @_ZSt3absf(float noundef %2734)
          to label %2736 unwind label %2760

2736:                                             ; preds = %2733
  %2737 = fadd float 1.000000e+00, %2735
  %2738 = fdiv float %2732, %2737
  store float %2738, ptr %218, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #7
  store i8 0, ptr %219, align 1, !tbaa !11
  %2739 = load float, ptr %216, align 4, !tbaa !15
  %2740 = fpext float %2739 to x86_fp80
  %2741 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2740)
          to label %2742 unwind label %2764

2742:                                             ; preds = %2736
  br i1 %2741, label %2743, label %2768

2743:                                             ; preds = %2742
  %2744 = load float, ptr %217, align 4, !tbaa !15
  %2745 = fpext float %2744 to x86_fp80
  %2746 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2745)
          to label %2747 unwind label %2764

2747:                                             ; preds = %2743
  br i1 %2746, label %2748, label %2768

2748:                                             ; preds = %2747
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2801

2749:                                             ; preds = %2716, %2702, %2673
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #7
  br label %2750

2750:                                             ; preds = %2749, %2669
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #7
  br label %2751

2751:                                             ; preds = %2750, %2665
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #7
  br label %5774

2752:                                             ; preds = %2720
  %2753 = landingpad { ptr, i32 }
          cleanup
  %2754 = extractvalue { ptr, i32 } %2753, 0
  store ptr %2754, ptr %4, align 8
  %2755 = extractvalue { ptr, i32 } %2753, 1
  store i32 %2755, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %215) #7
  br label %2846

2756:                                             ; preds = %2723
  %2757 = landingpad { ptr, i32 }
          cleanup
  %2758 = extractvalue { ptr, i32 } %2757, 0
  store ptr %2758, ptr %4, align 8
  %2759 = extractvalue { ptr, i32 } %2757, 1
  store i32 %2759, ptr %5, align 4
  br label %2845

2760:                                             ; preds = %2733, %2728
  %2761 = landingpad { ptr, i32 }
          cleanup
  %2762 = extractvalue { ptr, i32 } %2761, 0
  store ptr %2762, ptr %4, align 8
  %2763 = extractvalue { ptr, i32 } %2761, 1
  store i32 %2763, ptr %5, align 4
  br label %2844

2764:                                             ; preds = %2804, %2788, %2773, %2768, %2743, %2736
  %2765 = landingpad { ptr, i32 }
          cleanup
  %2766 = extractvalue { ptr, i32 } %2765, 0
  store ptr %2766, ptr %4, align 8
  %2767 = extractvalue { ptr, i32 } %2765, 1
  store i32 %2767, ptr %5, align 4
  br label %2843

2768:                                             ; preds = %2747, %2742
  %2769 = load float, ptr %216, align 4, !tbaa !15
  %2770 = fpext float %2769 to x86_fp80
  %2771 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2770)
          to label %2772 unwind label %2764

2772:                                             ; preds = %2768
  br i1 %2771, label %2783, label %2773

2773:                                             ; preds = %2772
  %2774 = load float, ptr %216, align 4, !tbaa !15
  %2775 = fpext float %2774 to x86_fp80
  %2776 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2775)
          to label %2777 unwind label %2764

2777:                                             ; preds = %2773
  br i1 %2776, label %2778, label %2783

2778:                                             ; preds = %2777
  %2779 = load float, ptr %216, align 4, !tbaa !15
  %2780 = load float, ptr %217, align 4, !tbaa !15
  %2781 = fcmp oeq float %2779, %2780
  br i1 %2781, label %2782, label %2783

2782:                                             ; preds = %2778
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2800

2783:                                             ; preds = %2778, %2777, %2772
  %2784 = load float, ptr %218, align 4, !tbaa !15
  %2785 = fpext float %2784 to double
  %2786 = fcmp olt double %2785, 0x3D06849B86A12B9B
  br i1 %2786, label %2787, label %2788

2787:                                             ; preds = %2783
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2799

2788:                                             ; preds = %2783
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %2789 unwind label %2764

2789:                                             ; preds = %2788
  %2790 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2791 = load float, ptr %216, align 4, !tbaa !15
  %2792 = load float, ptr %217, align 4, !tbaa !15
  %2793 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %220, i32 noundef %2790, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %2791, float noundef %2792, float noundef %2793)
          to label %2794 unwind label %2795

2794:                                             ; preds = %2789
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %2799

2795:                                             ; preds = %2789
  %2796 = landingpad { ptr, i32 }
          cleanup
  %2797 = extractvalue { ptr, i32 } %2796, 0
  store ptr %2797, ptr %4, align 8
  %2798 = extractvalue { ptr, i32 } %2796, 1
  store i32 %2798, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %2843

2799:                                             ; preds = %2794, %2787
  br label %2800

2800:                                             ; preds = %2799, %2782
  br label %2801

2801:                                             ; preds = %2800, %2748
  %2802 = load i8, ptr %219, align 1, !tbaa !11, !range !13, !noundef !14
  %2803 = trunc i8 %2802 to i1
  br i1 %2803, label %2804, label %2814

2804:                                             ; preds = %2801
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %2805 unwind label %2764

2805:                                             ; preds = %2804
  %2806 = load float, ptr %216, align 4, !tbaa !15
  %2807 = load float, ptr %218, align 4, !tbaa !15
  %2808 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %221, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %2806, float noundef %2807, float noundef %2808)
          to label %2809 unwind label %2810

2809:                                             ; preds = %2805
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  br label %2814

2810:                                             ; preds = %2805
  %2811 = landingpad { ptr, i32 }
          cleanup
  %2812 = extractvalue { ptr, i32 } %2811, 0
  store ptr %2812, ptr %4, align 8
  %2813 = extractvalue { ptr, i32 } %2811, 1
  store i32 %2813, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  br label %2843

2814:                                             ; preds = %2809, %2801
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #7
  %2815 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2816 = add nsw i32 %2815, 1
  store i32 %2816, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %222) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %223) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %2817 unwind label %2847

2817:                                             ; preds = %2814
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %224) #7
  %2818 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2819 = fneg x86_fp80 %2818
  %2820 = call noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2819) #7
  store x86_fp80 %2820, ptr %224, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %225) #7
  %2821 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2822 = fneg x86_fp80 %2821
  %2823 = invoke noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef %2822)
          to label %2824 unwind label %2851

2824:                                             ; preds = %2817
  store x86_fp80 %2823, ptr %225, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %226) #7
  %2825 = load x86_fp80, ptr %224, align 16, !tbaa !17
  %2826 = load x86_fp80, ptr %225, align 16, !tbaa !17
  %2827 = fsub x86_fp80 %2825, %2826
  %2828 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2827)
          to label %2829 unwind label %2855

2829:                                             ; preds = %2824
  %2830 = load x86_fp80, ptr %225, align 16, !tbaa !17
  %2831 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2830)
          to label %2832 unwind label %2855

2832:                                             ; preds = %2829
  %2833 = fadd x86_fp80 0xK3FFF8000000000000000, %2831
  %2834 = fdiv x86_fp80 %2828, %2833
  store x86_fp80 %2834, ptr %226, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %227) #7
  store i8 0, ptr %227, align 1, !tbaa !11
  %2835 = load x86_fp80, ptr %224, align 16, !tbaa !17
  %2836 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2835)
          to label %2837 unwind label %2859

2837:                                             ; preds = %2832
  br i1 %2836, label %2838, label %2863

2838:                                             ; preds = %2837
  %2839 = load x86_fp80, ptr %225, align 16, !tbaa !17
  %2840 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2839)
          to label %2841 unwind label %2859

2841:                                             ; preds = %2838
  br i1 %2840, label %2842, label %2863

2842:                                             ; preds = %2841
  store i8 1, ptr %227, align 1, !tbaa !11
  br label %2894

2843:                                             ; preds = %2810, %2795, %2764
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #7
  br label %2844

2844:                                             ; preds = %2843, %2760
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #7
  br label %2845

2845:                                             ; preds = %2844, %2756
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  br label %2846

2846:                                             ; preds = %2845, %2752
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #7
  br label %5774

2847:                                             ; preds = %2814
  %2848 = landingpad { ptr, i32 }
          cleanup
  %2849 = extractvalue { ptr, i32 } %2848, 0
  store ptr %2849, ptr %4, align 8
  %2850 = extractvalue { ptr, i32 } %2848, 1
  store i32 %2850, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #7
  br label %2938

2851:                                             ; preds = %2817
  %2852 = landingpad { ptr, i32 }
          cleanup
  %2853 = extractvalue { ptr, i32 } %2852, 0
  store ptr %2853, ptr %4, align 8
  %2854 = extractvalue { ptr, i32 } %2852, 1
  store i32 %2854, ptr %5, align 4
  br label %2937

2855:                                             ; preds = %2829, %2824
  %2856 = landingpad { ptr, i32 }
          cleanup
  %2857 = extractvalue { ptr, i32 } %2856, 0
  store ptr %2857, ptr %4, align 8
  %2858 = extractvalue { ptr, i32 } %2856, 1
  store i32 %2858, ptr %5, align 4
  br label %2936

2859:                                             ; preds = %2897, %2880, %2867, %2863, %2838, %2832
  %2860 = landingpad { ptr, i32 }
          cleanup
  %2861 = extractvalue { ptr, i32 } %2860, 0
  store ptr %2861, ptr %4, align 8
  %2862 = extractvalue { ptr, i32 } %2860, 1
  store i32 %2862, ptr %5, align 4
  br label %2935

2863:                                             ; preds = %2841, %2837
  %2864 = load x86_fp80, ptr %224, align 16, !tbaa !17
  %2865 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2864)
          to label %2866 unwind label %2859

2866:                                             ; preds = %2863
  br i1 %2865, label %2876, label %2867

2867:                                             ; preds = %2866
  %2868 = load x86_fp80, ptr %224, align 16, !tbaa !17
  %2869 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2868)
          to label %2870 unwind label %2859

2870:                                             ; preds = %2867
  br i1 %2869, label %2871, label %2876

2871:                                             ; preds = %2870
  %2872 = load x86_fp80, ptr %224, align 16, !tbaa !17
  %2873 = load x86_fp80, ptr %225, align 16, !tbaa !17
  %2874 = fcmp oeq x86_fp80 %2872, %2873
  br i1 %2874, label %2875, label %2876

2875:                                             ; preds = %2871
  store i8 1, ptr %227, align 1, !tbaa !11
  br label %2893

2876:                                             ; preds = %2871, %2870, %2866
  %2877 = load x86_fp80, ptr %226, align 16, !tbaa !17
  %2878 = fcmp olt x86_fp80 %2877, 0xK3FD0B424DC35095CD800
  br i1 %2878, label %2879, label %2880

2879:                                             ; preds = %2876
  store i8 1, ptr %227, align 1, !tbaa !11
  br label %2892

2880:                                             ; preds = %2876
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull align 8 dereferenceable(32) %222)
          to label %2881 unwind label %2859

2881:                                             ; preds = %2880
  %2882 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2883 = load x86_fp80, ptr %224, align 16, !tbaa !17
  %2884 = load x86_fp80, ptr %225, align 16, !tbaa !17
  %2885 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2886 = fneg x86_fp80 %2885
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %228, i32 noundef %2882, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2883, x86_fp80 noundef %2884, x86_fp80 noundef %2886)
          to label %2887 unwind label %2888

2887:                                             ; preds = %2881
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #7
  br label %2892

2888:                                             ; preds = %2881
  %2889 = landingpad { ptr, i32 }
          cleanup
  %2890 = extractvalue { ptr, i32 } %2889, 0
  store ptr %2890, ptr %4, align 8
  %2891 = extractvalue { ptr, i32 } %2889, 1
  store i32 %2891, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #7
  br label %2935

2892:                                             ; preds = %2887, %2879
  br label %2893

2893:                                             ; preds = %2892, %2875
  br label %2894

2894:                                             ; preds = %2893, %2842
  %2895 = load i8, ptr %227, align 1, !tbaa !11, !range !13, !noundef !14
  %2896 = trunc i8 %2895 to i1
  br i1 %2896, label %2897, label %2908

2897:                                             ; preds = %2894
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %222)
          to label %2898 unwind label %2859

2898:                                             ; preds = %2897
  %2899 = load x86_fp80, ptr %224, align 16, !tbaa !17
  %2900 = load x86_fp80, ptr %226, align 16, !tbaa !17
  %2901 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2902 = fneg x86_fp80 %2901
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %229, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2899, x86_fp80 noundef %2900, x86_fp80 noundef %2902)
          to label %2903 unwind label %2904

2903:                                             ; preds = %2898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %2908

2904:                                             ; preds = %2898
  %2905 = landingpad { ptr, i32 }
          cleanup
  %2906 = extractvalue { ptr, i32 } %2905, 0
  store ptr %2906, ptr %4, align 8
  %2907 = extractvalue { ptr, i32 } %2905, 1
  store i32 %2907, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %2935

2908:                                             ; preds = %2903, %2894
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %226) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #7
  %2909 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2910 = add nsw i32 %2909, 1
  store i32 %2910, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %231) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %2911 unwind label %2939

2911:                                             ; preds = %2908
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %232) #7
  %2912 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2913 = call noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2912) #7
  store x86_fp80 %2913, ptr %232, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %233) #7
  %2914 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2915 = invoke noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef %2914)
          to label %2916 unwind label %2943

2916:                                             ; preds = %2911
  store x86_fp80 %2915, ptr %233, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %234) #7
  %2917 = load x86_fp80, ptr %232, align 16, !tbaa !17
  %2918 = load x86_fp80, ptr %233, align 16, !tbaa !17
  %2919 = fsub x86_fp80 %2917, %2918
  %2920 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2919)
          to label %2921 unwind label %2947

2921:                                             ; preds = %2916
  %2922 = load x86_fp80, ptr %233, align 16, !tbaa !17
  %2923 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2922)
          to label %2924 unwind label %2947

2924:                                             ; preds = %2921
  %2925 = fadd x86_fp80 0xK3FFF8000000000000000, %2923
  %2926 = fdiv x86_fp80 %2920, %2925
  store x86_fp80 %2926, ptr %234, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %235) #7
  store i8 0, ptr %235, align 1, !tbaa !11
  %2927 = load x86_fp80, ptr %232, align 16, !tbaa !17
  %2928 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2927)
          to label %2929 unwind label %2951

2929:                                             ; preds = %2924
  br i1 %2928, label %2930, label %2955

2930:                                             ; preds = %2929
  %2931 = load x86_fp80, ptr %233, align 16, !tbaa !17
  %2932 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2931)
          to label %2933 unwind label %2951

2933:                                             ; preds = %2930
  br i1 %2932, label %2934, label %2955

2934:                                             ; preds = %2933
  store i8 1, ptr %235, align 1, !tbaa !11
  br label %2985

2935:                                             ; preds = %2904, %2888, %2859
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #7
  br label %2936

2936:                                             ; preds = %2935, %2855
  call void @llvm.lifetime.end.p0(i64 16, ptr %226) #7
  br label %2937

2937:                                             ; preds = %2936, %2851
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  br label %2938

2938:                                             ; preds = %2937, %2847
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #7
  br label %5774

2939:                                             ; preds = %2908
  %2940 = landingpad { ptr, i32 }
          cleanup
  %2941 = extractvalue { ptr, i32 } %2940, 0
  store ptr %2941, ptr %4, align 8
  %2942 = extractvalue { ptr, i32 } %2940, 1
  store i32 %2942, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #7
  br label %3028

2943:                                             ; preds = %2911
  %2944 = landingpad { ptr, i32 }
          cleanup
  %2945 = extractvalue { ptr, i32 } %2944, 0
  store ptr %2945, ptr %4, align 8
  %2946 = extractvalue { ptr, i32 } %2944, 1
  store i32 %2946, ptr %5, align 4
  br label %3027

2947:                                             ; preds = %2921, %2916
  %2948 = landingpad { ptr, i32 }
          cleanup
  %2949 = extractvalue { ptr, i32 } %2948, 0
  store ptr %2949, ptr %4, align 8
  %2950 = extractvalue { ptr, i32 } %2948, 1
  store i32 %2950, ptr %5, align 4
  br label %3026

2951:                                             ; preds = %2988, %2972, %2959, %2955, %2930, %2924
  %2952 = landingpad { ptr, i32 }
          cleanup
  %2953 = extractvalue { ptr, i32 } %2952, 0
  store ptr %2953, ptr %4, align 8
  %2954 = extractvalue { ptr, i32 } %2952, 1
  store i32 %2954, ptr %5, align 4
  br label %3025

2955:                                             ; preds = %2933, %2929
  %2956 = load x86_fp80, ptr %232, align 16, !tbaa !17
  %2957 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2956)
          to label %2958 unwind label %2951

2958:                                             ; preds = %2955
  br i1 %2957, label %2968, label %2959

2959:                                             ; preds = %2958
  %2960 = load x86_fp80, ptr %232, align 16, !tbaa !17
  %2961 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2960)
          to label %2962 unwind label %2951

2962:                                             ; preds = %2959
  br i1 %2961, label %2963, label %2968

2963:                                             ; preds = %2962
  %2964 = load x86_fp80, ptr %232, align 16, !tbaa !17
  %2965 = load x86_fp80, ptr %233, align 16, !tbaa !17
  %2966 = fcmp oeq x86_fp80 %2964, %2965
  br i1 %2966, label %2967, label %2968

2967:                                             ; preds = %2963
  store i8 1, ptr %235, align 1, !tbaa !11
  br label %2984

2968:                                             ; preds = %2963, %2962, %2958
  %2969 = load x86_fp80, ptr %234, align 16, !tbaa !17
  %2970 = fcmp olt x86_fp80 %2969, 0xK3FD0B424DC35095CD800
  br i1 %2970, label %2971, label %2972

2971:                                             ; preds = %2968
  store i8 1, ptr %235, align 1, !tbaa !11
  br label %2983

2972:                                             ; preds = %2968
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %2973 unwind label %2951

2973:                                             ; preds = %2972
  %2974 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2975 = load x86_fp80, ptr %232, align 16, !tbaa !17
  %2976 = load x86_fp80, ptr %233, align 16, !tbaa !17
  %2977 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %236, i32 noundef %2974, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2975, x86_fp80 noundef %2976, x86_fp80 noundef %2977)
          to label %2978 unwind label %2979

2978:                                             ; preds = %2973
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #7
  br label %2983

2979:                                             ; preds = %2973
  %2980 = landingpad { ptr, i32 }
          cleanup
  %2981 = extractvalue { ptr, i32 } %2980, 0
  store ptr %2981, ptr %4, align 8
  %2982 = extractvalue { ptr, i32 } %2980, 1
  store i32 %2982, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #7
  br label %3025

2983:                                             ; preds = %2978, %2971
  br label %2984

2984:                                             ; preds = %2983, %2967
  br label %2985

2985:                                             ; preds = %2984, %2934
  %2986 = load i8, ptr %235, align 1, !tbaa !11, !range !13, !noundef !14
  %2987 = trunc i8 %2986 to i1
  br i1 %2987, label %2988, label %2998

2988:                                             ; preds = %2985
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %2989 unwind label %2951

2989:                                             ; preds = %2988
  %2990 = load x86_fp80, ptr %232, align 16, !tbaa !17
  %2991 = load x86_fp80, ptr %234, align 16, !tbaa !17
  %2992 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %237, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2990, x86_fp80 noundef %2991, x86_fp80 noundef %2992)
          to label %2993 unwind label %2994

2993:                                             ; preds = %2989
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  br label %2998

2994:                                             ; preds = %2989
  %2995 = landingpad { ptr, i32 }
          cleanup
  %2996 = extractvalue { ptr, i32 } %2995, 0
  store ptr %2996, ptr %4, align 8
  %2997 = extractvalue { ptr, i32 } %2995, 1
  store i32 %2997, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  br label %3025

2998:                                             ; preds = %2993, %2985
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %234) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #7
  %2999 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3000 = add nsw i32 %2999, 1
  store i32 %3000, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %238) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %239) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %239)
          to label %3001 unwind label %3029

3001:                                             ; preds = %2998
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %240) #7
  %3002 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %3003 = call noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %3002) #7
  store x86_fp80 %3003, ptr %240, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %241) #7
  %3004 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %3005 = invoke noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef %3004)
          to label %3006 unwind label %3033

3006:                                             ; preds = %3001
  store x86_fp80 %3005, ptr %241, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %242) #7
  %3007 = load x86_fp80, ptr %240, align 16, !tbaa !17
  %3008 = load x86_fp80, ptr %241, align 16, !tbaa !17
  %3009 = fsub x86_fp80 %3007, %3008
  %3010 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %3009)
          to label %3011 unwind label %3037

3011:                                             ; preds = %3006
  %3012 = load x86_fp80, ptr %241, align 16, !tbaa !17
  %3013 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %3012)
          to label %3014 unwind label %3037

3014:                                             ; preds = %3011
  %3015 = fadd x86_fp80 0xK3FFF8000000000000000, %3013
  %3016 = fdiv x86_fp80 %3010, %3015
  store x86_fp80 %3016, ptr %242, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %243) #7
  store i8 0, ptr %243, align 1, !tbaa !11
  %3017 = load x86_fp80, ptr %240, align 16, !tbaa !17
  %3018 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3017)
          to label %3019 unwind label %3041

3019:                                             ; preds = %3014
  br i1 %3018, label %3020, label %3045

3020:                                             ; preds = %3019
  %3021 = load x86_fp80, ptr %241, align 16, !tbaa !17
  %3022 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3021)
          to label %3023 unwind label %3041

3023:                                             ; preds = %3020
  br i1 %3022, label %3024, label %3045

3024:                                             ; preds = %3023
  store i8 1, ptr %243, align 1, !tbaa !11
  br label %3075

3025:                                             ; preds = %2994, %2979, %2951
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #7
  br label %3026

3026:                                             ; preds = %3025, %2947
  call void @llvm.lifetime.end.p0(i64 16, ptr %234) #7
  br label %3027

3027:                                             ; preds = %3026, %2943
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  br label %3028

3028:                                             ; preds = %3027, %2939
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #7
  br label %5774

3029:                                             ; preds = %2998
  %3030 = landingpad { ptr, i32 }
          cleanup
  %3031 = extractvalue { ptr, i32 } %3030, 0
  store ptr %3031, ptr %4, align 8
  %3032 = extractvalue { ptr, i32 } %3030, 1
  store i32 %3032, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #7
  br label %3117

3033:                                             ; preds = %3001
  %3034 = landingpad { ptr, i32 }
          cleanup
  %3035 = extractvalue { ptr, i32 } %3034, 0
  store ptr %3035, ptr %4, align 8
  %3036 = extractvalue { ptr, i32 } %3034, 1
  store i32 %3036, ptr %5, align 4
  br label %3116

3037:                                             ; preds = %3011, %3006
  %3038 = landingpad { ptr, i32 }
          cleanup
  %3039 = extractvalue { ptr, i32 } %3038, 0
  store ptr %3039, ptr %4, align 8
  %3040 = extractvalue { ptr, i32 } %3038, 1
  store i32 %3040, ptr %5, align 4
  br label %3115

3041:                                             ; preds = %3078, %3062, %3049, %3045, %3020, %3014
  %3042 = landingpad { ptr, i32 }
          cleanup
  %3043 = extractvalue { ptr, i32 } %3042, 0
  store ptr %3043, ptr %4, align 8
  %3044 = extractvalue { ptr, i32 } %3042, 1
  store i32 %3044, ptr %5, align 4
  br label %3114

3045:                                             ; preds = %3023, %3019
  %3046 = load x86_fp80, ptr %240, align 16, !tbaa !17
  %3047 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3046)
          to label %3048 unwind label %3041

3048:                                             ; preds = %3045
  br i1 %3047, label %3058, label %3049

3049:                                             ; preds = %3048
  %3050 = load x86_fp80, ptr %240, align 16, !tbaa !17
  %3051 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3050)
          to label %3052 unwind label %3041

3052:                                             ; preds = %3049
  br i1 %3051, label %3053, label %3058

3053:                                             ; preds = %3052
  %3054 = load x86_fp80, ptr %240, align 16, !tbaa !17
  %3055 = load x86_fp80, ptr %241, align 16, !tbaa !17
  %3056 = fcmp oeq x86_fp80 %3054, %3055
  br i1 %3056, label %3057, label %3058

3057:                                             ; preds = %3053
  store i8 1, ptr %243, align 1, !tbaa !11
  br label %3074

3058:                                             ; preds = %3053, %3052, %3048
  %3059 = load x86_fp80, ptr %242, align 16, !tbaa !17
  %3060 = fcmp olt x86_fp80 %3059, 0xK3FD0B424DC35095CD800
  br i1 %3060, label %3061, label %3062

3061:                                             ; preds = %3058
  store i8 1, ptr %243, align 1, !tbaa !11
  br label %3073

3062:                                             ; preds = %3058
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef nonnull align 8 dereferenceable(32) %238)
          to label %3063 unwind label %3041

3063:                                             ; preds = %3062
  %3064 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3065 = load x86_fp80, ptr %240, align 16, !tbaa !17
  %3066 = load x86_fp80, ptr %241, align 16, !tbaa !17
  %3067 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %244, i32 noundef %3064, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %3065, x86_fp80 noundef %3066, x86_fp80 noundef %3067)
          to label %3068 unwind label %3069

3068:                                             ; preds = %3063
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #7
  br label %3073

3069:                                             ; preds = %3063
  %3070 = landingpad { ptr, i32 }
          cleanup
  %3071 = extractvalue { ptr, i32 } %3070, 0
  store ptr %3071, ptr %4, align 8
  %3072 = extractvalue { ptr, i32 } %3070, 1
  store i32 %3072, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #7
  br label %3114

3073:                                             ; preds = %3068, %3061
  br label %3074

3074:                                             ; preds = %3073, %3057
  br label %3075

3075:                                             ; preds = %3074, %3024
  %3076 = load i8, ptr %243, align 1, !tbaa !11, !range !13, !noundef !14
  %3077 = trunc i8 %3076 to i1
  br i1 %3077, label %3078, label %3088

3078:                                             ; preds = %3075
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 8 dereferenceable(32) %238)
          to label %3079 unwind label %3041

3079:                                             ; preds = %3078
  %3080 = load x86_fp80, ptr %240, align 16, !tbaa !17
  %3081 = load x86_fp80, ptr %242, align 16, !tbaa !17
  %3082 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %245, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %3080, x86_fp80 noundef %3081, x86_fp80 noundef %3082)
          to label %3083 unwind label %3084

3083:                                             ; preds = %3079
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  br label %3088

3084:                                             ; preds = %3079
  %3085 = landingpad { ptr, i32 }
          cleanup
  %3086 = extractvalue { ptr, i32 } %3085, 0
  store ptr %3086, ptr %4, align 8
  %3087 = extractvalue { ptr, i32 } %3085, 1
  store i32 %3087, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  br label %3114

3088:                                             ; preds = %3083, %3075
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %242) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %240) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #7
  %3089 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3090 = add nsw i32 %3089, 1
  store i32 %3090, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %246) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %247) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %247)
          to label %3091 unwind label %3118

3091:                                             ; preds = %3088
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #7
  %3092 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #7
  store double %3092, ptr %248, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #7
  %3093 = call double @llvm.trunc.f64(double 0.000000e+00)
  store double %3093, ptr %249, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #7
  %3094 = load double, ptr %248, align 8, !tbaa !9
  %3095 = load double, ptr %249, align 8, !tbaa !9
  %3096 = fsub double %3094, %3095
  %3097 = invoke noundef double @_ZSt3absd(double noundef %3096)
          to label %3098 unwind label %3122

3098:                                             ; preds = %3091
  %3099 = load double, ptr %249, align 8, !tbaa !9
  %3100 = invoke noundef double @_ZSt3absd(double noundef %3099)
          to label %3101 unwind label %3122

3101:                                             ; preds = %3098
  %3102 = fadd double 1.000000e+00, %3100
  %3103 = fdiv double %3097, %3102
  store double %3103, ptr %250, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %251) #7
  store i8 0, ptr %251, align 1, !tbaa !11
  %3104 = load double, ptr %248, align 8, !tbaa !9
  %3105 = fpext double %3104 to x86_fp80
  %3106 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3105)
          to label %3107 unwind label %3126

3107:                                             ; preds = %3101
  br i1 %3106, label %3108, label %3130

3108:                                             ; preds = %3107
  %3109 = load double, ptr %249, align 8, !tbaa !9
  %3110 = fpext double %3109 to x86_fp80
  %3111 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3110)
          to label %3112 unwind label %3126

3112:                                             ; preds = %3108
  br i1 %3111, label %3113, label %3130

3113:                                             ; preds = %3112
  store i8 1, ptr %251, align 1, !tbaa !11
  br label %3161

3114:                                             ; preds = %3084, %3069, %3041
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #7
  br label %3115

3115:                                             ; preds = %3114, %3037
  call void @llvm.lifetime.end.p0(i64 16, ptr %242) #7
  br label %3116

3116:                                             ; preds = %3115, %3033
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %240) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #7
  br label %3117

3117:                                             ; preds = %3116, %3029
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #7
  br label %5774

3118:                                             ; preds = %3088
  %3119 = landingpad { ptr, i32 }
          cleanup
  %3120 = extractvalue { ptr, i32 } %3119, 0
  store ptr %3120, ptr %4, align 8
  %3121 = extractvalue { ptr, i32 } %3119, 1
  store i32 %3121, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #7
  br label %3201

3122:                                             ; preds = %3098, %3091
  %3123 = landingpad { ptr, i32 }
          cleanup
  %3124 = extractvalue { ptr, i32 } %3123, 0
  store ptr %3124, ptr %4, align 8
  %3125 = extractvalue { ptr, i32 } %3123, 1
  store i32 %3125, ptr %5, align 4
  br label %3200

3126:                                             ; preds = %3164, %3149, %3135, %3130, %3108, %3101
  %3127 = landingpad { ptr, i32 }
          cleanup
  %3128 = extractvalue { ptr, i32 } %3127, 0
  store ptr %3128, ptr %4, align 8
  %3129 = extractvalue { ptr, i32 } %3127, 1
  store i32 %3129, ptr %5, align 4
  br label %3199

3130:                                             ; preds = %3112, %3107
  %3131 = load double, ptr %248, align 8, !tbaa !9
  %3132 = fpext double %3131 to x86_fp80
  %3133 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3132)
          to label %3134 unwind label %3126

3134:                                             ; preds = %3130
  br i1 %3133, label %3145, label %3135

3135:                                             ; preds = %3134
  %3136 = load double, ptr %248, align 8, !tbaa !9
  %3137 = fpext double %3136 to x86_fp80
  %3138 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3137)
          to label %3139 unwind label %3126

3139:                                             ; preds = %3135
  br i1 %3138, label %3140, label %3145

3140:                                             ; preds = %3139
  %3141 = load double, ptr %248, align 8, !tbaa !9
  %3142 = load double, ptr %249, align 8, !tbaa !9
  %3143 = fcmp oeq double %3141, %3142
  br i1 %3143, label %3144, label %3145

3144:                                             ; preds = %3140
  store i8 1, ptr %251, align 1, !tbaa !11
  br label %3160

3145:                                             ; preds = %3140, %3139, %3134
  %3146 = load double, ptr %250, align 8, !tbaa !9
  %3147 = fcmp olt double %3146, 0x3D06849B86A12B9B
  br i1 %3147, label %3148, label %3149

3148:                                             ; preds = %3145
  store i8 1, ptr %251, align 1, !tbaa !11
  br label %3159

3149:                                             ; preds = %3145
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef nonnull align 8 dereferenceable(32) %246)
          to label %3150 unwind label %3126

3150:                                             ; preds = %3149
  %3151 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3152 = load double, ptr %248, align 8, !tbaa !9
  %3153 = load double, ptr %249, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %252, i32 noundef %3151, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3152, double noundef %3153, double noundef 0.000000e+00)
          to label %3154 unwind label %3155

3154:                                             ; preds = %3150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #7
  br label %3159

3155:                                             ; preds = %3150
  %3156 = landingpad { ptr, i32 }
          cleanup
  %3157 = extractvalue { ptr, i32 } %3156, 0
  store ptr %3157, ptr %4, align 8
  %3158 = extractvalue { ptr, i32 } %3156, 1
  store i32 %3158, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #7
  br label %3199

3159:                                             ; preds = %3154, %3148
  br label %3160

3160:                                             ; preds = %3159, %3144
  br label %3161

3161:                                             ; preds = %3160, %3113
  %3162 = load i8, ptr %251, align 1, !tbaa !11, !range !13, !noundef !14
  %3163 = trunc i8 %3162 to i1
  br i1 %3163, label %3164, label %3173

3164:                                             ; preds = %3161
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef nonnull align 8 dereferenceable(32) %246)
          to label %3165 unwind label %3126

3165:                                             ; preds = %3164
  %3166 = load double, ptr %248, align 8, !tbaa !9
  %3167 = load double, ptr %250, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %253, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3166, double noundef %3167, double noundef 0.000000e+00)
          to label %3168 unwind label %3169

3168:                                             ; preds = %3165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  br label %3173

3169:                                             ; preds = %3165
  %3170 = landingpad { ptr, i32 }
          cleanup
  %3171 = extractvalue { ptr, i32 } %3170, 0
  store ptr %3171, ptr %4, align 8
  %3172 = extractvalue { ptr, i32 } %3170, 1
  store i32 %3172, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  br label %3199

3173:                                             ; preds = %3168, %3161
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #7
  %3174 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3175 = add nsw i32 %3174, 1
  store i32 %3175, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %254) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %255) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %254, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %255)
          to label %3176 unwind label %3202

3176:                                             ; preds = %3173
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #7
  %3177 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #7
  store double %3177, ptr %256, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #7
  %3178 = call double @llvm.trunc.f64(double -0.000000e+00)
  store double %3178, ptr %257, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #7
  %3179 = load double, ptr %256, align 8, !tbaa !9
  %3180 = load double, ptr %257, align 8, !tbaa !9
  %3181 = fsub double %3179, %3180
  %3182 = invoke noundef double @_ZSt3absd(double noundef %3181)
          to label %3183 unwind label %3206

3183:                                             ; preds = %3176
  %3184 = load double, ptr %257, align 8, !tbaa !9
  %3185 = invoke noundef double @_ZSt3absd(double noundef %3184)
          to label %3186 unwind label %3206

3186:                                             ; preds = %3183
  %3187 = fadd double 1.000000e+00, %3185
  %3188 = fdiv double %3182, %3187
  store double %3188, ptr %258, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %259) #7
  store i8 0, ptr %259, align 1, !tbaa !11
  %3189 = load double, ptr %256, align 8, !tbaa !9
  %3190 = fpext double %3189 to x86_fp80
  %3191 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3190)
          to label %3192 unwind label %3210

3192:                                             ; preds = %3186
  br i1 %3191, label %3193, label %3214

3193:                                             ; preds = %3192
  %3194 = load double, ptr %257, align 8, !tbaa !9
  %3195 = fpext double %3194 to x86_fp80
  %3196 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3195)
          to label %3197 unwind label %3210

3197:                                             ; preds = %3193
  br i1 %3196, label %3198, label %3214

3198:                                             ; preds = %3197
  store i8 1, ptr %259, align 1, !tbaa !11
  br label %3245

3199:                                             ; preds = %3169, %3155, %3126
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #7
  br label %3200

3200:                                             ; preds = %3199, %3122
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #7
  br label %3201

3201:                                             ; preds = %3200, %3118
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #7
  br label %5774

3202:                                             ; preds = %3173
  %3203 = landingpad { ptr, i32 }
          cleanup
  %3204 = extractvalue { ptr, i32 } %3203, 0
  store ptr %3204, ptr %4, align 8
  %3205 = extractvalue { ptr, i32 } %3203, 1
  store i32 %3205, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #7
  br label %3285

3206:                                             ; preds = %3183, %3176
  %3207 = landingpad { ptr, i32 }
          cleanup
  %3208 = extractvalue { ptr, i32 } %3207, 0
  store ptr %3208, ptr %4, align 8
  %3209 = extractvalue { ptr, i32 } %3207, 1
  store i32 %3209, ptr %5, align 4
  br label %3284

3210:                                             ; preds = %3248, %3233, %3219, %3214, %3193, %3186
  %3211 = landingpad { ptr, i32 }
          cleanup
  %3212 = extractvalue { ptr, i32 } %3211, 0
  store ptr %3212, ptr %4, align 8
  %3213 = extractvalue { ptr, i32 } %3211, 1
  store i32 %3213, ptr %5, align 4
  br label %3283

3214:                                             ; preds = %3197, %3192
  %3215 = load double, ptr %256, align 8, !tbaa !9
  %3216 = fpext double %3215 to x86_fp80
  %3217 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3216)
          to label %3218 unwind label %3210

3218:                                             ; preds = %3214
  br i1 %3217, label %3229, label %3219

3219:                                             ; preds = %3218
  %3220 = load double, ptr %256, align 8, !tbaa !9
  %3221 = fpext double %3220 to x86_fp80
  %3222 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3221)
          to label %3223 unwind label %3210

3223:                                             ; preds = %3219
  br i1 %3222, label %3224, label %3229

3224:                                             ; preds = %3223
  %3225 = load double, ptr %256, align 8, !tbaa !9
  %3226 = load double, ptr %257, align 8, !tbaa !9
  %3227 = fcmp oeq double %3225, %3226
  br i1 %3227, label %3228, label %3229

3228:                                             ; preds = %3224
  store i8 1, ptr %259, align 1, !tbaa !11
  br label %3244

3229:                                             ; preds = %3224, %3223, %3218
  %3230 = load double, ptr %258, align 8, !tbaa !9
  %3231 = fcmp olt double %3230, 0x3D06849B86A12B9B
  br i1 %3231, label %3232, label %3233

3232:                                             ; preds = %3229
  store i8 1, ptr %259, align 1, !tbaa !11
  br label %3243

3233:                                             ; preds = %3229
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %260, ptr noundef nonnull align 8 dereferenceable(32) %254)
          to label %3234 unwind label %3210

3234:                                             ; preds = %3233
  %3235 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3236 = load double, ptr %256, align 8, !tbaa !9
  %3237 = load double, ptr %257, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %260, i32 noundef %3235, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3236, double noundef %3237, double noundef -0.000000e+00)
          to label %3238 unwind label %3239

3238:                                             ; preds = %3234
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #7
  br label %3243

3239:                                             ; preds = %3234
  %3240 = landingpad { ptr, i32 }
          cleanup
  %3241 = extractvalue { ptr, i32 } %3240, 0
  store ptr %3241, ptr %4, align 8
  %3242 = extractvalue { ptr, i32 } %3240, 1
  store i32 %3242, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #7
  br label %3283

3243:                                             ; preds = %3238, %3232
  br label %3244

3244:                                             ; preds = %3243, %3228
  br label %3245

3245:                                             ; preds = %3244, %3198
  %3246 = load i8, ptr %259, align 1, !tbaa !11, !range !13, !noundef !14
  %3247 = trunc i8 %3246 to i1
  br i1 %3247, label %3248, label %3257

3248:                                             ; preds = %3245
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull align 8 dereferenceable(32) %254)
          to label %3249 unwind label %3210

3249:                                             ; preds = %3248
  %3250 = load double, ptr %256, align 8, !tbaa !9
  %3251 = load double, ptr %258, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %261, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3250, double noundef %3251, double noundef -0.000000e+00)
          to label %3252 unwind label %3253

3252:                                             ; preds = %3249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  br label %3257

3253:                                             ; preds = %3249
  %3254 = landingpad { ptr, i32 }
          cleanup
  %3255 = extractvalue { ptr, i32 } %3254, 0
  store ptr %3255, ptr %4, align 8
  %3256 = extractvalue { ptr, i32 } %3254, 1
  store i32 %3256, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  br label %3283

3257:                                             ; preds = %3252, %3245
  call void @llvm.lifetime.end.p0(i64 1, ptr %259) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #7
  %3258 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3259 = add nsw i32 %3258, 1
  store i32 %3259, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %262) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %263) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %262, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %263)
          to label %3260 unwind label %3286

3260:                                             ; preds = %3257
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #7
  %3261 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #7
  store double %3261, ptr %264, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %265) #7
  %3262 = call double @llvm.trunc.f64(double 4.200000e+00)
  store double %3262, ptr %265, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %266) #7
  %3263 = load double, ptr %264, align 8, !tbaa !9
  %3264 = load double, ptr %265, align 8, !tbaa !9
  %3265 = fsub double %3263, %3264
  %3266 = invoke noundef double @_ZSt3absd(double noundef %3265)
          to label %3267 unwind label %3290

3267:                                             ; preds = %3260
  %3268 = load double, ptr %265, align 8, !tbaa !9
  %3269 = invoke noundef double @_ZSt3absd(double noundef %3268)
          to label %3270 unwind label %3290

3270:                                             ; preds = %3267
  %3271 = fadd double 1.000000e+00, %3269
  %3272 = fdiv double %3266, %3271
  store double %3272, ptr %266, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %267) #7
  store i8 0, ptr %267, align 1, !tbaa !11
  %3273 = load double, ptr %264, align 8, !tbaa !9
  %3274 = fpext double %3273 to x86_fp80
  %3275 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3274)
          to label %3276 unwind label %3294

3276:                                             ; preds = %3270
  br i1 %3275, label %3277, label %3298

3277:                                             ; preds = %3276
  %3278 = load double, ptr %265, align 8, !tbaa !9
  %3279 = fpext double %3278 to x86_fp80
  %3280 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3279)
          to label %3281 unwind label %3294

3281:                                             ; preds = %3277
  br i1 %3280, label %3282, label %3298

3282:                                             ; preds = %3281
  store i8 1, ptr %267, align 1, !tbaa !11
  br label %3329

3283:                                             ; preds = %3253, %3239, %3210
  call void @llvm.lifetime.end.p0(i64 1, ptr %259) #7
  br label %3284

3284:                                             ; preds = %3283, %3206
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #7
  br label %3285

3285:                                             ; preds = %3284, %3202
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #7
  br label %5774

3286:                                             ; preds = %3257
  %3287 = landingpad { ptr, i32 }
          cleanup
  %3288 = extractvalue { ptr, i32 } %3287, 0
  store ptr %3288, ptr %4, align 8
  %3289 = extractvalue { ptr, i32 } %3287, 1
  store i32 %3289, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #7
  br label %3369

3290:                                             ; preds = %3267, %3260
  %3291 = landingpad { ptr, i32 }
          cleanup
  %3292 = extractvalue { ptr, i32 } %3291, 0
  store ptr %3292, ptr %4, align 8
  %3293 = extractvalue { ptr, i32 } %3291, 1
  store i32 %3293, ptr %5, align 4
  br label %3368

3294:                                             ; preds = %3332, %3317, %3303, %3298, %3277, %3270
  %3295 = landingpad { ptr, i32 }
          cleanup
  %3296 = extractvalue { ptr, i32 } %3295, 0
  store ptr %3296, ptr %4, align 8
  %3297 = extractvalue { ptr, i32 } %3295, 1
  store i32 %3297, ptr %5, align 4
  br label %3367

3298:                                             ; preds = %3281, %3276
  %3299 = load double, ptr %264, align 8, !tbaa !9
  %3300 = fpext double %3299 to x86_fp80
  %3301 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3300)
          to label %3302 unwind label %3294

3302:                                             ; preds = %3298
  br i1 %3301, label %3313, label %3303

3303:                                             ; preds = %3302
  %3304 = load double, ptr %264, align 8, !tbaa !9
  %3305 = fpext double %3304 to x86_fp80
  %3306 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3305)
          to label %3307 unwind label %3294

3307:                                             ; preds = %3303
  br i1 %3306, label %3308, label %3313

3308:                                             ; preds = %3307
  %3309 = load double, ptr %264, align 8, !tbaa !9
  %3310 = load double, ptr %265, align 8, !tbaa !9
  %3311 = fcmp oeq double %3309, %3310
  br i1 %3311, label %3312, label %3313

3312:                                             ; preds = %3308
  store i8 1, ptr %267, align 1, !tbaa !11
  br label %3328

3313:                                             ; preds = %3308, %3307, %3302
  %3314 = load double, ptr %266, align 8, !tbaa !9
  %3315 = fcmp olt double %3314, 0x3D06849B86A12B9B
  br i1 %3315, label %3316, label %3317

3316:                                             ; preds = %3313
  store i8 1, ptr %267, align 1, !tbaa !11
  br label %3327

3317:                                             ; preds = %3313
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef nonnull align 8 dereferenceable(32) %262)
          to label %3318 unwind label %3294

3318:                                             ; preds = %3317
  %3319 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3320 = load double, ptr %264, align 8, !tbaa !9
  %3321 = load double, ptr %265, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %268, i32 noundef %3319, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3320, double noundef %3321, double noundef 4.200000e+00)
          to label %3322 unwind label %3323

3322:                                             ; preds = %3318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #7
  br label %3327

3323:                                             ; preds = %3318
  %3324 = landingpad { ptr, i32 }
          cleanup
  %3325 = extractvalue { ptr, i32 } %3324, 0
  store ptr %3325, ptr %4, align 8
  %3326 = extractvalue { ptr, i32 } %3324, 1
  store i32 %3326, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #7
  br label %3367

3327:                                             ; preds = %3322, %3316
  br label %3328

3328:                                             ; preds = %3327, %3312
  br label %3329

3329:                                             ; preds = %3328, %3282
  %3330 = load i8, ptr %267, align 1, !tbaa !11, !range !13, !noundef !14
  %3331 = trunc i8 %3330 to i1
  br i1 %3331, label %3332, label %3341

3332:                                             ; preds = %3329
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull align 8 dereferenceable(32) %262)
          to label %3333 unwind label %3294

3333:                                             ; preds = %3332
  %3334 = load double, ptr %264, align 8, !tbaa !9
  %3335 = load double, ptr %266, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %269, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3334, double noundef %3335, double noundef 4.200000e+00)
          to label %3336 unwind label %3337

3336:                                             ; preds = %3333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #7
  br label %3341

3337:                                             ; preds = %3333
  %3338 = landingpad { ptr, i32 }
          cleanup
  %3339 = extractvalue { ptr, i32 } %3338, 0
  store ptr %3339, ptr %4, align 8
  %3340 = extractvalue { ptr, i32 } %3338, 1
  store i32 %3340, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #7
  br label %3367

3341:                                             ; preds = %3336, %3329
  call void @llvm.lifetime.end.p0(i64 1, ptr %267) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %262) #7
  %3342 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3343 = add nsw i32 %3342, 1
  store i32 %3343, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %270) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %271) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %271)
          to label %3344 unwind label %3370

3344:                                             ; preds = %3341
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %271) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #7
  %3345 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #7
  store double %3345, ptr %272, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %273) #7
  %3346 = call double @llvm.trunc.f64(double 4.500000e+00)
  store double %3346, ptr %273, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %274) #7
  %3347 = load double, ptr %272, align 8, !tbaa !9
  %3348 = load double, ptr %273, align 8, !tbaa !9
  %3349 = fsub double %3347, %3348
  %3350 = invoke noundef double @_ZSt3absd(double noundef %3349)
          to label %3351 unwind label %3374

3351:                                             ; preds = %3344
  %3352 = load double, ptr %273, align 8, !tbaa !9
  %3353 = invoke noundef double @_ZSt3absd(double noundef %3352)
          to label %3354 unwind label %3374

3354:                                             ; preds = %3351
  %3355 = fadd double 1.000000e+00, %3353
  %3356 = fdiv double %3350, %3355
  store double %3356, ptr %274, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %275) #7
  store i8 0, ptr %275, align 1, !tbaa !11
  %3357 = load double, ptr %272, align 8, !tbaa !9
  %3358 = fpext double %3357 to x86_fp80
  %3359 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3358)
          to label %3360 unwind label %3378

3360:                                             ; preds = %3354
  br i1 %3359, label %3361, label %3382

3361:                                             ; preds = %3360
  %3362 = load double, ptr %273, align 8, !tbaa !9
  %3363 = fpext double %3362 to x86_fp80
  %3364 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3363)
          to label %3365 unwind label %3378

3365:                                             ; preds = %3361
  br i1 %3364, label %3366, label %3382

3366:                                             ; preds = %3365
  store i8 1, ptr %275, align 1, !tbaa !11
  br label %3413

3367:                                             ; preds = %3337, %3323, %3294
  call void @llvm.lifetime.end.p0(i64 1, ptr %267) #7
  br label %3368

3368:                                             ; preds = %3367, %3290
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #7
  br label %3369

3369:                                             ; preds = %3368, %3286
  call void @llvm.lifetime.end.p0(i64 32, ptr %262) #7
  br label %5774

3370:                                             ; preds = %3341
  %3371 = landingpad { ptr, i32 }
          cleanup
  %3372 = extractvalue { ptr, i32 } %3371, 0
  store ptr %3372, ptr %4, align 8
  %3373 = extractvalue { ptr, i32 } %3371, 1
  store i32 %3373, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %271) #7
  br label %3453

3374:                                             ; preds = %3351, %3344
  %3375 = landingpad { ptr, i32 }
          cleanup
  %3376 = extractvalue { ptr, i32 } %3375, 0
  store ptr %3376, ptr %4, align 8
  %3377 = extractvalue { ptr, i32 } %3375, 1
  store i32 %3377, ptr %5, align 4
  br label %3452

3378:                                             ; preds = %3416, %3401, %3387, %3382, %3361, %3354
  %3379 = landingpad { ptr, i32 }
          cleanup
  %3380 = extractvalue { ptr, i32 } %3379, 0
  store ptr %3380, ptr %4, align 8
  %3381 = extractvalue { ptr, i32 } %3379, 1
  store i32 %3381, ptr %5, align 4
  br label %3451

3382:                                             ; preds = %3365, %3360
  %3383 = load double, ptr %272, align 8, !tbaa !9
  %3384 = fpext double %3383 to x86_fp80
  %3385 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3384)
          to label %3386 unwind label %3378

3386:                                             ; preds = %3382
  br i1 %3385, label %3397, label %3387

3387:                                             ; preds = %3386
  %3388 = load double, ptr %272, align 8, !tbaa !9
  %3389 = fpext double %3388 to x86_fp80
  %3390 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3389)
          to label %3391 unwind label %3378

3391:                                             ; preds = %3387
  br i1 %3390, label %3392, label %3397

3392:                                             ; preds = %3391
  %3393 = load double, ptr %272, align 8, !tbaa !9
  %3394 = load double, ptr %273, align 8, !tbaa !9
  %3395 = fcmp oeq double %3393, %3394
  br i1 %3395, label %3396, label %3397

3396:                                             ; preds = %3392
  store i8 1, ptr %275, align 1, !tbaa !11
  br label %3412

3397:                                             ; preds = %3392, %3391, %3386
  %3398 = load double, ptr %274, align 8, !tbaa !9
  %3399 = fcmp olt double %3398, 0x3D06849B86A12B9B
  br i1 %3399, label %3400, label %3401

3400:                                             ; preds = %3397
  store i8 1, ptr %275, align 1, !tbaa !11
  br label %3411

3401:                                             ; preds = %3397
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef nonnull align 8 dereferenceable(32) %270)
          to label %3402 unwind label %3378

3402:                                             ; preds = %3401
  %3403 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3404 = load double, ptr %272, align 8, !tbaa !9
  %3405 = load double, ptr %273, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %276, i32 noundef %3403, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3404, double noundef %3405, double noundef 4.500000e+00)
          to label %3406 unwind label %3407

3406:                                             ; preds = %3402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #7
  br label %3411

3407:                                             ; preds = %3402
  %3408 = landingpad { ptr, i32 }
          cleanup
  %3409 = extractvalue { ptr, i32 } %3408, 0
  store ptr %3409, ptr %4, align 8
  %3410 = extractvalue { ptr, i32 } %3408, 1
  store i32 %3410, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #7
  br label %3451

3411:                                             ; preds = %3406, %3400
  br label %3412

3412:                                             ; preds = %3411, %3396
  br label %3413

3413:                                             ; preds = %3412, %3366
  %3414 = load i8, ptr %275, align 1, !tbaa !11, !range !13, !noundef !14
  %3415 = trunc i8 %3414 to i1
  br i1 %3415, label %3416, label %3425

3416:                                             ; preds = %3413
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(32) %270)
          to label %3417 unwind label %3378

3417:                                             ; preds = %3416
  %3418 = load double, ptr %272, align 8, !tbaa !9
  %3419 = load double, ptr %274, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %277, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3418, double noundef %3419, double noundef 4.500000e+00)
          to label %3420 unwind label %3421

3420:                                             ; preds = %3417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #7
  br label %3425

3421:                                             ; preds = %3417
  %3422 = landingpad { ptr, i32 }
          cleanup
  %3423 = extractvalue { ptr, i32 } %3422, 0
  store ptr %3423, ptr %4, align 8
  %3424 = extractvalue { ptr, i32 } %3422, 1
  store i32 %3424, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #7
  br label %3451

3425:                                             ; preds = %3420, %3413
  call void @llvm.lifetime.end.p0(i64 1, ptr %275) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %270) #7
  %3426 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3427 = add nsw i32 %3426, 1
  store i32 %3427, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %278) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %279) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %279)
          to label %3428 unwind label %3454

3428:                                             ; preds = %3425
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %279) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %280) #7
  %3429 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #7
  store double %3429, ptr %280, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #7
  %3430 = call double @llvm.trunc.f64(double 4.700000e+00)
  store double %3430, ptr %281, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #7
  %3431 = load double, ptr %280, align 8, !tbaa !9
  %3432 = load double, ptr %281, align 8, !tbaa !9
  %3433 = fsub double %3431, %3432
  %3434 = invoke noundef double @_ZSt3absd(double noundef %3433)
          to label %3435 unwind label %3458

3435:                                             ; preds = %3428
  %3436 = load double, ptr %281, align 8, !tbaa !9
  %3437 = invoke noundef double @_ZSt3absd(double noundef %3436)
          to label %3438 unwind label %3458

3438:                                             ; preds = %3435
  %3439 = fadd double 1.000000e+00, %3437
  %3440 = fdiv double %3434, %3439
  store double %3440, ptr %282, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %283) #7
  store i8 0, ptr %283, align 1, !tbaa !11
  %3441 = load double, ptr %280, align 8, !tbaa !9
  %3442 = fpext double %3441 to x86_fp80
  %3443 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3442)
          to label %3444 unwind label %3462

3444:                                             ; preds = %3438
  br i1 %3443, label %3445, label %3466

3445:                                             ; preds = %3444
  %3446 = load double, ptr %281, align 8, !tbaa !9
  %3447 = fpext double %3446 to x86_fp80
  %3448 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3447)
          to label %3449 unwind label %3462

3449:                                             ; preds = %3445
  br i1 %3448, label %3450, label %3466

3450:                                             ; preds = %3449
  store i8 1, ptr %283, align 1, !tbaa !11
  br label %3497

3451:                                             ; preds = %3421, %3407, %3378
  call void @llvm.lifetime.end.p0(i64 1, ptr %275) #7
  br label %3452

3452:                                             ; preds = %3451, %3374
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #7
  br label %3453

3453:                                             ; preds = %3452, %3370
  call void @llvm.lifetime.end.p0(i64 32, ptr %270) #7
  br label %5774

3454:                                             ; preds = %3425
  %3455 = landingpad { ptr, i32 }
          cleanup
  %3456 = extractvalue { ptr, i32 } %3455, 0
  store ptr %3456, ptr %4, align 8
  %3457 = extractvalue { ptr, i32 } %3455, 1
  store i32 %3457, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %279) #7
  br label %3537

3458:                                             ; preds = %3435, %3428
  %3459 = landingpad { ptr, i32 }
          cleanup
  %3460 = extractvalue { ptr, i32 } %3459, 0
  store ptr %3460, ptr %4, align 8
  %3461 = extractvalue { ptr, i32 } %3459, 1
  store i32 %3461, ptr %5, align 4
  br label %3536

3462:                                             ; preds = %3500, %3485, %3471, %3466, %3445, %3438
  %3463 = landingpad { ptr, i32 }
          cleanup
  %3464 = extractvalue { ptr, i32 } %3463, 0
  store ptr %3464, ptr %4, align 8
  %3465 = extractvalue { ptr, i32 } %3463, 1
  store i32 %3465, ptr %5, align 4
  br label %3535

3466:                                             ; preds = %3449, %3444
  %3467 = load double, ptr %280, align 8, !tbaa !9
  %3468 = fpext double %3467 to x86_fp80
  %3469 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3468)
          to label %3470 unwind label %3462

3470:                                             ; preds = %3466
  br i1 %3469, label %3481, label %3471

3471:                                             ; preds = %3470
  %3472 = load double, ptr %280, align 8, !tbaa !9
  %3473 = fpext double %3472 to x86_fp80
  %3474 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3473)
          to label %3475 unwind label %3462

3475:                                             ; preds = %3471
  br i1 %3474, label %3476, label %3481

3476:                                             ; preds = %3475
  %3477 = load double, ptr %280, align 8, !tbaa !9
  %3478 = load double, ptr %281, align 8, !tbaa !9
  %3479 = fcmp oeq double %3477, %3478
  br i1 %3479, label %3480, label %3481

3480:                                             ; preds = %3476
  store i8 1, ptr %283, align 1, !tbaa !11
  br label %3496

3481:                                             ; preds = %3476, %3475, %3470
  %3482 = load double, ptr %282, align 8, !tbaa !9
  %3483 = fcmp olt double %3482, 0x3D06849B86A12B9B
  br i1 %3483, label %3484, label %3485

3484:                                             ; preds = %3481
  store i8 1, ptr %283, align 1, !tbaa !11
  br label %3495

3485:                                             ; preds = %3481
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(32) %278)
          to label %3486 unwind label %3462

3486:                                             ; preds = %3485
  %3487 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3488 = load double, ptr %280, align 8, !tbaa !9
  %3489 = load double, ptr %281, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %284, i32 noundef %3487, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3488, double noundef %3489, double noundef 4.700000e+00)
          to label %3490 unwind label %3491

3490:                                             ; preds = %3486
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  br label %3495

3491:                                             ; preds = %3486
  %3492 = landingpad { ptr, i32 }
          cleanup
  %3493 = extractvalue { ptr, i32 } %3492, 0
  store ptr %3493, ptr %4, align 8
  %3494 = extractvalue { ptr, i32 } %3492, 1
  store i32 %3494, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  br label %3535

3495:                                             ; preds = %3490, %3484
  br label %3496

3496:                                             ; preds = %3495, %3480
  br label %3497

3497:                                             ; preds = %3496, %3450
  %3498 = load i8, ptr %283, align 1, !tbaa !11, !range !13, !noundef !14
  %3499 = trunc i8 %3498 to i1
  br i1 %3499, label %3500, label %3509

3500:                                             ; preds = %3497
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %285, ptr noundef nonnull align 8 dereferenceable(32) %278)
          to label %3501 unwind label %3462

3501:                                             ; preds = %3500
  %3502 = load double, ptr %280, align 8, !tbaa !9
  %3503 = load double, ptr %282, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %285, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3502, double noundef %3503, double noundef 4.700000e+00)
          to label %3504 unwind label %3505

3504:                                             ; preds = %3501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #7
  br label %3509

3505:                                             ; preds = %3501
  %3506 = landingpad { ptr, i32 }
          cleanup
  %3507 = extractvalue { ptr, i32 } %3506, 0
  store ptr %3507, ptr %4, align 8
  %3508 = extractvalue { ptr, i32 } %3506, 1
  store i32 %3508, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #7
  br label %3535

3509:                                             ; preds = %3504, %3497
  call void @llvm.lifetime.end.p0(i64 1, ptr %283) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #7
  %3510 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3511 = add nsw i32 %3510, 1
  store i32 %3511, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %286) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %287) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %287)
          to label %3512 unwind label %3538

3512:                                             ; preds = %3509
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %287) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %288) #7
  %3513 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #7
  store double %3513, ptr %288, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #7
  %3514 = call double @llvm.trunc.f64(double 5.000000e+00)
  store double %3514, ptr %289, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #7
  %3515 = load double, ptr %288, align 8, !tbaa !9
  %3516 = load double, ptr %289, align 8, !tbaa !9
  %3517 = fsub double %3515, %3516
  %3518 = invoke noundef double @_ZSt3absd(double noundef %3517)
          to label %3519 unwind label %3542

3519:                                             ; preds = %3512
  %3520 = load double, ptr %289, align 8, !tbaa !9
  %3521 = invoke noundef double @_ZSt3absd(double noundef %3520)
          to label %3522 unwind label %3542

3522:                                             ; preds = %3519
  %3523 = fadd double 1.000000e+00, %3521
  %3524 = fdiv double %3518, %3523
  store double %3524, ptr %290, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %291) #7
  store i8 0, ptr %291, align 1, !tbaa !11
  %3525 = load double, ptr %288, align 8, !tbaa !9
  %3526 = fpext double %3525 to x86_fp80
  %3527 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3526)
          to label %3528 unwind label %3546

3528:                                             ; preds = %3522
  br i1 %3527, label %3529, label %3550

3529:                                             ; preds = %3528
  %3530 = load double, ptr %289, align 8, !tbaa !9
  %3531 = fpext double %3530 to x86_fp80
  %3532 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3531)
          to label %3533 unwind label %3546

3533:                                             ; preds = %3529
  br i1 %3532, label %3534, label %3550

3534:                                             ; preds = %3533
  store i8 1, ptr %291, align 1, !tbaa !11
  br label %3581

3535:                                             ; preds = %3505, %3491, %3462
  call void @llvm.lifetime.end.p0(i64 1, ptr %283) #7
  br label %3536

3536:                                             ; preds = %3535, %3458
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #7
  br label %3537

3537:                                             ; preds = %3536, %3454
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #7
  br label %5774

3538:                                             ; preds = %3509
  %3539 = landingpad { ptr, i32 }
          cleanup
  %3540 = extractvalue { ptr, i32 } %3539, 0
  store ptr %3540, ptr %4, align 8
  %3541 = extractvalue { ptr, i32 } %3539, 1
  store i32 %3541, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %287) #7
  br label %3621

3542:                                             ; preds = %3519, %3512
  %3543 = landingpad { ptr, i32 }
          cleanup
  %3544 = extractvalue { ptr, i32 } %3543, 0
  store ptr %3544, ptr %4, align 8
  %3545 = extractvalue { ptr, i32 } %3543, 1
  store i32 %3545, ptr %5, align 4
  br label %3620

3546:                                             ; preds = %3584, %3569, %3555, %3550, %3529, %3522
  %3547 = landingpad { ptr, i32 }
          cleanup
  %3548 = extractvalue { ptr, i32 } %3547, 0
  store ptr %3548, ptr %4, align 8
  %3549 = extractvalue { ptr, i32 } %3547, 1
  store i32 %3549, ptr %5, align 4
  br label %3619

3550:                                             ; preds = %3533, %3528
  %3551 = load double, ptr %288, align 8, !tbaa !9
  %3552 = fpext double %3551 to x86_fp80
  %3553 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3552)
          to label %3554 unwind label %3546

3554:                                             ; preds = %3550
  br i1 %3553, label %3565, label %3555

3555:                                             ; preds = %3554
  %3556 = load double, ptr %288, align 8, !tbaa !9
  %3557 = fpext double %3556 to x86_fp80
  %3558 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3557)
          to label %3559 unwind label %3546

3559:                                             ; preds = %3555
  br i1 %3558, label %3560, label %3565

3560:                                             ; preds = %3559
  %3561 = load double, ptr %288, align 8, !tbaa !9
  %3562 = load double, ptr %289, align 8, !tbaa !9
  %3563 = fcmp oeq double %3561, %3562
  br i1 %3563, label %3564, label %3565

3564:                                             ; preds = %3560
  store i8 1, ptr %291, align 1, !tbaa !11
  br label %3580

3565:                                             ; preds = %3560, %3559, %3554
  %3566 = load double, ptr %290, align 8, !tbaa !9
  %3567 = fcmp olt double %3566, 0x3D06849B86A12B9B
  br i1 %3567, label %3568, label %3569

3568:                                             ; preds = %3565
  store i8 1, ptr %291, align 1, !tbaa !11
  br label %3579

3569:                                             ; preds = %3565
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(32) %286)
          to label %3570 unwind label %3546

3570:                                             ; preds = %3569
  %3571 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3572 = load double, ptr %288, align 8, !tbaa !9
  %3573 = load double, ptr %289, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %292, i32 noundef %3571, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3572, double noundef %3573, double noundef 5.000000e+00)
          to label %3574 unwind label %3575

3574:                                             ; preds = %3570
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  br label %3579

3575:                                             ; preds = %3570
  %3576 = landingpad { ptr, i32 }
          cleanup
  %3577 = extractvalue { ptr, i32 } %3576, 0
  store ptr %3577, ptr %4, align 8
  %3578 = extractvalue { ptr, i32 } %3576, 1
  store i32 %3578, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  br label %3619

3579:                                             ; preds = %3574, %3568
  br label %3580

3580:                                             ; preds = %3579, %3564
  br label %3581

3581:                                             ; preds = %3580, %3534
  %3582 = load i8, ptr %291, align 1, !tbaa !11, !range !13, !noundef !14
  %3583 = trunc i8 %3582 to i1
  br i1 %3583, label %3584, label %3593

3584:                                             ; preds = %3581
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull align 8 dereferenceable(32) %286)
          to label %3585 unwind label %3546

3585:                                             ; preds = %3584
  %3586 = load double, ptr %288, align 8, !tbaa !9
  %3587 = load double, ptr %290, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %293, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3586, double noundef %3587, double noundef 5.000000e+00)
          to label %3588 unwind label %3589

3588:                                             ; preds = %3585
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  br label %3593

3589:                                             ; preds = %3585
  %3590 = landingpad { ptr, i32 }
          cleanup
  %3591 = extractvalue { ptr, i32 } %3590, 0
  store ptr %3591, ptr %4, align 8
  %3592 = extractvalue { ptr, i32 } %3590, 1
  store i32 %3592, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  br label %3619

3593:                                             ; preds = %3588, %3581
  call void @llvm.lifetime.end.p0(i64 1, ptr %291) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %288) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %286) #7
  %3594 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3595 = add nsw i32 %3594, 1
  store i32 %3595, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %294) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %295) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %295)
          to label %3596 unwind label %3622

3596:                                             ; preds = %3593
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %295) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %296) #7
  %3597 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #7
  store double %3597, ptr %296, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %297) #7
  %3598 = call double @llvm.trunc.f64(double -4.200000e+00)
  store double %3598, ptr %297, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %298) #7
  %3599 = load double, ptr %296, align 8, !tbaa !9
  %3600 = load double, ptr %297, align 8, !tbaa !9
  %3601 = fsub double %3599, %3600
  %3602 = invoke noundef double @_ZSt3absd(double noundef %3601)
          to label %3603 unwind label %3626

3603:                                             ; preds = %3596
  %3604 = load double, ptr %297, align 8, !tbaa !9
  %3605 = invoke noundef double @_ZSt3absd(double noundef %3604)
          to label %3606 unwind label %3626

3606:                                             ; preds = %3603
  %3607 = fadd double 1.000000e+00, %3605
  %3608 = fdiv double %3602, %3607
  store double %3608, ptr %298, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %299) #7
  store i8 0, ptr %299, align 1, !tbaa !11
  %3609 = load double, ptr %296, align 8, !tbaa !9
  %3610 = fpext double %3609 to x86_fp80
  %3611 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3610)
          to label %3612 unwind label %3630

3612:                                             ; preds = %3606
  br i1 %3611, label %3613, label %3634

3613:                                             ; preds = %3612
  %3614 = load double, ptr %297, align 8, !tbaa !9
  %3615 = fpext double %3614 to x86_fp80
  %3616 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3615)
          to label %3617 unwind label %3630

3617:                                             ; preds = %3613
  br i1 %3616, label %3618, label %3634

3618:                                             ; preds = %3617
  store i8 1, ptr %299, align 1, !tbaa !11
  br label %3665

3619:                                             ; preds = %3589, %3575, %3546
  call void @llvm.lifetime.end.p0(i64 1, ptr %291) #7
  br label %3620

3620:                                             ; preds = %3619, %3542
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %288) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #7
  br label %3621

3621:                                             ; preds = %3620, %3538
  call void @llvm.lifetime.end.p0(i64 32, ptr %286) #7
  br label %5774

3622:                                             ; preds = %3593
  %3623 = landingpad { ptr, i32 }
          cleanup
  %3624 = extractvalue { ptr, i32 } %3623, 0
  store ptr %3624, ptr %4, align 8
  %3625 = extractvalue { ptr, i32 } %3623, 1
  store i32 %3625, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %295) #7
  br label %3705

3626:                                             ; preds = %3603, %3596
  %3627 = landingpad { ptr, i32 }
          cleanup
  %3628 = extractvalue { ptr, i32 } %3627, 0
  store ptr %3628, ptr %4, align 8
  %3629 = extractvalue { ptr, i32 } %3627, 1
  store i32 %3629, ptr %5, align 4
  br label %3704

3630:                                             ; preds = %3668, %3653, %3639, %3634, %3613, %3606
  %3631 = landingpad { ptr, i32 }
          cleanup
  %3632 = extractvalue { ptr, i32 } %3631, 0
  store ptr %3632, ptr %4, align 8
  %3633 = extractvalue { ptr, i32 } %3631, 1
  store i32 %3633, ptr %5, align 4
  br label %3703

3634:                                             ; preds = %3617, %3612
  %3635 = load double, ptr %296, align 8, !tbaa !9
  %3636 = fpext double %3635 to x86_fp80
  %3637 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3636)
          to label %3638 unwind label %3630

3638:                                             ; preds = %3634
  br i1 %3637, label %3649, label %3639

3639:                                             ; preds = %3638
  %3640 = load double, ptr %296, align 8, !tbaa !9
  %3641 = fpext double %3640 to x86_fp80
  %3642 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3641)
          to label %3643 unwind label %3630

3643:                                             ; preds = %3639
  br i1 %3642, label %3644, label %3649

3644:                                             ; preds = %3643
  %3645 = load double, ptr %296, align 8, !tbaa !9
  %3646 = load double, ptr %297, align 8, !tbaa !9
  %3647 = fcmp oeq double %3645, %3646
  br i1 %3647, label %3648, label %3649

3648:                                             ; preds = %3644
  store i8 1, ptr %299, align 1, !tbaa !11
  br label %3664

3649:                                             ; preds = %3644, %3643, %3638
  %3650 = load double, ptr %298, align 8, !tbaa !9
  %3651 = fcmp olt double %3650, 0x3D06849B86A12B9B
  br i1 %3651, label %3652, label %3653

3652:                                             ; preds = %3649
  store i8 1, ptr %299, align 1, !tbaa !11
  br label %3663

3653:                                             ; preds = %3649
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef nonnull align 8 dereferenceable(32) %294)
          to label %3654 unwind label %3630

3654:                                             ; preds = %3653
  %3655 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3656 = load double, ptr %296, align 8, !tbaa !9
  %3657 = load double, ptr %297, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %300, i32 noundef %3655, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3656, double noundef %3657, double noundef -4.200000e+00)
          to label %3658 unwind label %3659

3658:                                             ; preds = %3654
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  br label %3663

3659:                                             ; preds = %3654
  %3660 = landingpad { ptr, i32 }
          cleanup
  %3661 = extractvalue { ptr, i32 } %3660, 0
  store ptr %3661, ptr %4, align 8
  %3662 = extractvalue { ptr, i32 } %3660, 1
  store i32 %3662, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  br label %3703

3663:                                             ; preds = %3658, %3652
  br label %3664

3664:                                             ; preds = %3663, %3648
  br label %3665

3665:                                             ; preds = %3664, %3618
  %3666 = load i8, ptr %299, align 1, !tbaa !11, !range !13, !noundef !14
  %3667 = trunc i8 %3666 to i1
  br i1 %3667, label %3668, label %3677

3668:                                             ; preds = %3665
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef nonnull align 8 dereferenceable(32) %294)
          to label %3669 unwind label %3630

3669:                                             ; preds = %3668
  %3670 = load double, ptr %296, align 8, !tbaa !9
  %3671 = load double, ptr %298, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %301, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3670, double noundef %3671, double noundef -4.200000e+00)
          to label %3672 unwind label %3673

3672:                                             ; preds = %3669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #7
  br label %3677

3673:                                             ; preds = %3669
  %3674 = landingpad { ptr, i32 }
          cleanup
  %3675 = extractvalue { ptr, i32 } %3674, 0
  store ptr %3675, ptr %4, align 8
  %3676 = extractvalue { ptr, i32 } %3674, 1
  store i32 %3676, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #7
  br label %3703

3677:                                             ; preds = %3672, %3665
  call void @llvm.lifetime.end.p0(i64 1, ptr %299) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %297) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %294) #7
  %3678 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %302) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %303) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %303)
          to label %3680 unwind label %3706

3680:                                             ; preds = %3677
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %303) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %304) #7
  %3681 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #7
  store double %3681, ptr %304, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #7
  %3682 = call double @llvm.trunc.f64(double -4.700000e+00)
  store double %3682, ptr %305, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #7
  %3683 = load double, ptr %304, align 8, !tbaa !9
  %3684 = load double, ptr %305, align 8, !tbaa !9
  %3685 = fsub double %3683, %3684
  %3686 = invoke noundef double @_ZSt3absd(double noundef %3685)
          to label %3687 unwind label %3710

3687:                                             ; preds = %3680
  %3688 = load double, ptr %305, align 8, !tbaa !9
  %3689 = invoke noundef double @_ZSt3absd(double noundef %3688)
          to label %3690 unwind label %3710

3690:                                             ; preds = %3687
  %3691 = fadd double 1.000000e+00, %3689
  %3692 = fdiv double %3686, %3691
  store double %3692, ptr %306, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %307) #7
  store i8 0, ptr %307, align 1, !tbaa !11
  %3693 = load double, ptr %304, align 8, !tbaa !9
  %3694 = fpext double %3693 to x86_fp80
  %3695 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3694)
          to label %3696 unwind label %3714

3696:                                             ; preds = %3690
  br i1 %3695, label %3697, label %3718

3697:                                             ; preds = %3696
  %3698 = load double, ptr %305, align 8, !tbaa !9
  %3699 = fpext double %3698 to x86_fp80
  %3700 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3699)
          to label %3701 unwind label %3714

3701:                                             ; preds = %3697
  br i1 %3700, label %3702, label %3718

3702:                                             ; preds = %3701
  store i8 1, ptr %307, align 1, !tbaa !11
  br label %3749

3703:                                             ; preds = %3673, %3659, %3630
  call void @llvm.lifetime.end.p0(i64 1, ptr %299) #7
  br label %3704

3704:                                             ; preds = %3703, %3626
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %297) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  br label %3705

3705:                                             ; preds = %3704, %3622
  call void @llvm.lifetime.end.p0(i64 32, ptr %294) #7
  br label %5774

3706:                                             ; preds = %3677
  %3707 = landingpad { ptr, i32 }
          cleanup
  %3708 = extractvalue { ptr, i32 } %3707, 0
  store ptr %3708, ptr %4, align 8
  %3709 = extractvalue { ptr, i32 } %3707, 1
  store i32 %3709, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %303) #7
  br label %3789

3710:                                             ; preds = %3687, %3680
  %3711 = landingpad { ptr, i32 }
          cleanup
  %3712 = extractvalue { ptr, i32 } %3711, 0
  store ptr %3712, ptr %4, align 8
  %3713 = extractvalue { ptr, i32 } %3711, 1
  store i32 %3713, ptr %5, align 4
  br label %3788

3714:                                             ; preds = %3752, %3737, %3723, %3718, %3697, %3690
  %3715 = landingpad { ptr, i32 }
          cleanup
  %3716 = extractvalue { ptr, i32 } %3715, 0
  store ptr %3716, ptr %4, align 8
  %3717 = extractvalue { ptr, i32 } %3715, 1
  store i32 %3717, ptr %5, align 4
  br label %3787

3718:                                             ; preds = %3701, %3696
  %3719 = load double, ptr %304, align 8, !tbaa !9
  %3720 = fpext double %3719 to x86_fp80
  %3721 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3720)
          to label %3722 unwind label %3714

3722:                                             ; preds = %3718
  br i1 %3721, label %3733, label %3723

3723:                                             ; preds = %3722
  %3724 = load double, ptr %304, align 8, !tbaa !9
  %3725 = fpext double %3724 to x86_fp80
  %3726 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3725)
          to label %3727 unwind label %3714

3727:                                             ; preds = %3723
  br i1 %3726, label %3728, label %3733

3728:                                             ; preds = %3727
  %3729 = load double, ptr %304, align 8, !tbaa !9
  %3730 = load double, ptr %305, align 8, !tbaa !9
  %3731 = fcmp oeq double %3729, %3730
  br i1 %3731, label %3732, label %3733

3732:                                             ; preds = %3728
  store i8 1, ptr %307, align 1, !tbaa !11
  br label %3748

3733:                                             ; preds = %3728, %3727, %3722
  %3734 = load double, ptr %306, align 8, !tbaa !9
  %3735 = fcmp olt double %3734, 0x3D06849B86A12B9B
  br i1 %3735, label %3736, label %3737

3736:                                             ; preds = %3733
  store i8 1, ptr %307, align 1, !tbaa !11
  br label %3747

3737:                                             ; preds = %3733
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %308, ptr noundef nonnull align 8 dereferenceable(32) %302)
          to label %3738 unwind label %3714

3738:                                             ; preds = %3737
  %3739 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3740 = load double, ptr %304, align 8, !tbaa !9
  %3741 = load double, ptr %305, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %308, i32 noundef %3739, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3740, double noundef %3741, double noundef -4.700000e+00)
          to label %3742 unwind label %3743

3742:                                             ; preds = %3738
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #7
  br label %3747

3743:                                             ; preds = %3738
  %3744 = landingpad { ptr, i32 }
          cleanup
  %3745 = extractvalue { ptr, i32 } %3744, 0
  store ptr %3745, ptr %4, align 8
  %3746 = extractvalue { ptr, i32 } %3744, 1
  store i32 %3746, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #7
  br label %3787

3747:                                             ; preds = %3742, %3736
  br label %3748

3748:                                             ; preds = %3747, %3732
  br label %3749

3749:                                             ; preds = %3748, %3702
  %3750 = load i8, ptr %307, align 1, !tbaa !11, !range !13, !noundef !14
  %3751 = trunc i8 %3750 to i1
  br i1 %3751, label %3752, label %3761

3752:                                             ; preds = %3749
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef nonnull align 8 dereferenceable(32) %302)
          to label %3753 unwind label %3714

3753:                                             ; preds = %3752
  %3754 = load double, ptr %304, align 8, !tbaa !9
  %3755 = load double, ptr %306, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %309, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3754, double noundef %3755, double noundef -4.700000e+00)
          to label %3756 unwind label %3757

3756:                                             ; preds = %3753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #7
  br label %3761

3757:                                             ; preds = %3753
  %3758 = landingpad { ptr, i32 }
          cleanup
  %3759 = extractvalue { ptr, i32 } %3758, 0
  store ptr %3759, ptr %4, align 8
  %3760 = extractvalue { ptr, i32 } %3758, 1
  store i32 %3760, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #7
  br label %3787

3761:                                             ; preds = %3756, %3749
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %304) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #7
  %3762 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3763 = add nsw i32 %3762, 1
  store i32 %3763, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %310) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %311) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %3764 unwind label %3790

3764:                                             ; preds = %3761
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %312) #7
  %3765 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #7
  store double %3765, ptr %312, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %313) #7
  %3766 = call double @llvm.trunc.f64(double -5.000000e+00)
  store double %3766, ptr %313, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %314) #7
  %3767 = load double, ptr %312, align 8, !tbaa !9
  %3768 = load double, ptr %313, align 8, !tbaa !9
  %3769 = fsub double %3767, %3768
  %3770 = invoke noundef double @_ZSt3absd(double noundef %3769)
          to label %3771 unwind label %3794

3771:                                             ; preds = %3764
  %3772 = load double, ptr %313, align 8, !tbaa !9
  %3773 = invoke noundef double @_ZSt3absd(double noundef %3772)
          to label %3774 unwind label %3794

3774:                                             ; preds = %3771
  %3775 = fadd double 1.000000e+00, %3773
  %3776 = fdiv double %3770, %3775
  store double %3776, ptr %314, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %315) #7
  store i8 0, ptr %315, align 1, !tbaa !11
  %3777 = load double, ptr %312, align 8, !tbaa !9
  %3778 = fpext double %3777 to x86_fp80
  %3779 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3778)
          to label %3780 unwind label %3798

3780:                                             ; preds = %3774
  br i1 %3779, label %3781, label %3802

3781:                                             ; preds = %3780
  %3782 = load double, ptr %313, align 8, !tbaa !9
  %3783 = fpext double %3782 to x86_fp80
  %3784 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3783)
          to label %3785 unwind label %3798

3785:                                             ; preds = %3781
  br i1 %3784, label %3786, label %3802

3786:                                             ; preds = %3785
  store i8 1, ptr %315, align 1, !tbaa !11
  br label %3833

3787:                                             ; preds = %3757, %3743, %3714
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #7
  br label %3788

3788:                                             ; preds = %3787, %3710
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %304) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  br label %3789

3789:                                             ; preds = %3788, %3706
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #7
  br label %5774

3790:                                             ; preds = %3761
  %3791 = landingpad { ptr, i32 }
          cleanup
  %3792 = extractvalue { ptr, i32 } %3791, 0
  store ptr %3792, ptr %4, align 8
  %3793 = extractvalue { ptr, i32 } %3791, 1
  store i32 %3793, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #7
  br label %3873

3794:                                             ; preds = %3771, %3764
  %3795 = landingpad { ptr, i32 }
          cleanup
  %3796 = extractvalue { ptr, i32 } %3795, 0
  store ptr %3796, ptr %4, align 8
  %3797 = extractvalue { ptr, i32 } %3795, 1
  store i32 %3797, ptr %5, align 4
  br label %3872

3798:                                             ; preds = %3836, %3821, %3807, %3802, %3781, %3774
  %3799 = landingpad { ptr, i32 }
          cleanup
  %3800 = extractvalue { ptr, i32 } %3799, 0
  store ptr %3800, ptr %4, align 8
  %3801 = extractvalue { ptr, i32 } %3799, 1
  store i32 %3801, ptr %5, align 4
  br label %3871

3802:                                             ; preds = %3785, %3780
  %3803 = load double, ptr %312, align 8, !tbaa !9
  %3804 = fpext double %3803 to x86_fp80
  %3805 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3804)
          to label %3806 unwind label %3798

3806:                                             ; preds = %3802
  br i1 %3805, label %3817, label %3807

3807:                                             ; preds = %3806
  %3808 = load double, ptr %312, align 8, !tbaa !9
  %3809 = fpext double %3808 to x86_fp80
  %3810 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3809)
          to label %3811 unwind label %3798

3811:                                             ; preds = %3807
  br i1 %3810, label %3812, label %3817

3812:                                             ; preds = %3811
  %3813 = load double, ptr %312, align 8, !tbaa !9
  %3814 = load double, ptr %313, align 8, !tbaa !9
  %3815 = fcmp oeq double %3813, %3814
  br i1 %3815, label %3816, label %3817

3816:                                             ; preds = %3812
  store i8 1, ptr %315, align 1, !tbaa !11
  br label %3832

3817:                                             ; preds = %3812, %3811, %3806
  %3818 = load double, ptr %314, align 8, !tbaa !9
  %3819 = fcmp olt double %3818, 0x3D06849B86A12B9B
  br i1 %3819, label %3820, label %3821

3820:                                             ; preds = %3817
  store i8 1, ptr %315, align 1, !tbaa !11
  br label %3831

3821:                                             ; preds = %3817
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull align 8 dereferenceable(32) %310)
          to label %3822 unwind label %3798

3822:                                             ; preds = %3821
  %3823 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3824 = load double, ptr %312, align 8, !tbaa !9
  %3825 = load double, ptr %313, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %316, i32 noundef %3823, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3824, double noundef %3825, double noundef -5.000000e+00)
          to label %3826 unwind label %3827

3826:                                             ; preds = %3822
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  br label %3831

3827:                                             ; preds = %3822
  %3828 = landingpad { ptr, i32 }
          cleanup
  %3829 = extractvalue { ptr, i32 } %3828, 0
  store ptr %3829, ptr %4, align 8
  %3830 = extractvalue { ptr, i32 } %3828, 1
  store i32 %3830, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  br label %3871

3831:                                             ; preds = %3826, %3820
  br label %3832

3832:                                             ; preds = %3831, %3816
  br label %3833

3833:                                             ; preds = %3832, %3786
  %3834 = load i8, ptr %315, align 1, !tbaa !11, !range !13, !noundef !14
  %3835 = trunc i8 %3834 to i1
  br i1 %3835, label %3836, label %3845

3836:                                             ; preds = %3833
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull align 8 dereferenceable(32) %310)
          to label %3837 unwind label %3798

3837:                                             ; preds = %3836
  %3838 = load double, ptr %312, align 8, !tbaa !9
  %3839 = load double, ptr %314, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %317, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3838, double noundef %3839, double noundef -5.000000e+00)
          to label %3840 unwind label %3841

3840:                                             ; preds = %3837
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #7
  br label %3845

3841:                                             ; preds = %3837
  %3842 = landingpad { ptr, i32 }
          cleanup
  %3843 = extractvalue { ptr, i32 } %3842, 0
  store ptr %3843, ptr %4, align 8
  %3844 = extractvalue { ptr, i32 } %3842, 1
  store i32 %3844, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #7
  br label %3871

3845:                                             ; preds = %3840, %3833
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %313) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #7
  %3846 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3847 = add nsw i32 %3846, 1
  store i32 %3847, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %318) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %319) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %318, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %319)
          to label %3848 unwind label %3874

3848:                                             ; preds = %3845
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %319) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %320) #7
  %3849 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #7
  store double %3849, ptr %320, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %321) #7
  %3850 = call double @llvm.trunc.f64(double 4.200000e+33)
  store double %3850, ptr %321, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %322) #7
  %3851 = load double, ptr %320, align 8, !tbaa !9
  %3852 = load double, ptr %321, align 8, !tbaa !9
  %3853 = fsub double %3851, %3852
  %3854 = invoke noundef double @_ZSt3absd(double noundef %3853)
          to label %3855 unwind label %3878

3855:                                             ; preds = %3848
  %3856 = load double, ptr %321, align 8, !tbaa !9
  %3857 = invoke noundef double @_ZSt3absd(double noundef %3856)
          to label %3858 unwind label %3878

3858:                                             ; preds = %3855
  %3859 = fadd double 1.000000e+00, %3857
  %3860 = fdiv double %3854, %3859
  store double %3860, ptr %322, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %323) #7
  store i8 0, ptr %323, align 1, !tbaa !11
  %3861 = load double, ptr %320, align 8, !tbaa !9
  %3862 = fpext double %3861 to x86_fp80
  %3863 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3862)
          to label %3864 unwind label %3882

3864:                                             ; preds = %3858
  br i1 %3863, label %3865, label %3886

3865:                                             ; preds = %3864
  %3866 = load double, ptr %321, align 8, !tbaa !9
  %3867 = fpext double %3866 to x86_fp80
  %3868 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3867)
          to label %3869 unwind label %3882

3869:                                             ; preds = %3865
  br i1 %3868, label %3870, label %3886

3870:                                             ; preds = %3869
  store i8 1, ptr %323, align 1, !tbaa !11
  br label %3917

3871:                                             ; preds = %3841, %3827, %3798
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #7
  br label %3872

3872:                                             ; preds = %3871, %3794
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %313) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  br label %3873

3873:                                             ; preds = %3872, %3790
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #7
  br label %5774

3874:                                             ; preds = %3845
  %3875 = landingpad { ptr, i32 }
          cleanup
  %3876 = extractvalue { ptr, i32 } %3875, 0
  store ptr %3876, ptr %4, align 8
  %3877 = extractvalue { ptr, i32 } %3875, 1
  store i32 %3877, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %319) #7
  br label %3957

3878:                                             ; preds = %3855, %3848
  %3879 = landingpad { ptr, i32 }
          cleanup
  %3880 = extractvalue { ptr, i32 } %3879, 0
  store ptr %3880, ptr %4, align 8
  %3881 = extractvalue { ptr, i32 } %3879, 1
  store i32 %3881, ptr %5, align 4
  br label %3956

3882:                                             ; preds = %3920, %3905, %3891, %3886, %3865, %3858
  %3883 = landingpad { ptr, i32 }
          cleanup
  %3884 = extractvalue { ptr, i32 } %3883, 0
  store ptr %3884, ptr %4, align 8
  %3885 = extractvalue { ptr, i32 } %3883, 1
  store i32 %3885, ptr %5, align 4
  br label %3955

3886:                                             ; preds = %3869, %3864
  %3887 = load double, ptr %320, align 8, !tbaa !9
  %3888 = fpext double %3887 to x86_fp80
  %3889 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3888)
          to label %3890 unwind label %3882

3890:                                             ; preds = %3886
  br i1 %3889, label %3901, label %3891

3891:                                             ; preds = %3890
  %3892 = load double, ptr %320, align 8, !tbaa !9
  %3893 = fpext double %3892 to x86_fp80
  %3894 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3893)
          to label %3895 unwind label %3882

3895:                                             ; preds = %3891
  br i1 %3894, label %3896, label %3901

3896:                                             ; preds = %3895
  %3897 = load double, ptr %320, align 8, !tbaa !9
  %3898 = load double, ptr %321, align 8, !tbaa !9
  %3899 = fcmp oeq double %3897, %3898
  br i1 %3899, label %3900, label %3901

3900:                                             ; preds = %3896
  store i8 1, ptr %323, align 1, !tbaa !11
  br label %3916

3901:                                             ; preds = %3896, %3895, %3890
  %3902 = load double, ptr %322, align 8, !tbaa !9
  %3903 = fcmp olt double %3902, 0x3D06849B86A12B9B
  br i1 %3903, label %3904, label %3905

3904:                                             ; preds = %3901
  store i8 1, ptr %323, align 1, !tbaa !11
  br label %3915

3905:                                             ; preds = %3901
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef nonnull align 8 dereferenceable(32) %318)
          to label %3906 unwind label %3882

3906:                                             ; preds = %3905
  %3907 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3908 = load double, ptr %320, align 8, !tbaa !9
  %3909 = load double, ptr %321, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %324, i32 noundef %3907, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3908, double noundef %3909, double noundef 4.200000e+33)
          to label %3910 unwind label %3911

3910:                                             ; preds = %3906
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  br label %3915

3911:                                             ; preds = %3906
  %3912 = landingpad { ptr, i32 }
          cleanup
  %3913 = extractvalue { ptr, i32 } %3912, 0
  store ptr %3913, ptr %4, align 8
  %3914 = extractvalue { ptr, i32 } %3912, 1
  store i32 %3914, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  br label %3955

3915:                                             ; preds = %3910, %3904
  br label %3916

3916:                                             ; preds = %3915, %3900
  br label %3917

3917:                                             ; preds = %3916, %3870
  %3918 = load i8, ptr %323, align 1, !tbaa !11, !range !13, !noundef !14
  %3919 = trunc i8 %3918 to i1
  br i1 %3919, label %3920, label %3929

3920:                                             ; preds = %3917
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull align 8 dereferenceable(32) %318)
          to label %3921 unwind label %3882

3921:                                             ; preds = %3920
  %3922 = load double, ptr %320, align 8, !tbaa !9
  %3923 = load double, ptr %322, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %325, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3922, double noundef %3923, double noundef 4.200000e+33)
          to label %3924 unwind label %3925

3924:                                             ; preds = %3921
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #7
  br label %3929

3925:                                             ; preds = %3921
  %3926 = landingpad { ptr, i32 }
          cleanup
  %3927 = extractvalue { ptr, i32 } %3926, 0
  store ptr %3927, ptr %4, align 8
  %3928 = extractvalue { ptr, i32 } %3926, 1
  store i32 %3928, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #7
  br label %3955

3929:                                             ; preds = %3924, %3917
  call void @llvm.lifetime.end.p0(i64 1, ptr %323) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %322) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %318) #7
  %3930 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3931 = add nsw i32 %3930, 1
  store i32 %3931, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %326) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %327) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %327)
          to label %3932 unwind label %3958

3932:                                             ; preds = %3929
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %327) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %328) #7
  %3933 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #7
  store double %3933, ptr %328, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %329) #7
  %3934 = call double @llvm.trunc.f64(double -4.200000e+33)
  store double %3934, ptr %329, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %330) #7
  %3935 = load double, ptr %328, align 8, !tbaa !9
  %3936 = load double, ptr %329, align 8, !tbaa !9
  %3937 = fsub double %3935, %3936
  %3938 = invoke noundef double @_ZSt3absd(double noundef %3937)
          to label %3939 unwind label %3962

3939:                                             ; preds = %3932
  %3940 = load double, ptr %329, align 8, !tbaa !9
  %3941 = invoke noundef double @_ZSt3absd(double noundef %3940)
          to label %3942 unwind label %3962

3942:                                             ; preds = %3939
  %3943 = fadd double 1.000000e+00, %3941
  %3944 = fdiv double %3938, %3943
  store double %3944, ptr %330, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %331) #7
  store i8 0, ptr %331, align 1, !tbaa !11
  %3945 = load double, ptr %328, align 8, !tbaa !9
  %3946 = fpext double %3945 to x86_fp80
  %3947 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3946)
          to label %3948 unwind label %3966

3948:                                             ; preds = %3942
  br i1 %3947, label %3949, label %3970

3949:                                             ; preds = %3948
  %3950 = load double, ptr %329, align 8, !tbaa !9
  %3951 = fpext double %3950 to x86_fp80
  %3952 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3951)
          to label %3953 unwind label %3966

3953:                                             ; preds = %3949
  br i1 %3952, label %3954, label %3970

3954:                                             ; preds = %3953
  store i8 1, ptr %331, align 1, !tbaa !11
  br label %4001

3955:                                             ; preds = %3925, %3911, %3882
  call void @llvm.lifetime.end.p0(i64 1, ptr %323) #7
  br label %3956

3956:                                             ; preds = %3955, %3878
  call void @llvm.lifetime.end.p0(i64 8, ptr %322) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #7
  br label %3957

3957:                                             ; preds = %3956, %3874
  call void @llvm.lifetime.end.p0(i64 32, ptr %318) #7
  br label %5774

3958:                                             ; preds = %3929
  %3959 = landingpad { ptr, i32 }
          cleanup
  %3960 = extractvalue { ptr, i32 } %3959, 0
  store ptr %3960, ptr %4, align 8
  %3961 = extractvalue { ptr, i32 } %3959, 1
  store i32 %3961, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %327) #7
  br label %4044

3962:                                             ; preds = %3939, %3932
  %3963 = landingpad { ptr, i32 }
          cleanup
  %3964 = extractvalue { ptr, i32 } %3963, 0
  store ptr %3964, ptr %4, align 8
  %3965 = extractvalue { ptr, i32 } %3963, 1
  store i32 %3965, ptr %5, align 4
  br label %4043

3966:                                             ; preds = %4004, %3989, %3975, %3970, %3949, %3942
  %3967 = landingpad { ptr, i32 }
          cleanup
  %3968 = extractvalue { ptr, i32 } %3967, 0
  store ptr %3968, ptr %4, align 8
  %3969 = extractvalue { ptr, i32 } %3967, 1
  store i32 %3969, ptr %5, align 4
  br label %4042

3970:                                             ; preds = %3953, %3948
  %3971 = load double, ptr %328, align 8, !tbaa !9
  %3972 = fpext double %3971 to x86_fp80
  %3973 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %3972)
          to label %3974 unwind label %3966

3974:                                             ; preds = %3970
  br i1 %3973, label %3985, label %3975

3975:                                             ; preds = %3974
  %3976 = load double, ptr %328, align 8, !tbaa !9
  %3977 = fpext double %3976 to x86_fp80
  %3978 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %3977)
          to label %3979 unwind label %3966

3979:                                             ; preds = %3975
  br i1 %3978, label %3980, label %3985

3980:                                             ; preds = %3979
  %3981 = load double, ptr %328, align 8, !tbaa !9
  %3982 = load double, ptr %329, align 8, !tbaa !9
  %3983 = fcmp oeq double %3981, %3982
  br i1 %3983, label %3984, label %3985

3984:                                             ; preds = %3980
  store i8 1, ptr %331, align 1, !tbaa !11
  br label %4000

3985:                                             ; preds = %3980, %3979, %3974
  %3986 = load double, ptr %330, align 8, !tbaa !9
  %3987 = fcmp olt double %3986, 0x3D06849B86A12B9B
  br i1 %3987, label %3988, label %3989

3988:                                             ; preds = %3985
  store i8 1, ptr %331, align 1, !tbaa !11
  br label %3999

3989:                                             ; preds = %3985
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull align 8 dereferenceable(32) %326)
          to label %3990 unwind label %3966

3990:                                             ; preds = %3989
  %3991 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %3992 = load double, ptr %328, align 8, !tbaa !9
  %3993 = load double, ptr %329, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %332, i32 noundef %3991, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %3992, double noundef %3993, double noundef -4.200000e+33)
          to label %3994 unwind label %3995

3994:                                             ; preds = %3990
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #7
  br label %3999

3995:                                             ; preds = %3990
  %3996 = landingpad { ptr, i32 }
          cleanup
  %3997 = extractvalue { ptr, i32 } %3996, 0
  store ptr %3997, ptr %4, align 8
  %3998 = extractvalue { ptr, i32 } %3996, 1
  store i32 %3998, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #7
  br label %4042

3999:                                             ; preds = %3994, %3988
  br label %4000

4000:                                             ; preds = %3999, %3984
  br label %4001

4001:                                             ; preds = %4000, %3954
  %4002 = load i8, ptr %331, align 1, !tbaa !11, !range !13, !noundef !14
  %4003 = trunc i8 %4002 to i1
  br i1 %4003, label %4004, label %4013

4004:                                             ; preds = %4001
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %333, ptr noundef nonnull align 8 dereferenceable(32) %326)
          to label %4005 unwind label %3966

4005:                                             ; preds = %4004
  %4006 = load double, ptr %328, align 8, !tbaa !9
  %4007 = load double, ptr %330, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %333, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4006, double noundef %4007, double noundef -4.200000e+33)
          to label %4008 unwind label %4009

4008:                                             ; preds = %4005
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #7
  br label %4013

4009:                                             ; preds = %4005
  %4010 = landingpad { ptr, i32 }
          cleanup
  %4011 = extractvalue { ptr, i32 } %4010, 0
  store ptr %4011, ptr %4, align 8
  %4012 = extractvalue { ptr, i32 } %4010, 1
  store i32 %4012, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #7
  br label %4042

4013:                                             ; preds = %4008, %4001
  call void @llvm.lifetime.end.p0(i64 1, ptr %331) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %330) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %329) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %328) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #7
  %4014 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4015 = add nsw i32 %4014, 1
  store i32 %4015, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %334) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %335) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %335)
          to label %4016 unwind label %4045

4016:                                             ; preds = %4013
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %335) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #7
  %4017 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %4018 = call noundef float @_ZN4gcem5truncIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %4017) #7
  store float %4018, ptr %336, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #7
  %4019 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %4020 = invoke noundef float @_ZSt5truncf(float noundef %4019)
          to label %4021 unwind label %4049

4021:                                             ; preds = %4016
  store float %4020, ptr %337, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #7
  %4022 = load float, ptr %336, align 4, !tbaa !15
  %4023 = load float, ptr %337, align 4, !tbaa !15
  %4024 = fsub float %4022, %4023
  %4025 = invoke noundef float @_ZSt3absf(float noundef %4024)
          to label %4026 unwind label %4053

4026:                                             ; preds = %4021
  %4027 = load float, ptr %337, align 4, !tbaa !15
  %4028 = invoke noundef float @_ZSt3absf(float noundef %4027)
          to label %4029 unwind label %4053

4029:                                             ; preds = %4026
  %4030 = fadd float 1.000000e+00, %4028
  %4031 = fdiv float %4025, %4030
  store float %4031, ptr %338, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %339) #7
  store i8 0, ptr %339, align 1, !tbaa !11
  %4032 = load float, ptr %336, align 4, !tbaa !15
  %4033 = fpext float %4032 to x86_fp80
  %4034 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4033)
          to label %4035 unwind label %4057

4035:                                             ; preds = %4029
  br i1 %4034, label %4036, label %4061

4036:                                             ; preds = %4035
  %4037 = load float, ptr %337, align 4, !tbaa !15
  %4038 = fpext float %4037 to x86_fp80
  %4039 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4038)
          to label %4040 unwind label %4057

4040:                                             ; preds = %4036
  br i1 %4039, label %4041, label %4061

4041:                                             ; preds = %4040
  store i8 1, ptr %339, align 1, !tbaa !11
  br label %4094

4042:                                             ; preds = %4009, %3995, %3966
  call void @llvm.lifetime.end.p0(i64 1, ptr %331) #7
  br label %4043

4043:                                             ; preds = %4042, %3962
  call void @llvm.lifetime.end.p0(i64 8, ptr %330) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %329) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %328) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  br label %4044

4044:                                             ; preds = %4043, %3958
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #7
  br label %5774

4045:                                             ; preds = %4013
  %4046 = landingpad { ptr, i32 }
          cleanup
  %4047 = extractvalue { ptr, i32 } %4046, 0
  store ptr %4047, ptr %4, align 8
  %4048 = extractvalue { ptr, i32 } %4046, 1
  store i32 %4048, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %335) #7
  br label %4139

4049:                                             ; preds = %4016
  %4050 = landingpad { ptr, i32 }
          cleanup
  %4051 = extractvalue { ptr, i32 } %4050, 0
  store ptr %4051, ptr %4, align 8
  %4052 = extractvalue { ptr, i32 } %4050, 1
  store i32 %4052, ptr %5, align 4
  br label %4138

4053:                                             ; preds = %4026, %4021
  %4054 = landingpad { ptr, i32 }
          cleanup
  %4055 = extractvalue { ptr, i32 } %4054, 0
  store ptr %4055, ptr %4, align 8
  %4056 = extractvalue { ptr, i32 } %4054, 1
  store i32 %4056, ptr %5, align 4
  br label %4137

4057:                                             ; preds = %4097, %4081, %4066, %4061, %4036, %4029
  %4058 = landingpad { ptr, i32 }
          cleanup
  %4059 = extractvalue { ptr, i32 } %4058, 0
  store ptr %4059, ptr %4, align 8
  %4060 = extractvalue { ptr, i32 } %4058, 1
  store i32 %4060, ptr %5, align 4
  br label %4136

4061:                                             ; preds = %4040, %4035
  %4062 = load float, ptr %336, align 4, !tbaa !15
  %4063 = fpext float %4062 to x86_fp80
  %4064 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4063)
          to label %4065 unwind label %4057

4065:                                             ; preds = %4061
  br i1 %4064, label %4076, label %4066

4066:                                             ; preds = %4065
  %4067 = load float, ptr %336, align 4, !tbaa !15
  %4068 = fpext float %4067 to x86_fp80
  %4069 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4068)
          to label %4070 unwind label %4057

4070:                                             ; preds = %4066
  br i1 %4069, label %4071, label %4076

4071:                                             ; preds = %4070
  %4072 = load float, ptr %336, align 4, !tbaa !15
  %4073 = load float, ptr %337, align 4, !tbaa !15
  %4074 = fcmp oeq float %4072, %4073
  br i1 %4074, label %4075, label %4076

4075:                                             ; preds = %4071
  store i8 1, ptr %339, align 1, !tbaa !11
  br label %4093

4076:                                             ; preds = %4071, %4070, %4065
  %4077 = load float, ptr %338, align 4, !tbaa !15
  %4078 = fpext float %4077 to double
  %4079 = fcmp olt double %4078, 0x3D06849B86A12B9B
  br i1 %4079, label %4080, label %4081

4080:                                             ; preds = %4076
  store i8 1, ptr %339, align 1, !tbaa !11
  br label %4092

4081:                                             ; preds = %4076
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 8 dereferenceable(32) %334)
          to label %4082 unwind label %4057

4082:                                             ; preds = %4081
  %4083 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4084 = load float, ptr %336, align 4, !tbaa !15
  %4085 = load float, ptr %337, align 4, !tbaa !15
  %4086 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %340, i32 noundef %4083, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %4084, float noundef %4085, float noundef %4086)
          to label %4087 unwind label %4088

4087:                                             ; preds = %4082
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  br label %4092

4088:                                             ; preds = %4082
  %4089 = landingpad { ptr, i32 }
          cleanup
  %4090 = extractvalue { ptr, i32 } %4089, 0
  store ptr %4090, ptr %4, align 8
  %4091 = extractvalue { ptr, i32 } %4089, 1
  store i32 %4091, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  br label %4136

4092:                                             ; preds = %4087, %4080
  br label %4093

4093:                                             ; preds = %4092, %4075
  br label %4094

4094:                                             ; preds = %4093, %4041
  %4095 = load i8, ptr %339, align 1, !tbaa !11, !range !13, !noundef !14
  %4096 = trunc i8 %4095 to i1
  br i1 %4096, label %4097, label %4107

4097:                                             ; preds = %4094
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef nonnull align 8 dereferenceable(32) %334)
          to label %4098 unwind label %4057

4098:                                             ; preds = %4097
  %4099 = load float, ptr %336, align 4, !tbaa !15
  %4100 = load float, ptr %338, align 4, !tbaa !15
  %4101 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %341, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %4099, float noundef %4100, float noundef %4101)
          to label %4102 unwind label %4103

4102:                                             ; preds = %4098
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #7
  br label %4107

4103:                                             ; preds = %4098
  %4104 = landingpad { ptr, i32 }
          cleanup
  %4105 = extractvalue { ptr, i32 } %4104, 0
  store ptr %4105, ptr %4, align 8
  %4106 = extractvalue { ptr, i32 } %4104, 1
  store i32 %4106, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #7
  br label %4136

4107:                                             ; preds = %4102, %4094
  call void @llvm.lifetime.end.p0(i64 1, ptr %339) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #7
  %4108 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4109 = add nsw i32 %4108, 1
  store i32 %4109, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %342) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %343) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %4110 unwind label %4140

4110:                                             ; preds = %4107
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %344) #7
  %4111 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %4112 = fneg x86_fp80 %4111
  %4113 = call noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %4112) #7
  store x86_fp80 %4113, ptr %344, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %345) #7
  %4114 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %4115 = fneg x86_fp80 %4114
  %4116 = invoke noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef %4115)
          to label %4117 unwind label %4144

4117:                                             ; preds = %4110
  store x86_fp80 %4116, ptr %345, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %346) #7
  %4118 = load x86_fp80, ptr %344, align 16, !tbaa !17
  %4119 = load x86_fp80, ptr %345, align 16, !tbaa !17
  %4120 = fsub x86_fp80 %4118, %4119
  %4121 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %4120)
          to label %4122 unwind label %4148

4122:                                             ; preds = %4117
  %4123 = load x86_fp80, ptr %345, align 16, !tbaa !17
  %4124 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %4123)
          to label %4125 unwind label %4148

4125:                                             ; preds = %4122
  %4126 = fadd x86_fp80 0xK3FFF8000000000000000, %4124
  %4127 = fdiv x86_fp80 %4121, %4126
  store x86_fp80 %4127, ptr %346, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %347) #7
  store i8 0, ptr %347, align 1, !tbaa !11
  %4128 = load x86_fp80, ptr %344, align 16, !tbaa !17
  %4129 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4128)
          to label %4130 unwind label %4152

4130:                                             ; preds = %4125
  br i1 %4129, label %4131, label %4156

4131:                                             ; preds = %4130
  %4132 = load x86_fp80, ptr %345, align 16, !tbaa !17
  %4133 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4132)
          to label %4134 unwind label %4152

4134:                                             ; preds = %4131
  br i1 %4133, label %4135, label %4156

4135:                                             ; preds = %4134
  store i8 1, ptr %347, align 1, !tbaa !11
  br label %4187

4136:                                             ; preds = %4103, %4088, %4057
  call void @llvm.lifetime.end.p0(i64 1, ptr %339) #7
  br label %4137

4137:                                             ; preds = %4136, %4053
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #7
  br label %4138

4138:                                             ; preds = %4137, %4049
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  br label %4139

4139:                                             ; preds = %4138, %4045
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #7
  br label %5774

4140:                                             ; preds = %4107
  %4141 = landingpad { ptr, i32 }
          cleanup
  %4142 = extractvalue { ptr, i32 } %4141, 0
  store ptr %4142, ptr %4, align 8
  %4143 = extractvalue { ptr, i32 } %4141, 1
  store i32 %4143, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #7
  br label %4231

4144:                                             ; preds = %4110
  %4145 = landingpad { ptr, i32 }
          cleanup
  %4146 = extractvalue { ptr, i32 } %4145, 0
  store ptr %4146, ptr %4, align 8
  %4147 = extractvalue { ptr, i32 } %4145, 1
  store i32 %4147, ptr %5, align 4
  br label %4230

4148:                                             ; preds = %4122, %4117
  %4149 = landingpad { ptr, i32 }
          cleanup
  %4150 = extractvalue { ptr, i32 } %4149, 0
  store ptr %4150, ptr %4, align 8
  %4151 = extractvalue { ptr, i32 } %4149, 1
  store i32 %4151, ptr %5, align 4
  br label %4229

4152:                                             ; preds = %4190, %4173, %4160, %4156, %4131, %4125
  %4153 = landingpad { ptr, i32 }
          cleanup
  %4154 = extractvalue { ptr, i32 } %4153, 0
  store ptr %4154, ptr %4, align 8
  %4155 = extractvalue { ptr, i32 } %4153, 1
  store i32 %4155, ptr %5, align 4
  br label %4228

4156:                                             ; preds = %4134, %4130
  %4157 = load x86_fp80, ptr %344, align 16, !tbaa !17
  %4158 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4157)
          to label %4159 unwind label %4152

4159:                                             ; preds = %4156
  br i1 %4158, label %4169, label %4160

4160:                                             ; preds = %4159
  %4161 = load x86_fp80, ptr %344, align 16, !tbaa !17
  %4162 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4161)
          to label %4163 unwind label %4152

4163:                                             ; preds = %4160
  br i1 %4162, label %4164, label %4169

4164:                                             ; preds = %4163
  %4165 = load x86_fp80, ptr %344, align 16, !tbaa !17
  %4166 = load x86_fp80, ptr %345, align 16, !tbaa !17
  %4167 = fcmp oeq x86_fp80 %4165, %4166
  br i1 %4167, label %4168, label %4169

4168:                                             ; preds = %4164
  store i8 1, ptr %347, align 1, !tbaa !11
  br label %4186

4169:                                             ; preds = %4164, %4163, %4159
  %4170 = load x86_fp80, ptr %346, align 16, !tbaa !17
  %4171 = fcmp olt x86_fp80 %4170, 0xK3FD0B424DC35095CD800
  br i1 %4171, label %4172, label %4173

4172:                                             ; preds = %4169
  store i8 1, ptr %347, align 1, !tbaa !11
  br label %4185

4173:                                             ; preds = %4169
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 8 dereferenceable(32) %342)
          to label %4174 unwind label %4152

4174:                                             ; preds = %4173
  %4175 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4176 = load x86_fp80, ptr %344, align 16, !tbaa !17
  %4177 = load x86_fp80, ptr %345, align 16, !tbaa !17
  %4178 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %4179 = fneg x86_fp80 %4178
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %348, i32 noundef %4175, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %4176, x86_fp80 noundef %4177, x86_fp80 noundef %4179)
          to label %4180 unwind label %4181

4180:                                             ; preds = %4174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #7
  br label %4185

4181:                                             ; preds = %4174
  %4182 = landingpad { ptr, i32 }
          cleanup
  %4183 = extractvalue { ptr, i32 } %4182, 0
  store ptr %4183, ptr %4, align 8
  %4184 = extractvalue { ptr, i32 } %4182, 1
  store i32 %4184, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #7
  br label %4228

4185:                                             ; preds = %4180, %4172
  br label %4186

4186:                                             ; preds = %4185, %4168
  br label %4187

4187:                                             ; preds = %4186, %4135
  %4188 = load i8, ptr %347, align 1, !tbaa !11, !range !13, !noundef !14
  %4189 = trunc i8 %4188 to i1
  br i1 %4189, label %4190, label %4201

4190:                                             ; preds = %4187
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef nonnull align 8 dereferenceable(32) %342)
          to label %4191 unwind label %4152

4191:                                             ; preds = %4190
  %4192 = load x86_fp80, ptr %344, align 16, !tbaa !17
  %4193 = load x86_fp80, ptr %346, align 16, !tbaa !17
  %4194 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %4195 = fneg x86_fp80 %4194
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %349, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %4192, x86_fp80 noundef %4193, x86_fp80 noundef %4195)
          to label %4196 unwind label %4197

4196:                                             ; preds = %4191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #7
  br label %4201

4197:                                             ; preds = %4191
  %4198 = landingpad { ptr, i32 }
          cleanup
  %4199 = extractvalue { ptr, i32 } %4198, 0
  store ptr %4199, ptr %4, align 8
  %4200 = extractvalue { ptr, i32 } %4198, 1
  store i32 %4200, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #7
  br label %4228

4201:                                             ; preds = %4196, %4187
  call void @llvm.lifetime.end.p0(i64 1, ptr %347) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %346) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %345) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %344) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #7
  %4202 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4203 = add nsw i32 %4202, 1
  store i32 %4203, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %350) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %351) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %351)
          to label %4204 unwind label %4232

4204:                                             ; preds = %4201
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %351) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %352) #7
  %4205 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %4206 = call noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %4205) #7
  store x86_fp80 %4206, ptr %352, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %353) #7
  %4207 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %4208 = invoke noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef %4207)
          to label %4209 unwind label %4236

4209:                                             ; preds = %4204
  store x86_fp80 %4208, ptr %353, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %354) #7
  %4210 = load x86_fp80, ptr %352, align 16, !tbaa !17
  %4211 = load x86_fp80, ptr %353, align 16, !tbaa !17
  %4212 = fsub x86_fp80 %4210, %4211
  %4213 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %4212)
          to label %4214 unwind label %4240

4214:                                             ; preds = %4209
  %4215 = load x86_fp80, ptr %353, align 16, !tbaa !17
  %4216 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %4215)
          to label %4217 unwind label %4240

4217:                                             ; preds = %4214
  %4218 = fadd x86_fp80 0xK3FFF8000000000000000, %4216
  %4219 = fdiv x86_fp80 %4213, %4218
  store x86_fp80 %4219, ptr %354, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %355) #7
  store i8 0, ptr %355, align 1, !tbaa !11
  %4220 = load x86_fp80, ptr %352, align 16, !tbaa !17
  %4221 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4220)
          to label %4222 unwind label %4244

4222:                                             ; preds = %4217
  br i1 %4221, label %4223, label %4248

4223:                                             ; preds = %4222
  %4224 = load x86_fp80, ptr %353, align 16, !tbaa !17
  %4225 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4224)
          to label %4226 unwind label %4244

4226:                                             ; preds = %4223
  br i1 %4225, label %4227, label %4248

4227:                                             ; preds = %4226
  store i8 1, ptr %355, align 1, !tbaa !11
  br label %4278

4228:                                             ; preds = %4197, %4181, %4152
  call void @llvm.lifetime.end.p0(i64 1, ptr %347) #7
  br label %4229

4229:                                             ; preds = %4228, %4148
  call void @llvm.lifetime.end.p0(i64 16, ptr %346) #7
  br label %4230

4230:                                             ; preds = %4229, %4144
  call void @llvm.lifetime.end.p0(i64 16, ptr %345) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %344) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  br label %4231

4231:                                             ; preds = %4230, %4140
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #7
  br label %5774

4232:                                             ; preds = %4201
  %4233 = landingpad { ptr, i32 }
          cleanup
  %4234 = extractvalue { ptr, i32 } %4233, 0
  store ptr %4234, ptr %4, align 8
  %4235 = extractvalue { ptr, i32 } %4233, 1
  store i32 %4235, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %351) #7
  br label %4321

4236:                                             ; preds = %4204
  %4237 = landingpad { ptr, i32 }
          cleanup
  %4238 = extractvalue { ptr, i32 } %4237, 0
  store ptr %4238, ptr %4, align 8
  %4239 = extractvalue { ptr, i32 } %4237, 1
  store i32 %4239, ptr %5, align 4
  br label %4320

4240:                                             ; preds = %4214, %4209
  %4241 = landingpad { ptr, i32 }
          cleanup
  %4242 = extractvalue { ptr, i32 } %4241, 0
  store ptr %4242, ptr %4, align 8
  %4243 = extractvalue { ptr, i32 } %4241, 1
  store i32 %4243, ptr %5, align 4
  br label %4319

4244:                                             ; preds = %4281, %4265, %4252, %4248, %4223, %4217
  %4245 = landingpad { ptr, i32 }
          cleanup
  %4246 = extractvalue { ptr, i32 } %4245, 0
  store ptr %4246, ptr %4, align 8
  %4247 = extractvalue { ptr, i32 } %4245, 1
  store i32 %4247, ptr %5, align 4
  br label %4318

4248:                                             ; preds = %4226, %4222
  %4249 = load x86_fp80, ptr %352, align 16, !tbaa !17
  %4250 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4249)
          to label %4251 unwind label %4244

4251:                                             ; preds = %4248
  br i1 %4250, label %4261, label %4252

4252:                                             ; preds = %4251
  %4253 = load x86_fp80, ptr %352, align 16, !tbaa !17
  %4254 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4253)
          to label %4255 unwind label %4244

4255:                                             ; preds = %4252
  br i1 %4254, label %4256, label %4261

4256:                                             ; preds = %4255
  %4257 = load x86_fp80, ptr %352, align 16, !tbaa !17
  %4258 = load x86_fp80, ptr %353, align 16, !tbaa !17
  %4259 = fcmp oeq x86_fp80 %4257, %4258
  br i1 %4259, label %4260, label %4261

4260:                                             ; preds = %4256
  store i8 1, ptr %355, align 1, !tbaa !11
  br label %4277

4261:                                             ; preds = %4256, %4255, %4251
  %4262 = load x86_fp80, ptr %354, align 16, !tbaa !17
  %4263 = fcmp olt x86_fp80 %4262, 0xK3FD0B424DC35095CD800
  br i1 %4263, label %4264, label %4265

4264:                                             ; preds = %4261
  store i8 1, ptr %355, align 1, !tbaa !11
  br label %4276

4265:                                             ; preds = %4261
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef nonnull align 8 dereferenceable(32) %350)
          to label %4266 unwind label %4244

4266:                                             ; preds = %4265
  %4267 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4268 = load x86_fp80, ptr %352, align 16, !tbaa !17
  %4269 = load x86_fp80, ptr %353, align 16, !tbaa !17
  %4270 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %356, i32 noundef %4267, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %4268, x86_fp80 noundef %4269, x86_fp80 noundef %4270)
          to label %4271 unwind label %4272

4271:                                             ; preds = %4266
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #7
  br label %4276

4272:                                             ; preds = %4266
  %4273 = landingpad { ptr, i32 }
          cleanup
  %4274 = extractvalue { ptr, i32 } %4273, 0
  store ptr %4274, ptr %4, align 8
  %4275 = extractvalue { ptr, i32 } %4273, 1
  store i32 %4275, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #7
  br label %4318

4276:                                             ; preds = %4271, %4264
  br label %4277

4277:                                             ; preds = %4276, %4260
  br label %4278

4278:                                             ; preds = %4277, %4227
  %4279 = load i8, ptr %355, align 1, !tbaa !11, !range !13, !noundef !14
  %4280 = trunc i8 %4279 to i1
  br i1 %4280, label %4281, label %4291

4281:                                             ; preds = %4278
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef nonnull align 8 dereferenceable(32) %350)
          to label %4282 unwind label %4244

4282:                                             ; preds = %4281
  %4283 = load x86_fp80, ptr %352, align 16, !tbaa !17
  %4284 = load x86_fp80, ptr %354, align 16, !tbaa !17
  %4285 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %357, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %4283, x86_fp80 noundef %4284, x86_fp80 noundef %4285)
          to label %4286 unwind label %4287

4286:                                             ; preds = %4282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #7
  br label %4291

4287:                                             ; preds = %4282
  %4288 = landingpad { ptr, i32 }
          cleanup
  %4289 = extractvalue { ptr, i32 } %4288, 0
  store ptr %4289, ptr %4, align 8
  %4290 = extractvalue { ptr, i32 } %4288, 1
  store i32 %4290, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #7
  br label %4318

4291:                                             ; preds = %4286, %4278
  call void @llvm.lifetime.end.p0(i64 1, ptr %355) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %354) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %353) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %352) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %350) #7
  %4292 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4293 = add nsw i32 %4292, 1
  store i32 %4293, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %358) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %359) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %359)
          to label %4294 unwind label %4322

4294:                                             ; preds = %4291
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %359) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %360) #7
  %4295 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %4296 = call noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %4295) #7
  store x86_fp80 %4296, ptr %360, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %361) #7
  %4297 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %4298 = invoke noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef %4297)
          to label %4299 unwind label %4326

4299:                                             ; preds = %4294
  store x86_fp80 %4298, ptr %361, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %362) #7
  %4300 = load x86_fp80, ptr %360, align 16, !tbaa !17
  %4301 = load x86_fp80, ptr %361, align 16, !tbaa !17
  %4302 = fsub x86_fp80 %4300, %4301
  %4303 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %4302)
          to label %4304 unwind label %4330

4304:                                             ; preds = %4299
  %4305 = load x86_fp80, ptr %361, align 16, !tbaa !17
  %4306 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %4305)
          to label %4307 unwind label %4330

4307:                                             ; preds = %4304
  %4308 = fadd x86_fp80 0xK3FFF8000000000000000, %4306
  %4309 = fdiv x86_fp80 %4303, %4308
  store x86_fp80 %4309, ptr %362, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %363) #7
  store i8 0, ptr %363, align 1, !tbaa !11
  %4310 = load x86_fp80, ptr %360, align 16, !tbaa !17
  %4311 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4310)
          to label %4312 unwind label %4334

4312:                                             ; preds = %4307
  br i1 %4311, label %4313, label %4338

4313:                                             ; preds = %4312
  %4314 = load x86_fp80, ptr %361, align 16, !tbaa !17
  %4315 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4314)
          to label %4316 unwind label %4334

4316:                                             ; preds = %4313
  br i1 %4315, label %4317, label %4338

4317:                                             ; preds = %4316
  store i8 1, ptr %363, align 1, !tbaa !11
  br label %4368

4318:                                             ; preds = %4287, %4272, %4244
  call void @llvm.lifetime.end.p0(i64 1, ptr %355) #7
  br label %4319

4319:                                             ; preds = %4318, %4240
  call void @llvm.lifetime.end.p0(i64 16, ptr %354) #7
  br label %4320

4320:                                             ; preds = %4319, %4236
  call void @llvm.lifetime.end.p0(i64 16, ptr %353) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %352) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  br label %4321

4321:                                             ; preds = %4320, %4232
  call void @llvm.lifetime.end.p0(i64 32, ptr %350) #7
  br label %5774

4322:                                             ; preds = %4291
  %4323 = landingpad { ptr, i32 }
          cleanup
  %4324 = extractvalue { ptr, i32 } %4323, 0
  store ptr %4324, ptr %4, align 8
  %4325 = extractvalue { ptr, i32 } %4323, 1
  store i32 %4325, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %359) #7
  br label %4410

4326:                                             ; preds = %4294
  %4327 = landingpad { ptr, i32 }
          cleanup
  %4328 = extractvalue { ptr, i32 } %4327, 0
  store ptr %4328, ptr %4, align 8
  %4329 = extractvalue { ptr, i32 } %4327, 1
  store i32 %4329, ptr %5, align 4
  br label %4409

4330:                                             ; preds = %4304, %4299
  %4331 = landingpad { ptr, i32 }
          cleanup
  %4332 = extractvalue { ptr, i32 } %4331, 0
  store ptr %4332, ptr %4, align 8
  %4333 = extractvalue { ptr, i32 } %4331, 1
  store i32 %4333, ptr %5, align 4
  br label %4408

4334:                                             ; preds = %4371, %4355, %4342, %4338, %4313, %4307
  %4335 = landingpad { ptr, i32 }
          cleanup
  %4336 = extractvalue { ptr, i32 } %4335, 0
  store ptr %4336, ptr %4, align 8
  %4337 = extractvalue { ptr, i32 } %4335, 1
  store i32 %4337, ptr %5, align 4
  br label %4407

4338:                                             ; preds = %4316, %4312
  %4339 = load x86_fp80, ptr %360, align 16, !tbaa !17
  %4340 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4339)
          to label %4341 unwind label %4334

4341:                                             ; preds = %4338
  br i1 %4340, label %4351, label %4342

4342:                                             ; preds = %4341
  %4343 = load x86_fp80, ptr %360, align 16, !tbaa !17
  %4344 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4343)
          to label %4345 unwind label %4334

4345:                                             ; preds = %4342
  br i1 %4344, label %4346, label %4351

4346:                                             ; preds = %4345
  %4347 = load x86_fp80, ptr %360, align 16, !tbaa !17
  %4348 = load x86_fp80, ptr %361, align 16, !tbaa !17
  %4349 = fcmp oeq x86_fp80 %4347, %4348
  br i1 %4349, label %4350, label %4351

4350:                                             ; preds = %4346
  store i8 1, ptr %363, align 1, !tbaa !11
  br label %4367

4351:                                             ; preds = %4346, %4345, %4341
  %4352 = load x86_fp80, ptr %362, align 16, !tbaa !17
  %4353 = fcmp olt x86_fp80 %4352, 0xK3FD0B424DC35095CD800
  br i1 %4353, label %4354, label %4355

4354:                                             ; preds = %4351
  store i8 1, ptr %363, align 1, !tbaa !11
  br label %4366

4355:                                             ; preds = %4351
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull align 8 dereferenceable(32) %358)
          to label %4356 unwind label %4334

4356:                                             ; preds = %4355
  %4357 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4358 = load x86_fp80, ptr %360, align 16, !tbaa !17
  %4359 = load x86_fp80, ptr %361, align 16, !tbaa !17
  %4360 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %364, i32 noundef %4357, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %4358, x86_fp80 noundef %4359, x86_fp80 noundef %4360)
          to label %4361 unwind label %4362

4361:                                             ; preds = %4356
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #7
  br label %4366

4362:                                             ; preds = %4356
  %4363 = landingpad { ptr, i32 }
          cleanup
  %4364 = extractvalue { ptr, i32 } %4363, 0
  store ptr %4364, ptr %4, align 8
  %4365 = extractvalue { ptr, i32 } %4363, 1
  store i32 %4365, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #7
  br label %4407

4366:                                             ; preds = %4361, %4354
  br label %4367

4367:                                             ; preds = %4366, %4350
  br label %4368

4368:                                             ; preds = %4367, %4317
  %4369 = load i8, ptr %363, align 1, !tbaa !11, !range !13, !noundef !14
  %4370 = trunc i8 %4369 to i1
  br i1 %4370, label %4371, label %4381

4371:                                             ; preds = %4368
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %365, ptr noundef nonnull align 8 dereferenceable(32) %358)
          to label %4372 unwind label %4334

4372:                                             ; preds = %4371
  %4373 = load x86_fp80, ptr %360, align 16, !tbaa !17
  %4374 = load x86_fp80, ptr %362, align 16, !tbaa !17
  %4375 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %365, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %4373, x86_fp80 noundef %4374, x86_fp80 noundef %4375)
          to label %4376 unwind label %4377

4376:                                             ; preds = %4372
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #7
  br label %4381

4377:                                             ; preds = %4372
  %4378 = landingpad { ptr, i32 }
          cleanup
  %4379 = extractvalue { ptr, i32 } %4378, 0
  store ptr %4379, ptr %4, align 8
  %4380 = extractvalue { ptr, i32 } %4378, 1
  store i32 %4380, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #7
  br label %4407

4381:                                             ; preds = %4376, %4368
  call void @llvm.lifetime.end.p0(i64 1, ptr %363) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %362) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %361) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %360) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #7
  %4382 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4383 = add nsw i32 %4382, 1
  store i32 %4383, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %367) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %367)
          to label %4384 unwind label %4411

4384:                                             ; preds = %4381
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %368) #7
  %4385 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #7
  store double %4385, ptr %368, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %369) #7
  %4386 = call double @llvm.round.f64(double 0.000000e+00)
  store double %4386, ptr %369, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %370) #7
  %4387 = load double, ptr %368, align 8, !tbaa !9
  %4388 = load double, ptr %369, align 8, !tbaa !9
  %4389 = fsub double %4387, %4388
  %4390 = invoke noundef double @_ZSt3absd(double noundef %4389)
          to label %4391 unwind label %4415

4391:                                             ; preds = %4384
  %4392 = load double, ptr %369, align 8, !tbaa !9
  %4393 = invoke noundef double @_ZSt3absd(double noundef %4392)
          to label %4394 unwind label %4415

4394:                                             ; preds = %4391
  %4395 = fadd double 1.000000e+00, %4393
  %4396 = fdiv double %4390, %4395
  store double %4396, ptr %370, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %371) #7
  store i8 0, ptr %371, align 1, !tbaa !11
  %4397 = load double, ptr %368, align 8, !tbaa !9
  %4398 = fpext double %4397 to x86_fp80
  %4399 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4398)
          to label %4400 unwind label %4419

4400:                                             ; preds = %4394
  br i1 %4399, label %4401, label %4423

4401:                                             ; preds = %4400
  %4402 = load double, ptr %369, align 8, !tbaa !9
  %4403 = fpext double %4402 to x86_fp80
  %4404 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4403)
          to label %4405 unwind label %4419

4405:                                             ; preds = %4401
  br i1 %4404, label %4406, label %4423

4406:                                             ; preds = %4405
  store i8 1, ptr %371, align 1, !tbaa !11
  br label %4454

4407:                                             ; preds = %4377, %4362, %4334
  call void @llvm.lifetime.end.p0(i64 1, ptr %363) #7
  br label %4408

4408:                                             ; preds = %4407, %4330
  call void @llvm.lifetime.end.p0(i64 16, ptr %362) #7
  br label %4409

4409:                                             ; preds = %4408, %4326
  call void @llvm.lifetime.end.p0(i64 16, ptr %361) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %360) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #7
  br label %4410

4410:                                             ; preds = %4409, %4322
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #7
  br label %5774

4411:                                             ; preds = %4381
  %4412 = landingpad { ptr, i32 }
          cleanup
  %4413 = extractvalue { ptr, i32 } %4412, 0
  store ptr %4413, ptr %4, align 8
  %4414 = extractvalue { ptr, i32 } %4412, 1
  store i32 %4414, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #7
  br label %4494

4415:                                             ; preds = %4391, %4384
  %4416 = landingpad { ptr, i32 }
          cleanup
  %4417 = extractvalue { ptr, i32 } %4416, 0
  store ptr %4417, ptr %4, align 8
  %4418 = extractvalue { ptr, i32 } %4416, 1
  store i32 %4418, ptr %5, align 4
  br label %4493

4419:                                             ; preds = %4457, %4442, %4428, %4423, %4401, %4394
  %4420 = landingpad { ptr, i32 }
          cleanup
  %4421 = extractvalue { ptr, i32 } %4420, 0
  store ptr %4421, ptr %4, align 8
  %4422 = extractvalue { ptr, i32 } %4420, 1
  store i32 %4422, ptr %5, align 4
  br label %4492

4423:                                             ; preds = %4405, %4400
  %4424 = load double, ptr %368, align 8, !tbaa !9
  %4425 = fpext double %4424 to x86_fp80
  %4426 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4425)
          to label %4427 unwind label %4419

4427:                                             ; preds = %4423
  br i1 %4426, label %4438, label %4428

4428:                                             ; preds = %4427
  %4429 = load double, ptr %368, align 8, !tbaa !9
  %4430 = fpext double %4429 to x86_fp80
  %4431 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4430)
          to label %4432 unwind label %4419

4432:                                             ; preds = %4428
  br i1 %4431, label %4433, label %4438

4433:                                             ; preds = %4432
  %4434 = load double, ptr %368, align 8, !tbaa !9
  %4435 = load double, ptr %369, align 8, !tbaa !9
  %4436 = fcmp oeq double %4434, %4435
  br i1 %4436, label %4437, label %4438

4437:                                             ; preds = %4433
  store i8 1, ptr %371, align 1, !tbaa !11
  br label %4453

4438:                                             ; preds = %4433, %4432, %4427
  %4439 = load double, ptr %370, align 8, !tbaa !9
  %4440 = fcmp olt double %4439, 0x3D06849B86A12B9B
  br i1 %4440, label %4441, label %4442

4441:                                             ; preds = %4438
  store i8 1, ptr %371, align 1, !tbaa !11
  br label %4452

4442:                                             ; preds = %4438
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef nonnull align 8 dereferenceable(32) %366)
          to label %4443 unwind label %4419

4443:                                             ; preds = %4442
  %4444 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4445 = load double, ptr %368, align 8, !tbaa !9
  %4446 = load double, ptr %369, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %372, i32 noundef %4444, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4445, double noundef %4446, double noundef 0.000000e+00)
          to label %4447 unwind label %4448

4447:                                             ; preds = %4443
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  br label %4452

4448:                                             ; preds = %4443
  %4449 = landingpad { ptr, i32 }
          cleanup
  %4450 = extractvalue { ptr, i32 } %4449, 0
  store ptr %4450, ptr %4, align 8
  %4451 = extractvalue { ptr, i32 } %4449, 1
  store i32 %4451, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  br label %4492

4452:                                             ; preds = %4447, %4441
  br label %4453

4453:                                             ; preds = %4452, %4437
  br label %4454

4454:                                             ; preds = %4453, %4406
  %4455 = load i8, ptr %371, align 1, !tbaa !11, !range !13, !noundef !14
  %4456 = trunc i8 %4455 to i1
  br i1 %4456, label %4457, label %4466

4457:                                             ; preds = %4454
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %373, ptr noundef nonnull align 8 dereferenceable(32) %366)
          to label %4458 unwind label %4419

4458:                                             ; preds = %4457
  %4459 = load double, ptr %368, align 8, !tbaa !9
  %4460 = load double, ptr %370, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %373, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4459, double noundef %4460, double noundef 0.000000e+00)
          to label %4461 unwind label %4462

4461:                                             ; preds = %4458
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #7
  br label %4466

4462:                                             ; preds = %4458
  %4463 = landingpad { ptr, i32 }
          cleanup
  %4464 = extractvalue { ptr, i32 } %4463, 0
  store ptr %4464, ptr %4, align 8
  %4465 = extractvalue { ptr, i32 } %4463, 1
  store i32 %4465, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #7
  br label %4492

4466:                                             ; preds = %4461, %4454
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #7
  %4467 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4468 = add nsw i32 %4467, 1
  store i32 %4468, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %374) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %375) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %375)
          to label %4469 unwind label %4495

4469:                                             ; preds = %4466
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %375) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %376) #7
  %4470 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #7
  store double %4470, ptr %376, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %377) #7
  %4471 = call double @llvm.round.f64(double -0.000000e+00)
  store double %4471, ptr %377, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %378) #7
  %4472 = load double, ptr %376, align 8, !tbaa !9
  %4473 = load double, ptr %377, align 8, !tbaa !9
  %4474 = fsub double %4472, %4473
  %4475 = invoke noundef double @_ZSt3absd(double noundef %4474)
          to label %4476 unwind label %4499

4476:                                             ; preds = %4469
  %4477 = load double, ptr %377, align 8, !tbaa !9
  %4478 = invoke noundef double @_ZSt3absd(double noundef %4477)
          to label %4479 unwind label %4499

4479:                                             ; preds = %4476
  %4480 = fadd double 1.000000e+00, %4478
  %4481 = fdiv double %4475, %4480
  store double %4481, ptr %378, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %379) #7
  store i8 0, ptr %379, align 1, !tbaa !11
  %4482 = load double, ptr %376, align 8, !tbaa !9
  %4483 = fpext double %4482 to x86_fp80
  %4484 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4483)
          to label %4485 unwind label %4503

4485:                                             ; preds = %4479
  br i1 %4484, label %4486, label %4507

4486:                                             ; preds = %4485
  %4487 = load double, ptr %377, align 8, !tbaa !9
  %4488 = fpext double %4487 to x86_fp80
  %4489 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4488)
          to label %4490 unwind label %4503

4490:                                             ; preds = %4486
  br i1 %4489, label %4491, label %4507

4491:                                             ; preds = %4490
  store i8 1, ptr %379, align 1, !tbaa !11
  br label %4538

4492:                                             ; preds = %4462, %4448, %4419
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #7
  br label %4493

4493:                                             ; preds = %4492, %4415
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #7
  br label %4494

4494:                                             ; preds = %4493, %4411
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #7
  br label %5774

4495:                                             ; preds = %4466
  %4496 = landingpad { ptr, i32 }
          cleanup
  %4497 = extractvalue { ptr, i32 } %4496, 0
  store ptr %4497, ptr %4, align 8
  %4498 = extractvalue { ptr, i32 } %4496, 1
  store i32 %4498, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %375) #7
  br label %4578

4499:                                             ; preds = %4476, %4469
  %4500 = landingpad { ptr, i32 }
          cleanup
  %4501 = extractvalue { ptr, i32 } %4500, 0
  store ptr %4501, ptr %4, align 8
  %4502 = extractvalue { ptr, i32 } %4500, 1
  store i32 %4502, ptr %5, align 4
  br label %4577

4503:                                             ; preds = %4541, %4526, %4512, %4507, %4486, %4479
  %4504 = landingpad { ptr, i32 }
          cleanup
  %4505 = extractvalue { ptr, i32 } %4504, 0
  store ptr %4505, ptr %4, align 8
  %4506 = extractvalue { ptr, i32 } %4504, 1
  store i32 %4506, ptr %5, align 4
  br label %4576

4507:                                             ; preds = %4490, %4485
  %4508 = load double, ptr %376, align 8, !tbaa !9
  %4509 = fpext double %4508 to x86_fp80
  %4510 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4509)
          to label %4511 unwind label %4503

4511:                                             ; preds = %4507
  br i1 %4510, label %4522, label %4512

4512:                                             ; preds = %4511
  %4513 = load double, ptr %376, align 8, !tbaa !9
  %4514 = fpext double %4513 to x86_fp80
  %4515 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4514)
          to label %4516 unwind label %4503

4516:                                             ; preds = %4512
  br i1 %4515, label %4517, label %4522

4517:                                             ; preds = %4516
  %4518 = load double, ptr %376, align 8, !tbaa !9
  %4519 = load double, ptr %377, align 8, !tbaa !9
  %4520 = fcmp oeq double %4518, %4519
  br i1 %4520, label %4521, label %4522

4521:                                             ; preds = %4517
  store i8 1, ptr %379, align 1, !tbaa !11
  br label %4537

4522:                                             ; preds = %4517, %4516, %4511
  %4523 = load double, ptr %378, align 8, !tbaa !9
  %4524 = fcmp olt double %4523, 0x3D06849B86A12B9B
  br i1 %4524, label %4525, label %4526

4525:                                             ; preds = %4522
  store i8 1, ptr %379, align 1, !tbaa !11
  br label %4536

4526:                                             ; preds = %4522
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef nonnull align 8 dereferenceable(32) %374)
          to label %4527 unwind label %4503

4527:                                             ; preds = %4526
  %4528 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4529 = load double, ptr %376, align 8, !tbaa !9
  %4530 = load double, ptr %377, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %380, i32 noundef %4528, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4529, double noundef %4530, double noundef -0.000000e+00)
          to label %4531 unwind label %4532

4531:                                             ; preds = %4527
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  br label %4536

4532:                                             ; preds = %4527
  %4533 = landingpad { ptr, i32 }
          cleanup
  %4534 = extractvalue { ptr, i32 } %4533, 0
  store ptr %4534, ptr %4, align 8
  %4535 = extractvalue { ptr, i32 } %4533, 1
  store i32 %4535, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  br label %4576

4536:                                             ; preds = %4531, %4525
  br label %4537

4537:                                             ; preds = %4536, %4521
  br label %4538

4538:                                             ; preds = %4537, %4491
  %4539 = load i8, ptr %379, align 1, !tbaa !11, !range !13, !noundef !14
  %4540 = trunc i8 %4539 to i1
  br i1 %4540, label %4541, label %4550

4541:                                             ; preds = %4538
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %381, ptr noundef nonnull align 8 dereferenceable(32) %374)
          to label %4542 unwind label %4503

4542:                                             ; preds = %4541
  %4543 = load double, ptr %376, align 8, !tbaa !9
  %4544 = load double, ptr %378, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %381, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4543, double noundef %4544, double noundef -0.000000e+00)
          to label %4545 unwind label %4546

4545:                                             ; preds = %4542
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %381) #7
  br label %4550

4546:                                             ; preds = %4542
  %4547 = landingpad { ptr, i32 }
          cleanup
  %4548 = extractvalue { ptr, i32 } %4547, 0
  store ptr %4548, ptr %4, align 8
  %4549 = extractvalue { ptr, i32 } %4547, 1
  store i32 %4549, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %381) #7
  br label %4576

4550:                                             ; preds = %4545, %4538
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %378) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #7
  %4551 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4552 = add nsw i32 %4551, 1
  store i32 %4552, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %382) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %383) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %383)
          to label %4553 unwind label %4579

4553:                                             ; preds = %4550
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %384) #7
  %4554 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #7
  store double %4554, ptr %384, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %385) #7
  %4555 = call double @llvm.round.f64(double 4.200000e+00)
  store double %4555, ptr %385, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %386) #7
  %4556 = load double, ptr %384, align 8, !tbaa !9
  %4557 = load double, ptr %385, align 8, !tbaa !9
  %4558 = fsub double %4556, %4557
  %4559 = invoke noundef double @_ZSt3absd(double noundef %4558)
          to label %4560 unwind label %4583

4560:                                             ; preds = %4553
  %4561 = load double, ptr %385, align 8, !tbaa !9
  %4562 = invoke noundef double @_ZSt3absd(double noundef %4561)
          to label %4563 unwind label %4583

4563:                                             ; preds = %4560
  %4564 = fadd double 1.000000e+00, %4562
  %4565 = fdiv double %4559, %4564
  store double %4565, ptr %386, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %387) #7
  store i8 0, ptr %387, align 1, !tbaa !11
  %4566 = load double, ptr %384, align 8, !tbaa !9
  %4567 = fpext double %4566 to x86_fp80
  %4568 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4567)
          to label %4569 unwind label %4587

4569:                                             ; preds = %4563
  br i1 %4568, label %4570, label %4591

4570:                                             ; preds = %4569
  %4571 = load double, ptr %385, align 8, !tbaa !9
  %4572 = fpext double %4571 to x86_fp80
  %4573 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4572)
          to label %4574 unwind label %4587

4574:                                             ; preds = %4570
  br i1 %4573, label %4575, label %4591

4575:                                             ; preds = %4574
  store i8 1, ptr %387, align 1, !tbaa !11
  br label %4622

4576:                                             ; preds = %4546, %4532, %4503
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #7
  br label %4577

4577:                                             ; preds = %4576, %4499
  call void @llvm.lifetime.end.p0(i64 8, ptr %378) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  br label %4578

4578:                                             ; preds = %4577, %4495
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #7
  br label %5774

4579:                                             ; preds = %4550
  %4580 = landingpad { ptr, i32 }
          cleanup
  %4581 = extractvalue { ptr, i32 } %4580, 0
  store ptr %4581, ptr %4, align 8
  %4582 = extractvalue { ptr, i32 } %4580, 1
  store i32 %4582, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #7
  br label %4662

4583:                                             ; preds = %4560, %4553
  %4584 = landingpad { ptr, i32 }
          cleanup
  %4585 = extractvalue { ptr, i32 } %4584, 0
  store ptr %4585, ptr %4, align 8
  %4586 = extractvalue { ptr, i32 } %4584, 1
  store i32 %4586, ptr %5, align 4
  br label %4661

4587:                                             ; preds = %4625, %4610, %4596, %4591, %4570, %4563
  %4588 = landingpad { ptr, i32 }
          cleanup
  %4589 = extractvalue { ptr, i32 } %4588, 0
  store ptr %4589, ptr %4, align 8
  %4590 = extractvalue { ptr, i32 } %4588, 1
  store i32 %4590, ptr %5, align 4
  br label %4660

4591:                                             ; preds = %4574, %4569
  %4592 = load double, ptr %384, align 8, !tbaa !9
  %4593 = fpext double %4592 to x86_fp80
  %4594 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4593)
          to label %4595 unwind label %4587

4595:                                             ; preds = %4591
  br i1 %4594, label %4606, label %4596

4596:                                             ; preds = %4595
  %4597 = load double, ptr %384, align 8, !tbaa !9
  %4598 = fpext double %4597 to x86_fp80
  %4599 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4598)
          to label %4600 unwind label %4587

4600:                                             ; preds = %4596
  br i1 %4599, label %4601, label %4606

4601:                                             ; preds = %4600
  %4602 = load double, ptr %384, align 8, !tbaa !9
  %4603 = load double, ptr %385, align 8, !tbaa !9
  %4604 = fcmp oeq double %4602, %4603
  br i1 %4604, label %4605, label %4606

4605:                                             ; preds = %4601
  store i8 1, ptr %387, align 1, !tbaa !11
  br label %4621

4606:                                             ; preds = %4601, %4600, %4595
  %4607 = load double, ptr %386, align 8, !tbaa !9
  %4608 = fcmp olt double %4607, 0x3D06849B86A12B9B
  br i1 %4608, label %4609, label %4610

4609:                                             ; preds = %4606
  store i8 1, ptr %387, align 1, !tbaa !11
  br label %4620

4610:                                             ; preds = %4606
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull align 8 dereferenceable(32) %382)
          to label %4611 unwind label %4587

4611:                                             ; preds = %4610
  %4612 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4613 = load double, ptr %384, align 8, !tbaa !9
  %4614 = load double, ptr %385, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %388, i32 noundef %4612, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4613, double noundef %4614, double noundef 4.200000e+00)
          to label %4615 unwind label %4616

4615:                                             ; preds = %4611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #7
  br label %4620

4616:                                             ; preds = %4611
  %4617 = landingpad { ptr, i32 }
          cleanup
  %4618 = extractvalue { ptr, i32 } %4617, 0
  store ptr %4618, ptr %4, align 8
  %4619 = extractvalue { ptr, i32 } %4617, 1
  store i32 %4619, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #7
  br label %4660

4620:                                             ; preds = %4615, %4609
  br label %4621

4621:                                             ; preds = %4620, %4605
  br label %4622

4622:                                             ; preds = %4621, %4575
  %4623 = load i8, ptr %387, align 1, !tbaa !11, !range !13, !noundef !14
  %4624 = trunc i8 %4623 to i1
  br i1 %4624, label %4625, label %4634

4625:                                             ; preds = %4622
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull align 8 dereferenceable(32) %382)
          to label %4626 unwind label %4587

4626:                                             ; preds = %4625
  %4627 = load double, ptr %384, align 8, !tbaa !9
  %4628 = load double, ptr %386, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %389, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4627, double noundef %4628, double noundef 4.200000e+00)
          to label %4629 unwind label %4630

4629:                                             ; preds = %4626
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #7
  br label %4634

4630:                                             ; preds = %4626
  %4631 = landingpad { ptr, i32 }
          cleanup
  %4632 = extractvalue { ptr, i32 } %4631, 0
  store ptr %4632, ptr %4, align 8
  %4633 = extractvalue { ptr, i32 } %4631, 1
  store i32 %4633, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #7
  br label %4660

4634:                                             ; preds = %4629, %4622
  call void @llvm.lifetime.end.p0(i64 1, ptr %387) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %386) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %385) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %384) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #7
  %4635 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4636 = add nsw i32 %4635, 1
  store i32 %4636, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %390) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %391) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %391)
          to label %4637 unwind label %4663

4637:                                             ; preds = %4634
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %391) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %392) #7
  %4638 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #7
  store double %4638, ptr %392, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %393) #7
  %4639 = call double @llvm.round.f64(double 4.500000e+00)
  store double %4639, ptr %393, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %394) #7
  %4640 = load double, ptr %392, align 8, !tbaa !9
  %4641 = load double, ptr %393, align 8, !tbaa !9
  %4642 = fsub double %4640, %4641
  %4643 = invoke noundef double @_ZSt3absd(double noundef %4642)
          to label %4644 unwind label %4667

4644:                                             ; preds = %4637
  %4645 = load double, ptr %393, align 8, !tbaa !9
  %4646 = invoke noundef double @_ZSt3absd(double noundef %4645)
          to label %4647 unwind label %4667

4647:                                             ; preds = %4644
  %4648 = fadd double 1.000000e+00, %4646
  %4649 = fdiv double %4643, %4648
  store double %4649, ptr %394, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %395) #7
  store i8 0, ptr %395, align 1, !tbaa !11
  %4650 = load double, ptr %392, align 8, !tbaa !9
  %4651 = fpext double %4650 to x86_fp80
  %4652 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4651)
          to label %4653 unwind label %4671

4653:                                             ; preds = %4647
  br i1 %4652, label %4654, label %4675

4654:                                             ; preds = %4653
  %4655 = load double, ptr %393, align 8, !tbaa !9
  %4656 = fpext double %4655 to x86_fp80
  %4657 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4656)
          to label %4658 unwind label %4671

4658:                                             ; preds = %4654
  br i1 %4657, label %4659, label %4675

4659:                                             ; preds = %4658
  store i8 1, ptr %395, align 1, !tbaa !11
  br label %4706

4660:                                             ; preds = %4630, %4616, %4587
  call void @llvm.lifetime.end.p0(i64 1, ptr %387) #7
  br label %4661

4661:                                             ; preds = %4660, %4583
  call void @llvm.lifetime.end.p0(i64 8, ptr %386) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %385) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %384) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #7
  br label %4662

4662:                                             ; preds = %4661, %4579
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #7
  br label %5774

4663:                                             ; preds = %4634
  %4664 = landingpad { ptr, i32 }
          cleanup
  %4665 = extractvalue { ptr, i32 } %4664, 0
  store ptr %4665, ptr %4, align 8
  %4666 = extractvalue { ptr, i32 } %4664, 1
  store i32 %4666, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %391) #7
  br label %4746

4667:                                             ; preds = %4644, %4637
  %4668 = landingpad { ptr, i32 }
          cleanup
  %4669 = extractvalue { ptr, i32 } %4668, 0
  store ptr %4669, ptr %4, align 8
  %4670 = extractvalue { ptr, i32 } %4668, 1
  store i32 %4670, ptr %5, align 4
  br label %4745

4671:                                             ; preds = %4709, %4694, %4680, %4675, %4654, %4647
  %4672 = landingpad { ptr, i32 }
          cleanup
  %4673 = extractvalue { ptr, i32 } %4672, 0
  store ptr %4673, ptr %4, align 8
  %4674 = extractvalue { ptr, i32 } %4672, 1
  store i32 %4674, ptr %5, align 4
  br label %4744

4675:                                             ; preds = %4658, %4653
  %4676 = load double, ptr %392, align 8, !tbaa !9
  %4677 = fpext double %4676 to x86_fp80
  %4678 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4677)
          to label %4679 unwind label %4671

4679:                                             ; preds = %4675
  br i1 %4678, label %4690, label %4680

4680:                                             ; preds = %4679
  %4681 = load double, ptr %392, align 8, !tbaa !9
  %4682 = fpext double %4681 to x86_fp80
  %4683 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4682)
          to label %4684 unwind label %4671

4684:                                             ; preds = %4680
  br i1 %4683, label %4685, label %4690

4685:                                             ; preds = %4684
  %4686 = load double, ptr %392, align 8, !tbaa !9
  %4687 = load double, ptr %393, align 8, !tbaa !9
  %4688 = fcmp oeq double %4686, %4687
  br i1 %4688, label %4689, label %4690

4689:                                             ; preds = %4685
  store i8 1, ptr %395, align 1, !tbaa !11
  br label %4705

4690:                                             ; preds = %4685, %4684, %4679
  %4691 = load double, ptr %394, align 8, !tbaa !9
  %4692 = fcmp olt double %4691, 0x3D06849B86A12B9B
  br i1 %4692, label %4693, label %4694

4693:                                             ; preds = %4690
  store i8 1, ptr %395, align 1, !tbaa !11
  br label %4704

4694:                                             ; preds = %4690
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef nonnull align 8 dereferenceable(32) %390)
          to label %4695 unwind label %4671

4695:                                             ; preds = %4694
  %4696 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4697 = load double, ptr %392, align 8, !tbaa !9
  %4698 = load double, ptr %393, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %396, i32 noundef %4696, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4697, double noundef %4698, double noundef 4.500000e+00)
          to label %4699 unwind label %4700

4699:                                             ; preds = %4695
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #7
  br label %4704

4700:                                             ; preds = %4695
  %4701 = landingpad { ptr, i32 }
          cleanup
  %4702 = extractvalue { ptr, i32 } %4701, 0
  store ptr %4702, ptr %4, align 8
  %4703 = extractvalue { ptr, i32 } %4701, 1
  store i32 %4703, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #7
  br label %4744

4704:                                             ; preds = %4699, %4693
  br label %4705

4705:                                             ; preds = %4704, %4689
  br label %4706

4706:                                             ; preds = %4705, %4659
  %4707 = load i8, ptr %395, align 1, !tbaa !11, !range !13, !noundef !14
  %4708 = trunc i8 %4707 to i1
  br i1 %4708, label %4709, label %4718

4709:                                             ; preds = %4706
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef nonnull align 8 dereferenceable(32) %390)
          to label %4710 unwind label %4671

4710:                                             ; preds = %4709
  %4711 = load double, ptr %392, align 8, !tbaa !9
  %4712 = load double, ptr %394, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %397, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4711, double noundef %4712, double noundef 4.500000e+00)
          to label %4713 unwind label %4714

4713:                                             ; preds = %4710
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #7
  br label %4718

4714:                                             ; preds = %4710
  %4715 = landingpad { ptr, i32 }
          cleanup
  %4716 = extractvalue { ptr, i32 } %4715, 0
  store ptr %4716, ptr %4, align 8
  %4717 = extractvalue { ptr, i32 } %4715, 1
  store i32 %4717, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #7
  br label %4744

4718:                                             ; preds = %4713, %4706
  call void @llvm.lifetime.end.p0(i64 1, ptr %395) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %394) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %393) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %390) #7
  %4719 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4720 = add nsw i32 %4719, 1
  store i32 %4720, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %398) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %399) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %398, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %399)
          to label %4721 unwind label %4747

4721:                                             ; preds = %4718
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %399) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %400) #7
  %4722 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #7
  store double %4722, ptr %400, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %401) #7
  %4723 = call double @llvm.round.f64(double 4.700000e+00)
  store double %4723, ptr %401, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %402) #7
  %4724 = load double, ptr %400, align 8, !tbaa !9
  %4725 = load double, ptr %401, align 8, !tbaa !9
  %4726 = fsub double %4724, %4725
  %4727 = invoke noundef double @_ZSt3absd(double noundef %4726)
          to label %4728 unwind label %4751

4728:                                             ; preds = %4721
  %4729 = load double, ptr %401, align 8, !tbaa !9
  %4730 = invoke noundef double @_ZSt3absd(double noundef %4729)
          to label %4731 unwind label %4751

4731:                                             ; preds = %4728
  %4732 = fadd double 1.000000e+00, %4730
  %4733 = fdiv double %4727, %4732
  store double %4733, ptr %402, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %403) #7
  store i8 0, ptr %403, align 1, !tbaa !11
  %4734 = load double, ptr %400, align 8, !tbaa !9
  %4735 = fpext double %4734 to x86_fp80
  %4736 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4735)
          to label %4737 unwind label %4755

4737:                                             ; preds = %4731
  br i1 %4736, label %4738, label %4759

4738:                                             ; preds = %4737
  %4739 = load double, ptr %401, align 8, !tbaa !9
  %4740 = fpext double %4739 to x86_fp80
  %4741 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4740)
          to label %4742 unwind label %4755

4742:                                             ; preds = %4738
  br i1 %4741, label %4743, label %4759

4743:                                             ; preds = %4742
  store i8 1, ptr %403, align 1, !tbaa !11
  br label %4790

4744:                                             ; preds = %4714, %4700, %4671
  call void @llvm.lifetime.end.p0(i64 1, ptr %395) #7
  br label %4745

4745:                                             ; preds = %4744, %4667
  call void @llvm.lifetime.end.p0(i64 8, ptr %394) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %393) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #7
  br label %4746

4746:                                             ; preds = %4745, %4663
  call void @llvm.lifetime.end.p0(i64 32, ptr %390) #7
  br label %5774

4747:                                             ; preds = %4718
  %4748 = landingpad { ptr, i32 }
          cleanup
  %4749 = extractvalue { ptr, i32 } %4748, 0
  store ptr %4749, ptr %4, align 8
  %4750 = extractvalue { ptr, i32 } %4748, 1
  store i32 %4750, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %399) #7
  br label %4830

4751:                                             ; preds = %4728, %4721
  %4752 = landingpad { ptr, i32 }
          cleanup
  %4753 = extractvalue { ptr, i32 } %4752, 0
  store ptr %4753, ptr %4, align 8
  %4754 = extractvalue { ptr, i32 } %4752, 1
  store i32 %4754, ptr %5, align 4
  br label %4829

4755:                                             ; preds = %4793, %4778, %4764, %4759, %4738, %4731
  %4756 = landingpad { ptr, i32 }
          cleanup
  %4757 = extractvalue { ptr, i32 } %4756, 0
  store ptr %4757, ptr %4, align 8
  %4758 = extractvalue { ptr, i32 } %4756, 1
  store i32 %4758, ptr %5, align 4
  br label %4828

4759:                                             ; preds = %4742, %4737
  %4760 = load double, ptr %400, align 8, !tbaa !9
  %4761 = fpext double %4760 to x86_fp80
  %4762 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4761)
          to label %4763 unwind label %4755

4763:                                             ; preds = %4759
  br i1 %4762, label %4774, label %4764

4764:                                             ; preds = %4763
  %4765 = load double, ptr %400, align 8, !tbaa !9
  %4766 = fpext double %4765 to x86_fp80
  %4767 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4766)
          to label %4768 unwind label %4755

4768:                                             ; preds = %4764
  br i1 %4767, label %4769, label %4774

4769:                                             ; preds = %4768
  %4770 = load double, ptr %400, align 8, !tbaa !9
  %4771 = load double, ptr %401, align 8, !tbaa !9
  %4772 = fcmp oeq double %4770, %4771
  br i1 %4772, label %4773, label %4774

4773:                                             ; preds = %4769
  store i8 1, ptr %403, align 1, !tbaa !11
  br label %4789

4774:                                             ; preds = %4769, %4768, %4763
  %4775 = load double, ptr %402, align 8, !tbaa !9
  %4776 = fcmp olt double %4775, 0x3D06849B86A12B9B
  br i1 %4776, label %4777, label %4778

4777:                                             ; preds = %4774
  store i8 1, ptr %403, align 1, !tbaa !11
  br label %4788

4778:                                             ; preds = %4774
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef nonnull align 8 dereferenceable(32) %398)
          to label %4779 unwind label %4755

4779:                                             ; preds = %4778
  %4780 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4781 = load double, ptr %400, align 8, !tbaa !9
  %4782 = load double, ptr %401, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %404, i32 noundef %4780, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4781, double noundef %4782, double noundef 4.700000e+00)
          to label %4783 unwind label %4784

4783:                                             ; preds = %4779
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #7
  br label %4788

4784:                                             ; preds = %4779
  %4785 = landingpad { ptr, i32 }
          cleanup
  %4786 = extractvalue { ptr, i32 } %4785, 0
  store ptr %4786, ptr %4, align 8
  %4787 = extractvalue { ptr, i32 } %4785, 1
  store i32 %4787, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #7
  br label %4828

4788:                                             ; preds = %4783, %4777
  br label %4789

4789:                                             ; preds = %4788, %4773
  br label %4790

4790:                                             ; preds = %4789, %4743
  %4791 = load i8, ptr %403, align 1, !tbaa !11, !range !13, !noundef !14
  %4792 = trunc i8 %4791 to i1
  br i1 %4792, label %4793, label %4802

4793:                                             ; preds = %4790
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull align 8 dereferenceable(32) %398)
          to label %4794 unwind label %4755

4794:                                             ; preds = %4793
  %4795 = load double, ptr %400, align 8, !tbaa !9
  %4796 = load double, ptr %402, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %405, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4795, double noundef %4796, double noundef 4.700000e+00)
          to label %4797 unwind label %4798

4797:                                             ; preds = %4794
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #7
  br label %4802

4798:                                             ; preds = %4794
  %4799 = landingpad { ptr, i32 }
          cleanup
  %4800 = extractvalue { ptr, i32 } %4799, 0
  store ptr %4800, ptr %4, align 8
  %4801 = extractvalue { ptr, i32 } %4799, 1
  store i32 %4801, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #7
  br label %4828

4802:                                             ; preds = %4797, %4790
  call void @llvm.lifetime.end.p0(i64 1, ptr %403) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %398) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %398) #7
  %4803 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4804 = add nsw i32 %4803, 1
  store i32 %4804, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %406) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %407) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %407)
          to label %4805 unwind label %4831

4805:                                             ; preds = %4802
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %407) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %408) #7
  %4806 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #7
  store double %4806, ptr %408, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %409) #7
  %4807 = call double @llvm.round.f64(double 5.000000e+00)
  store double %4807, ptr %409, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %410) #7
  %4808 = load double, ptr %408, align 8, !tbaa !9
  %4809 = load double, ptr %409, align 8, !tbaa !9
  %4810 = fsub double %4808, %4809
  %4811 = invoke noundef double @_ZSt3absd(double noundef %4810)
          to label %4812 unwind label %4835

4812:                                             ; preds = %4805
  %4813 = load double, ptr %409, align 8, !tbaa !9
  %4814 = invoke noundef double @_ZSt3absd(double noundef %4813)
          to label %4815 unwind label %4835

4815:                                             ; preds = %4812
  %4816 = fadd double 1.000000e+00, %4814
  %4817 = fdiv double %4811, %4816
  store double %4817, ptr %410, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %411) #7
  store i8 0, ptr %411, align 1, !tbaa !11
  %4818 = load double, ptr %408, align 8, !tbaa !9
  %4819 = fpext double %4818 to x86_fp80
  %4820 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4819)
          to label %4821 unwind label %4839

4821:                                             ; preds = %4815
  br i1 %4820, label %4822, label %4843

4822:                                             ; preds = %4821
  %4823 = load double, ptr %409, align 8, !tbaa !9
  %4824 = fpext double %4823 to x86_fp80
  %4825 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4824)
          to label %4826 unwind label %4839

4826:                                             ; preds = %4822
  br i1 %4825, label %4827, label %4843

4827:                                             ; preds = %4826
  store i8 1, ptr %411, align 1, !tbaa !11
  br label %4874

4828:                                             ; preds = %4798, %4784, %4755
  call void @llvm.lifetime.end.p0(i64 1, ptr %403) #7
  br label %4829

4829:                                             ; preds = %4828, %4751
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %398) #7
  br label %4830

4830:                                             ; preds = %4829, %4747
  call void @llvm.lifetime.end.p0(i64 32, ptr %398) #7
  br label %5774

4831:                                             ; preds = %4802
  %4832 = landingpad { ptr, i32 }
          cleanup
  %4833 = extractvalue { ptr, i32 } %4832, 0
  store ptr %4833, ptr %4, align 8
  %4834 = extractvalue { ptr, i32 } %4832, 1
  store i32 %4834, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %407) #7
  br label %4914

4835:                                             ; preds = %4812, %4805
  %4836 = landingpad { ptr, i32 }
          cleanup
  %4837 = extractvalue { ptr, i32 } %4836, 0
  store ptr %4837, ptr %4, align 8
  %4838 = extractvalue { ptr, i32 } %4836, 1
  store i32 %4838, ptr %5, align 4
  br label %4913

4839:                                             ; preds = %4877, %4862, %4848, %4843, %4822, %4815
  %4840 = landingpad { ptr, i32 }
          cleanup
  %4841 = extractvalue { ptr, i32 } %4840, 0
  store ptr %4841, ptr %4, align 8
  %4842 = extractvalue { ptr, i32 } %4840, 1
  store i32 %4842, ptr %5, align 4
  br label %4912

4843:                                             ; preds = %4826, %4821
  %4844 = load double, ptr %408, align 8, !tbaa !9
  %4845 = fpext double %4844 to x86_fp80
  %4846 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4845)
          to label %4847 unwind label %4839

4847:                                             ; preds = %4843
  br i1 %4846, label %4858, label %4848

4848:                                             ; preds = %4847
  %4849 = load double, ptr %408, align 8, !tbaa !9
  %4850 = fpext double %4849 to x86_fp80
  %4851 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4850)
          to label %4852 unwind label %4839

4852:                                             ; preds = %4848
  br i1 %4851, label %4853, label %4858

4853:                                             ; preds = %4852
  %4854 = load double, ptr %408, align 8, !tbaa !9
  %4855 = load double, ptr %409, align 8, !tbaa !9
  %4856 = fcmp oeq double %4854, %4855
  br i1 %4856, label %4857, label %4858

4857:                                             ; preds = %4853
  store i8 1, ptr %411, align 1, !tbaa !11
  br label %4873

4858:                                             ; preds = %4853, %4852, %4847
  %4859 = load double, ptr %410, align 8, !tbaa !9
  %4860 = fcmp olt double %4859, 0x3D06849B86A12B9B
  br i1 %4860, label %4861, label %4862

4861:                                             ; preds = %4858
  store i8 1, ptr %411, align 1, !tbaa !11
  br label %4872

4862:                                             ; preds = %4858
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull align 8 dereferenceable(32) %406)
          to label %4863 unwind label %4839

4863:                                             ; preds = %4862
  %4864 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4865 = load double, ptr %408, align 8, !tbaa !9
  %4866 = load double, ptr %409, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %412, i32 noundef %4864, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4865, double noundef %4866, double noundef 5.000000e+00)
          to label %4867 unwind label %4868

4867:                                             ; preds = %4863
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  br label %4872

4868:                                             ; preds = %4863
  %4869 = landingpad { ptr, i32 }
          cleanup
  %4870 = extractvalue { ptr, i32 } %4869, 0
  store ptr %4870, ptr %4, align 8
  %4871 = extractvalue { ptr, i32 } %4869, 1
  store i32 %4871, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  br label %4912

4872:                                             ; preds = %4867, %4861
  br label %4873

4873:                                             ; preds = %4872, %4857
  br label %4874

4874:                                             ; preds = %4873, %4827
  %4875 = load i8, ptr %411, align 1, !tbaa !11, !range !13, !noundef !14
  %4876 = trunc i8 %4875 to i1
  br i1 %4876, label %4877, label %4886

4877:                                             ; preds = %4874
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef nonnull align 8 dereferenceable(32) %406)
          to label %4878 unwind label %4839

4878:                                             ; preds = %4877
  %4879 = load double, ptr %408, align 8, !tbaa !9
  %4880 = load double, ptr %410, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %413, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4879, double noundef %4880, double noundef 5.000000e+00)
          to label %4881 unwind label %4882

4881:                                             ; preds = %4878
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #7
  br label %4886

4882:                                             ; preds = %4878
  %4883 = landingpad { ptr, i32 }
          cleanup
  %4884 = extractvalue { ptr, i32 } %4883, 0
  store ptr %4884, ptr %4, align 8
  %4885 = extractvalue { ptr, i32 } %4883, 1
  store i32 %4885, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #7
  br label %4912

4886:                                             ; preds = %4881, %4874
  call void @llvm.lifetime.end.p0(i64 1, ptr %411) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %410) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %409) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %406) #7
  %4887 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4888 = add nsw i32 %4887, 1
  store i32 %4888, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %414) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %415) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %414, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %415)
          to label %4889 unwind label %4915

4889:                                             ; preds = %4886
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %415) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %416) #7
  %4890 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #7
  store double %4890, ptr %416, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %417) #7
  %4891 = call double @llvm.round.f64(double -4.200000e+00)
  store double %4891, ptr %417, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %418) #7
  %4892 = load double, ptr %416, align 8, !tbaa !9
  %4893 = load double, ptr %417, align 8, !tbaa !9
  %4894 = fsub double %4892, %4893
  %4895 = invoke noundef double @_ZSt3absd(double noundef %4894)
          to label %4896 unwind label %4919

4896:                                             ; preds = %4889
  %4897 = load double, ptr %417, align 8, !tbaa !9
  %4898 = invoke noundef double @_ZSt3absd(double noundef %4897)
          to label %4899 unwind label %4919

4899:                                             ; preds = %4896
  %4900 = fadd double 1.000000e+00, %4898
  %4901 = fdiv double %4895, %4900
  store double %4901, ptr %418, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %419) #7
  store i8 0, ptr %419, align 1, !tbaa !11
  %4902 = load double, ptr %416, align 8, !tbaa !9
  %4903 = fpext double %4902 to x86_fp80
  %4904 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4903)
          to label %4905 unwind label %4923

4905:                                             ; preds = %4899
  br i1 %4904, label %4906, label %4927

4906:                                             ; preds = %4905
  %4907 = load double, ptr %417, align 8, !tbaa !9
  %4908 = fpext double %4907 to x86_fp80
  %4909 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4908)
          to label %4910 unwind label %4923

4910:                                             ; preds = %4906
  br i1 %4909, label %4911, label %4927

4911:                                             ; preds = %4910
  store i8 1, ptr %419, align 1, !tbaa !11
  br label %4958

4912:                                             ; preds = %4882, %4868, %4839
  call void @llvm.lifetime.end.p0(i64 1, ptr %411) #7
  br label %4913

4913:                                             ; preds = %4912, %4835
  call void @llvm.lifetime.end.p0(i64 8, ptr %410) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %409) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #7
  br label %4914

4914:                                             ; preds = %4913, %4831
  call void @llvm.lifetime.end.p0(i64 32, ptr %406) #7
  br label %5774

4915:                                             ; preds = %4886
  %4916 = landingpad { ptr, i32 }
          cleanup
  %4917 = extractvalue { ptr, i32 } %4916, 0
  store ptr %4917, ptr %4, align 8
  %4918 = extractvalue { ptr, i32 } %4916, 1
  store i32 %4918, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %415) #7
  br label %4998

4919:                                             ; preds = %4896, %4889
  %4920 = landingpad { ptr, i32 }
          cleanup
  %4921 = extractvalue { ptr, i32 } %4920, 0
  store ptr %4921, ptr %4, align 8
  %4922 = extractvalue { ptr, i32 } %4920, 1
  store i32 %4922, ptr %5, align 4
  br label %4997

4923:                                             ; preds = %4961, %4946, %4932, %4927, %4906, %4899
  %4924 = landingpad { ptr, i32 }
          cleanup
  %4925 = extractvalue { ptr, i32 } %4924, 0
  store ptr %4925, ptr %4, align 8
  %4926 = extractvalue { ptr, i32 } %4924, 1
  store i32 %4926, ptr %5, align 4
  br label %4996

4927:                                             ; preds = %4910, %4905
  %4928 = load double, ptr %416, align 8, !tbaa !9
  %4929 = fpext double %4928 to x86_fp80
  %4930 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4929)
          to label %4931 unwind label %4923

4931:                                             ; preds = %4927
  br i1 %4930, label %4942, label %4932

4932:                                             ; preds = %4931
  %4933 = load double, ptr %416, align 8, !tbaa !9
  %4934 = fpext double %4933 to x86_fp80
  %4935 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %4934)
          to label %4936 unwind label %4923

4936:                                             ; preds = %4932
  br i1 %4935, label %4937, label %4942

4937:                                             ; preds = %4936
  %4938 = load double, ptr %416, align 8, !tbaa !9
  %4939 = load double, ptr %417, align 8, !tbaa !9
  %4940 = fcmp oeq double %4938, %4939
  br i1 %4940, label %4941, label %4942

4941:                                             ; preds = %4937
  store i8 1, ptr %419, align 1, !tbaa !11
  br label %4957

4942:                                             ; preds = %4937, %4936, %4931
  %4943 = load double, ptr %418, align 8, !tbaa !9
  %4944 = fcmp olt double %4943, 0x3D06849B86A12B9B
  br i1 %4944, label %4945, label %4946

4945:                                             ; preds = %4942
  store i8 1, ptr %419, align 1, !tbaa !11
  br label %4956

4946:                                             ; preds = %4942
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull align 8 dereferenceable(32) %414)
          to label %4947 unwind label %4923

4947:                                             ; preds = %4946
  %4948 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4949 = load double, ptr %416, align 8, !tbaa !9
  %4950 = load double, ptr %417, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %420, i32 noundef %4948, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4949, double noundef %4950, double noundef -4.200000e+00)
          to label %4951 unwind label %4952

4951:                                             ; preds = %4947
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #7
  br label %4956

4952:                                             ; preds = %4947
  %4953 = landingpad { ptr, i32 }
          cleanup
  %4954 = extractvalue { ptr, i32 } %4953, 0
  store ptr %4954, ptr %4, align 8
  %4955 = extractvalue { ptr, i32 } %4953, 1
  store i32 %4955, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #7
  br label %4996

4956:                                             ; preds = %4951, %4945
  br label %4957

4957:                                             ; preds = %4956, %4941
  br label %4958

4958:                                             ; preds = %4957, %4911
  %4959 = load i8, ptr %419, align 1, !tbaa !11, !range !13, !noundef !14
  %4960 = trunc i8 %4959 to i1
  br i1 %4960, label %4961, label %4970

4961:                                             ; preds = %4958
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %421, ptr noundef nonnull align 8 dereferenceable(32) %414)
          to label %4962 unwind label %4923

4962:                                             ; preds = %4961
  %4963 = load double, ptr %416, align 8, !tbaa !9
  %4964 = load double, ptr %418, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %421, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %4963, double noundef %4964, double noundef -4.200000e+00)
          to label %4965 unwind label %4966

4965:                                             ; preds = %4962
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #7
  br label %4970

4966:                                             ; preds = %4962
  %4967 = landingpad { ptr, i32 }
          cleanup
  %4968 = extractvalue { ptr, i32 } %4967, 0
  store ptr %4968, ptr %4, align 8
  %4969 = extractvalue { ptr, i32 } %4967, 1
  store i32 %4969, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #7
  br label %4996

4970:                                             ; preds = %4965, %4958
  call void @llvm.lifetime.end.p0(i64 1, ptr %419) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %418) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %417) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %416) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %414) #7
  %4971 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %4972 = add nsw i32 %4971, 1
  store i32 %4972, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %422) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %423) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %423)
          to label %4973 unwind label %4999

4973:                                             ; preds = %4970
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %424) #7
  %4974 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.500000e+00) #7
  store double %4974, ptr %424, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %425) #7
  %4975 = call double @llvm.round.f64(double -4.500000e+00)
  store double %4975, ptr %425, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %426) #7
  %4976 = load double, ptr %424, align 8, !tbaa !9
  %4977 = load double, ptr %425, align 8, !tbaa !9
  %4978 = fsub double %4976, %4977
  %4979 = invoke noundef double @_ZSt3absd(double noundef %4978)
          to label %4980 unwind label %5003

4980:                                             ; preds = %4973
  %4981 = load double, ptr %425, align 8, !tbaa !9
  %4982 = invoke noundef double @_ZSt3absd(double noundef %4981)
          to label %4983 unwind label %5003

4983:                                             ; preds = %4980
  %4984 = fadd double 1.000000e+00, %4982
  %4985 = fdiv double %4979, %4984
  store double %4985, ptr %426, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %427) #7
  store i8 0, ptr %427, align 1, !tbaa !11
  %4986 = load double, ptr %424, align 8, !tbaa !9
  %4987 = fpext double %4986 to x86_fp80
  %4988 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4987)
          to label %4989 unwind label %5007

4989:                                             ; preds = %4983
  br i1 %4988, label %4990, label %5011

4990:                                             ; preds = %4989
  %4991 = load double, ptr %425, align 8, !tbaa !9
  %4992 = fpext double %4991 to x86_fp80
  %4993 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %4992)
          to label %4994 unwind label %5007

4994:                                             ; preds = %4990
  br i1 %4993, label %4995, label %5011

4995:                                             ; preds = %4994
  store i8 1, ptr %427, align 1, !tbaa !11
  br label %5042

4996:                                             ; preds = %4966, %4952, %4923
  call void @llvm.lifetime.end.p0(i64 1, ptr %419) #7
  br label %4997

4997:                                             ; preds = %4996, %4919
  call void @llvm.lifetime.end.p0(i64 8, ptr %418) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %417) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %416) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #7
  br label %4998

4998:                                             ; preds = %4997, %4915
  call void @llvm.lifetime.end.p0(i64 32, ptr %414) #7
  br label %5774

4999:                                             ; preds = %4970
  %5000 = landingpad { ptr, i32 }
          cleanup
  %5001 = extractvalue { ptr, i32 } %5000, 0
  store ptr %5001, ptr %4, align 8
  %5002 = extractvalue { ptr, i32 } %5000, 1
  store i32 %5002, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #7
  br label %5082

5003:                                             ; preds = %4980, %4973
  %5004 = landingpad { ptr, i32 }
          cleanup
  %5005 = extractvalue { ptr, i32 } %5004, 0
  store ptr %5005, ptr %4, align 8
  %5006 = extractvalue { ptr, i32 } %5004, 1
  store i32 %5006, ptr %5, align 4
  br label %5081

5007:                                             ; preds = %5045, %5030, %5016, %5011, %4990, %4983
  %5008 = landingpad { ptr, i32 }
          cleanup
  %5009 = extractvalue { ptr, i32 } %5008, 0
  store ptr %5009, ptr %4, align 8
  %5010 = extractvalue { ptr, i32 } %5008, 1
  store i32 %5010, ptr %5, align 4
  br label %5080

5011:                                             ; preds = %4994, %4989
  %5012 = load double, ptr %424, align 8, !tbaa !9
  %5013 = fpext double %5012 to x86_fp80
  %5014 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5013)
          to label %5015 unwind label %5007

5015:                                             ; preds = %5011
  br i1 %5014, label %5026, label %5016

5016:                                             ; preds = %5015
  %5017 = load double, ptr %424, align 8, !tbaa !9
  %5018 = fpext double %5017 to x86_fp80
  %5019 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5018)
          to label %5020 unwind label %5007

5020:                                             ; preds = %5016
  br i1 %5019, label %5021, label %5026

5021:                                             ; preds = %5020
  %5022 = load double, ptr %424, align 8, !tbaa !9
  %5023 = load double, ptr %425, align 8, !tbaa !9
  %5024 = fcmp oeq double %5022, %5023
  br i1 %5024, label %5025, label %5026

5025:                                             ; preds = %5021
  store i8 1, ptr %427, align 1, !tbaa !11
  br label %5041

5026:                                             ; preds = %5021, %5020, %5015
  %5027 = load double, ptr %426, align 8, !tbaa !9
  %5028 = fcmp olt double %5027, 0x3D06849B86A12B9B
  br i1 %5028, label %5029, label %5030

5029:                                             ; preds = %5026
  store i8 1, ptr %427, align 1, !tbaa !11
  br label %5040

5030:                                             ; preds = %5026
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef nonnull align 8 dereferenceable(32) %422)
          to label %5031 unwind label %5007

5031:                                             ; preds = %5030
  %5032 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5033 = load double, ptr %424, align 8, !tbaa !9
  %5034 = load double, ptr %425, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %428, i32 noundef %5032, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5033, double noundef %5034, double noundef -4.500000e+00)
          to label %5035 unwind label %5036

5035:                                             ; preds = %5031
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #7
  br label %5040

5036:                                             ; preds = %5031
  %5037 = landingpad { ptr, i32 }
          cleanup
  %5038 = extractvalue { ptr, i32 } %5037, 0
  store ptr %5038, ptr %4, align 8
  %5039 = extractvalue { ptr, i32 } %5037, 1
  store i32 %5039, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #7
  br label %5080

5040:                                             ; preds = %5035, %5029
  br label %5041

5041:                                             ; preds = %5040, %5025
  br label %5042

5042:                                             ; preds = %5041, %4995
  %5043 = load i8, ptr %427, align 1, !tbaa !11, !range !13, !noundef !14
  %5044 = trunc i8 %5043 to i1
  br i1 %5044, label %5045, label %5054

5045:                                             ; preds = %5042
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull align 8 dereferenceable(32) %422)
          to label %5046 unwind label %5007

5046:                                             ; preds = %5045
  %5047 = load double, ptr %424, align 8, !tbaa !9
  %5048 = load double, ptr %426, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %429, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5047, double noundef %5048, double noundef -4.500000e+00)
          to label %5049 unwind label %5050

5049:                                             ; preds = %5046
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #7
  br label %5054

5050:                                             ; preds = %5046
  %5051 = landingpad { ptr, i32 }
          cleanup
  %5052 = extractvalue { ptr, i32 } %5051, 0
  store ptr %5052, ptr %4, align 8
  %5053 = extractvalue { ptr, i32 } %5051, 1
  store i32 %5053, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #7
  br label %5080

5054:                                             ; preds = %5049, %5042
  call void @llvm.lifetime.end.p0(i64 1, ptr %427) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %426) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %425) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %422) #7
  %5055 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5056 = add nsw i32 %5055, 1
  store i32 %5056, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %430) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %431) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %430, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %431)
          to label %5057 unwind label %5083

5057:                                             ; preds = %5054
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %431) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #7
  %5058 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #7
  store double %5058, ptr %432, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %433) #7
  %5059 = call double @llvm.round.f64(double -4.700000e+00)
  store double %5059, ptr %433, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %434) #7
  %5060 = load double, ptr %432, align 8, !tbaa !9
  %5061 = load double, ptr %433, align 8, !tbaa !9
  %5062 = fsub double %5060, %5061
  %5063 = invoke noundef double @_ZSt3absd(double noundef %5062)
          to label %5064 unwind label %5087

5064:                                             ; preds = %5057
  %5065 = load double, ptr %433, align 8, !tbaa !9
  %5066 = invoke noundef double @_ZSt3absd(double noundef %5065)
          to label %5067 unwind label %5087

5067:                                             ; preds = %5064
  %5068 = fadd double 1.000000e+00, %5066
  %5069 = fdiv double %5063, %5068
  store double %5069, ptr %434, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %435) #7
  store i8 0, ptr %435, align 1, !tbaa !11
  %5070 = load double, ptr %432, align 8, !tbaa !9
  %5071 = fpext double %5070 to x86_fp80
  %5072 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5071)
          to label %5073 unwind label %5091

5073:                                             ; preds = %5067
  br i1 %5072, label %5074, label %5095

5074:                                             ; preds = %5073
  %5075 = load double, ptr %433, align 8, !tbaa !9
  %5076 = fpext double %5075 to x86_fp80
  %5077 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5076)
          to label %5078 unwind label %5091

5078:                                             ; preds = %5074
  br i1 %5077, label %5079, label %5095

5079:                                             ; preds = %5078
  store i8 1, ptr %435, align 1, !tbaa !11
  br label %5126

5080:                                             ; preds = %5050, %5036, %5007
  call void @llvm.lifetime.end.p0(i64 1, ptr %427) #7
  br label %5081

5081:                                             ; preds = %5080, %5003
  call void @llvm.lifetime.end.p0(i64 8, ptr %426) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %425) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #7
  br label %5082

5082:                                             ; preds = %5081, %4999
  call void @llvm.lifetime.end.p0(i64 32, ptr %422) #7
  br label %5774

5083:                                             ; preds = %5054
  %5084 = landingpad { ptr, i32 }
          cleanup
  %5085 = extractvalue { ptr, i32 } %5084, 0
  store ptr %5085, ptr %4, align 8
  %5086 = extractvalue { ptr, i32 } %5084, 1
  store i32 %5086, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %431) #7
  br label %5166

5087:                                             ; preds = %5064, %5057
  %5088 = landingpad { ptr, i32 }
          cleanup
  %5089 = extractvalue { ptr, i32 } %5088, 0
  store ptr %5089, ptr %4, align 8
  %5090 = extractvalue { ptr, i32 } %5088, 1
  store i32 %5090, ptr %5, align 4
  br label %5165

5091:                                             ; preds = %5129, %5114, %5100, %5095, %5074, %5067
  %5092 = landingpad { ptr, i32 }
          cleanup
  %5093 = extractvalue { ptr, i32 } %5092, 0
  store ptr %5093, ptr %4, align 8
  %5094 = extractvalue { ptr, i32 } %5092, 1
  store i32 %5094, ptr %5, align 4
  br label %5164

5095:                                             ; preds = %5078, %5073
  %5096 = load double, ptr %432, align 8, !tbaa !9
  %5097 = fpext double %5096 to x86_fp80
  %5098 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5097)
          to label %5099 unwind label %5091

5099:                                             ; preds = %5095
  br i1 %5098, label %5110, label %5100

5100:                                             ; preds = %5099
  %5101 = load double, ptr %432, align 8, !tbaa !9
  %5102 = fpext double %5101 to x86_fp80
  %5103 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5102)
          to label %5104 unwind label %5091

5104:                                             ; preds = %5100
  br i1 %5103, label %5105, label %5110

5105:                                             ; preds = %5104
  %5106 = load double, ptr %432, align 8, !tbaa !9
  %5107 = load double, ptr %433, align 8, !tbaa !9
  %5108 = fcmp oeq double %5106, %5107
  br i1 %5108, label %5109, label %5110

5109:                                             ; preds = %5105
  store i8 1, ptr %435, align 1, !tbaa !11
  br label %5125

5110:                                             ; preds = %5105, %5104, %5099
  %5111 = load double, ptr %434, align 8, !tbaa !9
  %5112 = fcmp olt double %5111, 0x3D06849B86A12B9B
  br i1 %5112, label %5113, label %5114

5113:                                             ; preds = %5110
  store i8 1, ptr %435, align 1, !tbaa !11
  br label %5124

5114:                                             ; preds = %5110
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef nonnull align 8 dereferenceable(32) %430)
          to label %5115 unwind label %5091

5115:                                             ; preds = %5114
  %5116 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5117 = load double, ptr %432, align 8, !tbaa !9
  %5118 = load double, ptr %433, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %436, i32 noundef %5116, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5117, double noundef %5118, double noundef -4.700000e+00)
          to label %5119 unwind label %5120

5119:                                             ; preds = %5115
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #7
  br label %5124

5120:                                             ; preds = %5115
  %5121 = landingpad { ptr, i32 }
          cleanup
  %5122 = extractvalue { ptr, i32 } %5121, 0
  store ptr %5122, ptr %4, align 8
  %5123 = extractvalue { ptr, i32 } %5121, 1
  store i32 %5123, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #7
  br label %5164

5124:                                             ; preds = %5119, %5113
  br label %5125

5125:                                             ; preds = %5124, %5109
  br label %5126

5126:                                             ; preds = %5125, %5079
  %5127 = load i8, ptr %435, align 1, !tbaa !11, !range !13, !noundef !14
  %5128 = trunc i8 %5127 to i1
  br i1 %5128, label %5129, label %5138

5129:                                             ; preds = %5126
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull align 8 dereferenceable(32) %430)
          to label %5130 unwind label %5091

5130:                                             ; preds = %5129
  %5131 = load double, ptr %432, align 8, !tbaa !9
  %5132 = load double, ptr %434, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %437, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5131, double noundef %5132, double noundef -4.700000e+00)
          to label %5133 unwind label %5134

5133:                                             ; preds = %5130
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #7
  br label %5138

5134:                                             ; preds = %5130
  %5135 = landingpad { ptr, i32 }
          cleanup
  %5136 = extractvalue { ptr, i32 } %5135, 0
  store ptr %5136, ptr %4, align 8
  %5137 = extractvalue { ptr, i32 } %5135, 1
  store i32 %5137, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #7
  br label %5164

5138:                                             ; preds = %5133, %5126
  call void @llvm.lifetime.end.p0(i64 1, ptr %435) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %434) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %433) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %430) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %430) #7
  %5139 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5140 = add nsw i32 %5139, 1
  store i32 %5140, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %438) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %439) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %439) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %439)
          to label %5141 unwind label %5167

5141:                                             ; preds = %5138
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %439) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %439) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %440) #7
  %5142 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #7
  store double %5142, ptr %440, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %441) #7
  %5143 = call double @llvm.round.f64(double -5.000000e+00)
  store double %5143, ptr %441, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %442) #7
  %5144 = load double, ptr %440, align 8, !tbaa !9
  %5145 = load double, ptr %441, align 8, !tbaa !9
  %5146 = fsub double %5144, %5145
  %5147 = invoke noundef double @_ZSt3absd(double noundef %5146)
          to label %5148 unwind label %5171

5148:                                             ; preds = %5141
  %5149 = load double, ptr %441, align 8, !tbaa !9
  %5150 = invoke noundef double @_ZSt3absd(double noundef %5149)
          to label %5151 unwind label %5171

5151:                                             ; preds = %5148
  %5152 = fadd double 1.000000e+00, %5150
  %5153 = fdiv double %5147, %5152
  store double %5153, ptr %442, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %443) #7
  store i8 0, ptr %443, align 1, !tbaa !11
  %5154 = load double, ptr %440, align 8, !tbaa !9
  %5155 = fpext double %5154 to x86_fp80
  %5156 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5155)
          to label %5157 unwind label %5175

5157:                                             ; preds = %5151
  br i1 %5156, label %5158, label %5179

5158:                                             ; preds = %5157
  %5159 = load double, ptr %441, align 8, !tbaa !9
  %5160 = fpext double %5159 to x86_fp80
  %5161 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5160)
          to label %5162 unwind label %5175

5162:                                             ; preds = %5158
  br i1 %5161, label %5163, label %5179

5163:                                             ; preds = %5162
  store i8 1, ptr %443, align 1, !tbaa !11
  br label %5210

5164:                                             ; preds = %5134, %5120, %5091
  call void @llvm.lifetime.end.p0(i64 1, ptr %435) #7
  br label %5165

5165:                                             ; preds = %5164, %5087
  call void @llvm.lifetime.end.p0(i64 8, ptr %434) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %433) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %430) #7
  br label %5166

5166:                                             ; preds = %5165, %5083
  call void @llvm.lifetime.end.p0(i64 32, ptr %430) #7
  br label %5774

5167:                                             ; preds = %5138
  %5168 = landingpad { ptr, i32 }
          cleanup
  %5169 = extractvalue { ptr, i32 } %5168, 0
  store ptr %5169, ptr %4, align 8
  %5170 = extractvalue { ptr, i32 } %5168, 1
  store i32 %5170, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %439) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %439) #7
  br label %5250

5171:                                             ; preds = %5148, %5141
  %5172 = landingpad { ptr, i32 }
          cleanup
  %5173 = extractvalue { ptr, i32 } %5172, 0
  store ptr %5173, ptr %4, align 8
  %5174 = extractvalue { ptr, i32 } %5172, 1
  store i32 %5174, ptr %5, align 4
  br label %5249

5175:                                             ; preds = %5213, %5198, %5184, %5179, %5158, %5151
  %5176 = landingpad { ptr, i32 }
          cleanup
  %5177 = extractvalue { ptr, i32 } %5176, 0
  store ptr %5177, ptr %4, align 8
  %5178 = extractvalue { ptr, i32 } %5176, 1
  store i32 %5178, ptr %5, align 4
  br label %5248

5179:                                             ; preds = %5162, %5157
  %5180 = load double, ptr %440, align 8, !tbaa !9
  %5181 = fpext double %5180 to x86_fp80
  %5182 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5181)
          to label %5183 unwind label %5175

5183:                                             ; preds = %5179
  br i1 %5182, label %5194, label %5184

5184:                                             ; preds = %5183
  %5185 = load double, ptr %440, align 8, !tbaa !9
  %5186 = fpext double %5185 to x86_fp80
  %5187 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5186)
          to label %5188 unwind label %5175

5188:                                             ; preds = %5184
  br i1 %5187, label %5189, label %5194

5189:                                             ; preds = %5188
  %5190 = load double, ptr %440, align 8, !tbaa !9
  %5191 = load double, ptr %441, align 8, !tbaa !9
  %5192 = fcmp oeq double %5190, %5191
  br i1 %5192, label %5193, label %5194

5193:                                             ; preds = %5189
  store i8 1, ptr %443, align 1, !tbaa !11
  br label %5209

5194:                                             ; preds = %5189, %5188, %5183
  %5195 = load double, ptr %442, align 8, !tbaa !9
  %5196 = fcmp olt double %5195, 0x3D06849B86A12B9B
  br i1 %5196, label %5197, label %5198

5197:                                             ; preds = %5194
  store i8 1, ptr %443, align 1, !tbaa !11
  br label %5208

5198:                                             ; preds = %5194
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %444, ptr noundef nonnull align 8 dereferenceable(32) %438)
          to label %5199 unwind label %5175

5199:                                             ; preds = %5198
  %5200 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5201 = load double, ptr %440, align 8, !tbaa !9
  %5202 = load double, ptr %441, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %444, i32 noundef %5200, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5201, double noundef %5202, double noundef -5.000000e+00)
          to label %5203 unwind label %5204

5203:                                             ; preds = %5199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  br label %5208

5204:                                             ; preds = %5199
  %5205 = landingpad { ptr, i32 }
          cleanup
  %5206 = extractvalue { ptr, i32 } %5205, 0
  store ptr %5206, ptr %4, align 8
  %5207 = extractvalue { ptr, i32 } %5205, 1
  store i32 %5207, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  br label %5248

5208:                                             ; preds = %5203, %5197
  br label %5209

5209:                                             ; preds = %5208, %5193
  br label %5210

5210:                                             ; preds = %5209, %5163
  %5211 = load i8, ptr %443, align 1, !tbaa !11, !range !13, !noundef !14
  %5212 = trunc i8 %5211 to i1
  br i1 %5212, label %5213, label %5222

5213:                                             ; preds = %5210
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %445, ptr noundef nonnull align 8 dereferenceable(32) %438)
          to label %5214 unwind label %5175

5214:                                             ; preds = %5213
  %5215 = load double, ptr %440, align 8, !tbaa !9
  %5216 = load double, ptr %442, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %445, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5215, double noundef %5216, double noundef -5.000000e+00)
          to label %5217 unwind label %5218

5217:                                             ; preds = %5214
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #7
  br label %5222

5218:                                             ; preds = %5214
  %5219 = landingpad { ptr, i32 }
          cleanup
  %5220 = extractvalue { ptr, i32 } %5219, 0
  store ptr %5220, ptr %4, align 8
  %5221 = extractvalue { ptr, i32 } %5219, 1
  store i32 %5221, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #7
  br label %5248

5222:                                             ; preds = %5217, %5210
  call void @llvm.lifetime.end.p0(i64 1, ptr %443) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %441) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %440) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #7
  %5223 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5224 = add nsw i32 %5223, 1
  store i32 %5224, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %446) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %447) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %447)
          to label %5225 unwind label %5251

5225:                                             ; preds = %5222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %447) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %448) #7
  %5226 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #7
  store double %5226, ptr %448, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %449) #7
  %5227 = call double @llvm.round.f64(double 4.200000e+33)
  store double %5227, ptr %449, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %450) #7
  %5228 = load double, ptr %448, align 8, !tbaa !9
  %5229 = load double, ptr %449, align 8, !tbaa !9
  %5230 = fsub double %5228, %5229
  %5231 = invoke noundef double @_ZSt3absd(double noundef %5230)
          to label %5232 unwind label %5255

5232:                                             ; preds = %5225
  %5233 = load double, ptr %449, align 8, !tbaa !9
  %5234 = invoke noundef double @_ZSt3absd(double noundef %5233)
          to label %5235 unwind label %5255

5235:                                             ; preds = %5232
  %5236 = fadd double 1.000000e+00, %5234
  %5237 = fdiv double %5231, %5236
  store double %5237, ptr %450, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %451) #7
  store i8 0, ptr %451, align 1, !tbaa !11
  %5238 = load double, ptr %448, align 8, !tbaa !9
  %5239 = fpext double %5238 to x86_fp80
  %5240 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5239)
          to label %5241 unwind label %5259

5241:                                             ; preds = %5235
  br i1 %5240, label %5242, label %5263

5242:                                             ; preds = %5241
  %5243 = load double, ptr %449, align 8, !tbaa !9
  %5244 = fpext double %5243 to x86_fp80
  %5245 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5244)
          to label %5246 unwind label %5259

5246:                                             ; preds = %5242
  br i1 %5245, label %5247, label %5263

5247:                                             ; preds = %5246
  store i8 1, ptr %451, align 1, !tbaa !11
  br label %5294

5248:                                             ; preds = %5218, %5204, %5175
  call void @llvm.lifetime.end.p0(i64 1, ptr %443) #7
  br label %5249

5249:                                             ; preds = %5248, %5171
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %441) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %440) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #7
  br label %5250

5250:                                             ; preds = %5249, %5167
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #7
  br label %5774

5251:                                             ; preds = %5222
  %5252 = landingpad { ptr, i32 }
          cleanup
  %5253 = extractvalue { ptr, i32 } %5252, 0
  store ptr %5253, ptr %4, align 8
  %5254 = extractvalue { ptr, i32 } %5252, 1
  store i32 %5254, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %447) #7
  br label %5334

5255:                                             ; preds = %5232, %5225
  %5256 = landingpad { ptr, i32 }
          cleanup
  %5257 = extractvalue { ptr, i32 } %5256, 0
  store ptr %5257, ptr %4, align 8
  %5258 = extractvalue { ptr, i32 } %5256, 1
  store i32 %5258, ptr %5, align 4
  br label %5333

5259:                                             ; preds = %5297, %5282, %5268, %5263, %5242, %5235
  %5260 = landingpad { ptr, i32 }
          cleanup
  %5261 = extractvalue { ptr, i32 } %5260, 0
  store ptr %5261, ptr %4, align 8
  %5262 = extractvalue { ptr, i32 } %5260, 1
  store i32 %5262, ptr %5, align 4
  br label %5332

5263:                                             ; preds = %5246, %5241
  %5264 = load double, ptr %448, align 8, !tbaa !9
  %5265 = fpext double %5264 to x86_fp80
  %5266 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5265)
          to label %5267 unwind label %5259

5267:                                             ; preds = %5263
  br i1 %5266, label %5278, label %5268

5268:                                             ; preds = %5267
  %5269 = load double, ptr %448, align 8, !tbaa !9
  %5270 = fpext double %5269 to x86_fp80
  %5271 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5270)
          to label %5272 unwind label %5259

5272:                                             ; preds = %5268
  br i1 %5271, label %5273, label %5278

5273:                                             ; preds = %5272
  %5274 = load double, ptr %448, align 8, !tbaa !9
  %5275 = load double, ptr %449, align 8, !tbaa !9
  %5276 = fcmp oeq double %5274, %5275
  br i1 %5276, label %5277, label %5278

5277:                                             ; preds = %5273
  store i8 1, ptr %451, align 1, !tbaa !11
  br label %5293

5278:                                             ; preds = %5273, %5272, %5267
  %5279 = load double, ptr %450, align 8, !tbaa !9
  %5280 = fcmp olt double %5279, 0x3D06849B86A12B9B
  br i1 %5280, label %5281, label %5282

5281:                                             ; preds = %5278
  store i8 1, ptr %451, align 1, !tbaa !11
  br label %5292

5282:                                             ; preds = %5278
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef nonnull align 8 dereferenceable(32) %446)
          to label %5283 unwind label %5259

5283:                                             ; preds = %5282
  %5284 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5285 = load double, ptr %448, align 8, !tbaa !9
  %5286 = load double, ptr %449, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %452, i32 noundef %5284, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5285, double noundef %5286, double noundef 4.200000e+33)
          to label %5287 unwind label %5288

5287:                                             ; preds = %5283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #7
  br label %5292

5288:                                             ; preds = %5283
  %5289 = landingpad { ptr, i32 }
          cleanup
  %5290 = extractvalue { ptr, i32 } %5289, 0
  store ptr %5290, ptr %4, align 8
  %5291 = extractvalue { ptr, i32 } %5289, 1
  store i32 %5291, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #7
  br label %5332

5292:                                             ; preds = %5287, %5281
  br label %5293

5293:                                             ; preds = %5292, %5277
  br label %5294

5294:                                             ; preds = %5293, %5247
  %5295 = load i8, ptr %451, align 1, !tbaa !11, !range !13, !noundef !14
  %5296 = trunc i8 %5295 to i1
  br i1 %5296, label %5297, label %5306

5297:                                             ; preds = %5294
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 8 dereferenceable(32) %446)
          to label %5298 unwind label %5259

5298:                                             ; preds = %5297
  %5299 = load double, ptr %448, align 8, !tbaa !9
  %5300 = load double, ptr %450, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %453, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5299, double noundef %5300, double noundef 4.200000e+33)
          to label %5301 unwind label %5302

5301:                                             ; preds = %5298
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #7
  br label %5306

5302:                                             ; preds = %5298
  %5303 = landingpad { ptr, i32 }
          cleanup
  %5304 = extractvalue { ptr, i32 } %5303, 0
  store ptr %5304, ptr %4, align 8
  %5305 = extractvalue { ptr, i32 } %5303, 1
  store i32 %5305, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #7
  br label %5332

5306:                                             ; preds = %5301, %5294
  call void @llvm.lifetime.end.p0(i64 1, ptr %451) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %446) #7
  %5307 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5308 = add nsw i32 %5307, 1
  store i32 %5308, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %454) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %455) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %455)
          to label %5309 unwind label %5335

5309:                                             ; preds = %5306
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %455) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %456) #7
  %5310 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #7
  store double %5310, ptr %456, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %457) #7
  %5311 = call double @llvm.round.f64(double -4.200000e+33)
  store double %5311, ptr %457, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %458) #7
  %5312 = load double, ptr %456, align 8, !tbaa !9
  %5313 = load double, ptr %457, align 8, !tbaa !9
  %5314 = fsub double %5312, %5313
  %5315 = invoke noundef double @_ZSt3absd(double noundef %5314)
          to label %5316 unwind label %5339

5316:                                             ; preds = %5309
  %5317 = load double, ptr %457, align 8, !tbaa !9
  %5318 = invoke noundef double @_ZSt3absd(double noundef %5317)
          to label %5319 unwind label %5339

5319:                                             ; preds = %5316
  %5320 = fadd double 1.000000e+00, %5318
  %5321 = fdiv double %5315, %5320
  store double %5321, ptr %458, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %459) #7
  store i8 0, ptr %459, align 1, !tbaa !11
  %5322 = load double, ptr %456, align 8, !tbaa !9
  %5323 = fpext double %5322 to x86_fp80
  %5324 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5323)
          to label %5325 unwind label %5343

5325:                                             ; preds = %5319
  br i1 %5324, label %5326, label %5347

5326:                                             ; preds = %5325
  %5327 = load double, ptr %457, align 8, !tbaa !9
  %5328 = fpext double %5327 to x86_fp80
  %5329 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5328)
          to label %5330 unwind label %5343

5330:                                             ; preds = %5326
  br i1 %5329, label %5331, label %5347

5331:                                             ; preds = %5330
  store i8 1, ptr %459, align 1, !tbaa !11
  br label %5378

5332:                                             ; preds = %5302, %5288, %5259
  call void @llvm.lifetime.end.p0(i64 1, ptr %451) #7
  br label %5333

5333:                                             ; preds = %5332, %5255
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #7
  br label %5334

5334:                                             ; preds = %5333, %5251
  call void @llvm.lifetime.end.p0(i64 32, ptr %446) #7
  br label %5774

5335:                                             ; preds = %5306
  %5336 = landingpad { ptr, i32 }
          cleanup
  %5337 = extractvalue { ptr, i32 } %5336, 0
  store ptr %5337, ptr %4, align 8
  %5338 = extractvalue { ptr, i32 } %5336, 1
  store i32 %5338, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %455) #7
  br label %5421

5339:                                             ; preds = %5316, %5309
  %5340 = landingpad { ptr, i32 }
          cleanup
  %5341 = extractvalue { ptr, i32 } %5340, 0
  store ptr %5341, ptr %4, align 8
  %5342 = extractvalue { ptr, i32 } %5340, 1
  store i32 %5342, ptr %5, align 4
  br label %5420

5343:                                             ; preds = %5381, %5366, %5352, %5347, %5326, %5319
  %5344 = landingpad { ptr, i32 }
          cleanup
  %5345 = extractvalue { ptr, i32 } %5344, 0
  store ptr %5345, ptr %4, align 8
  %5346 = extractvalue { ptr, i32 } %5344, 1
  store i32 %5346, ptr %5, align 4
  br label %5419

5347:                                             ; preds = %5330, %5325
  %5348 = load double, ptr %456, align 8, !tbaa !9
  %5349 = fpext double %5348 to x86_fp80
  %5350 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5349)
          to label %5351 unwind label %5343

5351:                                             ; preds = %5347
  br i1 %5350, label %5362, label %5352

5352:                                             ; preds = %5351
  %5353 = load double, ptr %456, align 8, !tbaa !9
  %5354 = fpext double %5353 to x86_fp80
  %5355 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5354)
          to label %5356 unwind label %5343

5356:                                             ; preds = %5352
  br i1 %5355, label %5357, label %5362

5357:                                             ; preds = %5356
  %5358 = load double, ptr %456, align 8, !tbaa !9
  %5359 = load double, ptr %457, align 8, !tbaa !9
  %5360 = fcmp oeq double %5358, %5359
  br i1 %5360, label %5361, label %5362

5361:                                             ; preds = %5357
  store i8 1, ptr %459, align 1, !tbaa !11
  br label %5377

5362:                                             ; preds = %5357, %5356, %5351
  %5363 = load double, ptr %458, align 8, !tbaa !9
  %5364 = fcmp olt double %5363, 0x3D06849B86A12B9B
  br i1 %5364, label %5365, label %5366

5365:                                             ; preds = %5362
  store i8 1, ptr %459, align 1, !tbaa !11
  br label %5376

5366:                                             ; preds = %5362
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(32) %454)
          to label %5367 unwind label %5343

5367:                                             ; preds = %5366
  %5368 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5369 = load double, ptr %456, align 8, !tbaa !9
  %5370 = load double, ptr %457, align 8, !tbaa !9
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %460, i32 noundef %5368, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5369, double noundef %5370, double noundef -4.200000e+33)
          to label %5371 unwind label %5372

5371:                                             ; preds = %5367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #7
  br label %5376

5372:                                             ; preds = %5367
  %5373 = landingpad { ptr, i32 }
          cleanup
  %5374 = extractvalue { ptr, i32 } %5373, 0
  store ptr %5374, ptr %4, align 8
  %5375 = extractvalue { ptr, i32 } %5373, 1
  store i32 %5375, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #7
  br label %5419

5376:                                             ; preds = %5371, %5365
  br label %5377

5377:                                             ; preds = %5376, %5361
  br label %5378

5378:                                             ; preds = %5377, %5331
  %5379 = load i8, ptr %459, align 1, !tbaa !11, !range !13, !noundef !14
  %5380 = trunc i8 %5379 to i1
  br i1 %5380, label %5381, label %5390

5381:                                             ; preds = %5378
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %461, ptr noundef nonnull align 8 dereferenceable(32) %454)
          to label %5382 unwind label %5343

5382:                                             ; preds = %5381
  %5383 = load double, ptr %456, align 8, !tbaa !9
  %5384 = load double, ptr %458, align 8, !tbaa !9
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %461, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %5383, double noundef %5384, double noundef -4.200000e+33)
          to label %5385 unwind label %5386

5385:                                             ; preds = %5382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #7
  br label %5390

5386:                                             ; preds = %5382
  %5387 = landingpad { ptr, i32 }
          cleanup
  %5388 = extractvalue { ptr, i32 } %5387, 0
  store ptr %5388, ptr %4, align 8
  %5389 = extractvalue { ptr, i32 } %5387, 1
  store i32 %5389, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #7
  br label %5419

5390:                                             ; preds = %5385, %5378
  call void @llvm.lifetime.end.p0(i64 1, ptr %459) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %458) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %456) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %454) #7
  %5391 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5392 = add nsw i32 %5391, 1
  store i32 %5392, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %462) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %463) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %463)
          to label %5393 unwind label %5422

5393:                                             ; preds = %5390
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %463) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %464) #7
  %5394 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %5395 = call noundef float @_ZN4gcem5roundIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %5394) #7
  store float %5395, ptr %464, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %465) #7
  %5396 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %5397 = invoke noundef float @_ZSt5roundf(float noundef %5396)
          to label %5398 unwind label %5426

5398:                                             ; preds = %5393
  store float %5397, ptr %465, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %466) #7
  %5399 = load float, ptr %464, align 4, !tbaa !15
  %5400 = load float, ptr %465, align 4, !tbaa !15
  %5401 = fsub float %5399, %5400
  %5402 = invoke noundef float @_ZSt3absf(float noundef %5401)
          to label %5403 unwind label %5430

5403:                                             ; preds = %5398
  %5404 = load float, ptr %465, align 4, !tbaa !15
  %5405 = invoke noundef float @_ZSt3absf(float noundef %5404)
          to label %5406 unwind label %5430

5406:                                             ; preds = %5403
  %5407 = fadd float 1.000000e+00, %5405
  %5408 = fdiv float %5402, %5407
  store float %5408, ptr %466, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %467) #7
  store i8 0, ptr %467, align 1, !tbaa !11
  %5409 = load float, ptr %464, align 4, !tbaa !15
  %5410 = fpext float %5409 to x86_fp80
  %5411 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5410)
          to label %5412 unwind label %5434

5412:                                             ; preds = %5406
  br i1 %5411, label %5413, label %5438

5413:                                             ; preds = %5412
  %5414 = load float, ptr %465, align 4, !tbaa !15
  %5415 = fpext float %5414 to x86_fp80
  %5416 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5415)
          to label %5417 unwind label %5434

5417:                                             ; preds = %5413
  br i1 %5416, label %5418, label %5438

5418:                                             ; preds = %5417
  store i8 1, ptr %467, align 1, !tbaa !11
  br label %5471

5419:                                             ; preds = %5386, %5372, %5343
  call void @llvm.lifetime.end.p0(i64 1, ptr %459) #7
  br label %5420

5420:                                             ; preds = %5419, %5339
  call void @llvm.lifetime.end.p0(i64 8, ptr %458) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %456) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #7
  br label %5421

5421:                                             ; preds = %5420, %5335
  call void @llvm.lifetime.end.p0(i64 32, ptr %454) #7
  br label %5774

5422:                                             ; preds = %5390
  %5423 = landingpad { ptr, i32 }
          cleanup
  %5424 = extractvalue { ptr, i32 } %5423, 0
  store ptr %5424, ptr %4, align 8
  %5425 = extractvalue { ptr, i32 } %5423, 1
  store i32 %5425, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %463) #7
  br label %5516

5426:                                             ; preds = %5393
  %5427 = landingpad { ptr, i32 }
          cleanup
  %5428 = extractvalue { ptr, i32 } %5427, 0
  store ptr %5428, ptr %4, align 8
  %5429 = extractvalue { ptr, i32 } %5427, 1
  store i32 %5429, ptr %5, align 4
  br label %5515

5430:                                             ; preds = %5403, %5398
  %5431 = landingpad { ptr, i32 }
          cleanup
  %5432 = extractvalue { ptr, i32 } %5431, 0
  store ptr %5432, ptr %4, align 8
  %5433 = extractvalue { ptr, i32 } %5431, 1
  store i32 %5433, ptr %5, align 4
  br label %5514

5434:                                             ; preds = %5474, %5458, %5443, %5438, %5413, %5406
  %5435 = landingpad { ptr, i32 }
          cleanup
  %5436 = extractvalue { ptr, i32 } %5435, 0
  store ptr %5436, ptr %4, align 8
  %5437 = extractvalue { ptr, i32 } %5435, 1
  store i32 %5437, ptr %5, align 4
  br label %5513

5438:                                             ; preds = %5417, %5412
  %5439 = load float, ptr %464, align 4, !tbaa !15
  %5440 = fpext float %5439 to x86_fp80
  %5441 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5440)
          to label %5442 unwind label %5434

5442:                                             ; preds = %5438
  br i1 %5441, label %5453, label %5443

5443:                                             ; preds = %5442
  %5444 = load float, ptr %464, align 4, !tbaa !15
  %5445 = fpext float %5444 to x86_fp80
  %5446 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5445)
          to label %5447 unwind label %5434

5447:                                             ; preds = %5443
  br i1 %5446, label %5448, label %5453

5448:                                             ; preds = %5447
  %5449 = load float, ptr %464, align 4, !tbaa !15
  %5450 = load float, ptr %465, align 4, !tbaa !15
  %5451 = fcmp oeq float %5449, %5450
  br i1 %5451, label %5452, label %5453

5452:                                             ; preds = %5448
  store i8 1, ptr %467, align 1, !tbaa !11
  br label %5470

5453:                                             ; preds = %5448, %5447, %5442
  %5454 = load float, ptr %466, align 4, !tbaa !15
  %5455 = fpext float %5454 to double
  %5456 = fcmp olt double %5455, 0x3D06849B86A12B9B
  br i1 %5456, label %5457, label %5458

5457:                                             ; preds = %5453
  store i8 1, ptr %467, align 1, !tbaa !11
  br label %5469

5458:                                             ; preds = %5453
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef nonnull align 8 dereferenceable(32) %462)
          to label %5459 unwind label %5434

5459:                                             ; preds = %5458
  %5460 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5461 = load float, ptr %464, align 4, !tbaa !15
  %5462 = load float, ptr %465, align 4, !tbaa !15
  %5463 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %468, i32 noundef %5460, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %5461, float noundef %5462, float noundef %5463)
          to label %5464 unwind label %5465

5464:                                             ; preds = %5459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #7
  br label %5469

5465:                                             ; preds = %5459
  %5466 = landingpad { ptr, i32 }
          cleanup
  %5467 = extractvalue { ptr, i32 } %5466, 0
  store ptr %5467, ptr %4, align 8
  %5468 = extractvalue { ptr, i32 } %5466, 1
  store i32 %5468, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #7
  br label %5513

5469:                                             ; preds = %5464, %5457
  br label %5470

5470:                                             ; preds = %5469, %5452
  br label %5471

5471:                                             ; preds = %5470, %5418
  %5472 = load i8, ptr %467, align 1, !tbaa !11, !range !13, !noundef !14
  %5473 = trunc i8 %5472 to i1
  br i1 %5473, label %5474, label %5484

5474:                                             ; preds = %5471
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %462)
          to label %5475 unwind label %5434

5475:                                             ; preds = %5474
  %5476 = load float, ptr %464, align 4, !tbaa !15
  %5477 = load float, ptr %466, align 4, !tbaa !15
  %5478 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %469, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %5476, float noundef %5477, float noundef %5478)
          to label %5479 unwind label %5480

5479:                                             ; preds = %5475
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %469) #7
  br label %5484

5480:                                             ; preds = %5475
  %5481 = landingpad { ptr, i32 }
          cleanup
  %5482 = extractvalue { ptr, i32 } %5481, 0
  store ptr %5482, ptr %4, align 8
  %5483 = extractvalue { ptr, i32 } %5481, 1
  store i32 %5483, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %469) #7
  br label %5513

5484:                                             ; preds = %5479, %5471
  call void @llvm.lifetime.end.p0(i64 1, ptr %467) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %465) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %464) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %462) #7
  %5485 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5486 = add nsw i32 %5485, 1
  store i32 %5486, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %470) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %471) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %471)
          to label %5487 unwind label %5517

5487:                                             ; preds = %5484
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %471) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %472) #7
  %5488 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %5489 = fneg x86_fp80 %5488
  %5490 = call noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %5489) #7
  store x86_fp80 %5490, ptr %472, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %473) #7
  %5491 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %5492 = fneg x86_fp80 %5491
  %5493 = invoke noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef %5492)
          to label %5494 unwind label %5521

5494:                                             ; preds = %5487
  store x86_fp80 %5493, ptr %473, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %474) #7
  %5495 = load x86_fp80, ptr %472, align 16, !tbaa !17
  %5496 = load x86_fp80, ptr %473, align 16, !tbaa !17
  %5497 = fsub x86_fp80 %5495, %5496
  %5498 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %5497)
          to label %5499 unwind label %5525

5499:                                             ; preds = %5494
  %5500 = load x86_fp80, ptr %473, align 16, !tbaa !17
  %5501 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %5500)
          to label %5502 unwind label %5525

5502:                                             ; preds = %5499
  %5503 = fadd x86_fp80 0xK3FFF8000000000000000, %5501
  %5504 = fdiv x86_fp80 %5498, %5503
  store x86_fp80 %5504, ptr %474, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %475) #7
  store i8 0, ptr %475, align 1, !tbaa !11
  %5505 = load x86_fp80, ptr %472, align 16, !tbaa !17
  %5506 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5505)
          to label %5507 unwind label %5529

5507:                                             ; preds = %5502
  br i1 %5506, label %5508, label %5533

5508:                                             ; preds = %5507
  %5509 = load x86_fp80, ptr %473, align 16, !tbaa !17
  %5510 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5509)
          to label %5511 unwind label %5529

5511:                                             ; preds = %5508
  br i1 %5510, label %5512, label %5533

5512:                                             ; preds = %5511
  store i8 1, ptr %475, align 1, !tbaa !11
  br label %5564

5513:                                             ; preds = %5480, %5465, %5434
  call void @llvm.lifetime.end.p0(i64 1, ptr %467) #7
  br label %5514

5514:                                             ; preds = %5513, %5430
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #7
  br label %5515

5515:                                             ; preds = %5514, %5426
  call void @llvm.lifetime.end.p0(i64 4, ptr %465) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %464) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #7
  br label %5516

5516:                                             ; preds = %5515, %5422
  call void @llvm.lifetime.end.p0(i64 32, ptr %462) #7
  br label %5774

5517:                                             ; preds = %5484
  %5518 = landingpad { ptr, i32 }
          cleanup
  %5519 = extractvalue { ptr, i32 } %5518, 0
  store ptr %5519, ptr %4, align 8
  %5520 = extractvalue { ptr, i32 } %5518, 1
  store i32 %5520, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %471) #7
  br label %5608

5521:                                             ; preds = %5487
  %5522 = landingpad { ptr, i32 }
          cleanup
  %5523 = extractvalue { ptr, i32 } %5522, 0
  store ptr %5523, ptr %4, align 8
  %5524 = extractvalue { ptr, i32 } %5522, 1
  store i32 %5524, ptr %5, align 4
  br label %5607

5525:                                             ; preds = %5499, %5494
  %5526 = landingpad { ptr, i32 }
          cleanup
  %5527 = extractvalue { ptr, i32 } %5526, 0
  store ptr %5527, ptr %4, align 8
  %5528 = extractvalue { ptr, i32 } %5526, 1
  store i32 %5528, ptr %5, align 4
  br label %5606

5529:                                             ; preds = %5567, %5550, %5537, %5533, %5508, %5502
  %5530 = landingpad { ptr, i32 }
          cleanup
  %5531 = extractvalue { ptr, i32 } %5530, 0
  store ptr %5531, ptr %4, align 8
  %5532 = extractvalue { ptr, i32 } %5530, 1
  store i32 %5532, ptr %5, align 4
  br label %5605

5533:                                             ; preds = %5511, %5507
  %5534 = load x86_fp80, ptr %472, align 16, !tbaa !17
  %5535 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5534)
          to label %5536 unwind label %5529

5536:                                             ; preds = %5533
  br i1 %5535, label %5546, label %5537

5537:                                             ; preds = %5536
  %5538 = load x86_fp80, ptr %472, align 16, !tbaa !17
  %5539 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5538)
          to label %5540 unwind label %5529

5540:                                             ; preds = %5537
  br i1 %5539, label %5541, label %5546

5541:                                             ; preds = %5540
  %5542 = load x86_fp80, ptr %472, align 16, !tbaa !17
  %5543 = load x86_fp80, ptr %473, align 16, !tbaa !17
  %5544 = fcmp oeq x86_fp80 %5542, %5543
  br i1 %5544, label %5545, label %5546

5545:                                             ; preds = %5541
  store i8 1, ptr %475, align 1, !tbaa !11
  br label %5563

5546:                                             ; preds = %5541, %5540, %5536
  %5547 = load x86_fp80, ptr %474, align 16, !tbaa !17
  %5548 = fcmp olt x86_fp80 %5547, 0xK3FD0B424DC35095CD800
  br i1 %5548, label %5549, label %5550

5549:                                             ; preds = %5546
  store i8 1, ptr %475, align 1, !tbaa !11
  br label %5562

5550:                                             ; preds = %5546
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %476, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %5551 unwind label %5529

5551:                                             ; preds = %5550
  %5552 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5553 = load x86_fp80, ptr %472, align 16, !tbaa !17
  %5554 = load x86_fp80, ptr %473, align 16, !tbaa !17
  %5555 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %5556 = fneg x86_fp80 %5555
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %476, i32 noundef %5552, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %5553, x86_fp80 noundef %5554, x86_fp80 noundef %5556)
          to label %5557 unwind label %5558

5557:                                             ; preds = %5551
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %476) #7
  br label %5562

5558:                                             ; preds = %5551
  %5559 = landingpad { ptr, i32 }
          cleanup
  %5560 = extractvalue { ptr, i32 } %5559, 0
  store ptr %5560, ptr %4, align 8
  %5561 = extractvalue { ptr, i32 } %5559, 1
  store i32 %5561, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %476) #7
  br label %5605

5562:                                             ; preds = %5557, %5549
  br label %5563

5563:                                             ; preds = %5562, %5545
  br label %5564

5564:                                             ; preds = %5563, %5512
  %5565 = load i8, ptr %475, align 1, !tbaa !11, !range !13, !noundef !14
  %5566 = trunc i8 %5565 to i1
  br i1 %5566, label %5567, label %5578

5567:                                             ; preds = %5564
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %477, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %5568 unwind label %5529

5568:                                             ; preds = %5567
  %5569 = load x86_fp80, ptr %472, align 16, !tbaa !17
  %5570 = load x86_fp80, ptr %474, align 16, !tbaa !17
  %5571 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %5572 = fneg x86_fp80 %5571
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %477, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %5569, x86_fp80 noundef %5570, x86_fp80 noundef %5572)
          to label %5573 unwind label %5574

5573:                                             ; preds = %5568
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %477) #7
  br label %5578

5574:                                             ; preds = %5568
  %5575 = landingpad { ptr, i32 }
          cleanup
  %5576 = extractvalue { ptr, i32 } %5575, 0
  store ptr %5576, ptr %4, align 8
  %5577 = extractvalue { ptr, i32 } %5575, 1
  store i32 %5577, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %477) #7
  br label %5605

5578:                                             ; preds = %5573, %5564
  call void @llvm.lifetime.end.p0(i64 1, ptr %475) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %474) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %473) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %472) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %470) #7
  %5579 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5580 = add nsw i32 %5579, 1
  store i32 %5580, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %478) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %479) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %479)
          to label %5581 unwind label %5609

5581:                                             ; preds = %5578
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %479) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %480) #7
  %5582 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %5583 = call noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %5582) #7
  store x86_fp80 %5583, ptr %480, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %481) #7
  %5584 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %5585 = invoke noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef %5584)
          to label %5586 unwind label %5613

5586:                                             ; preds = %5581
  store x86_fp80 %5585, ptr %481, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %482) #7
  %5587 = load x86_fp80, ptr %480, align 16, !tbaa !17
  %5588 = load x86_fp80, ptr %481, align 16, !tbaa !17
  %5589 = fsub x86_fp80 %5587, %5588
  %5590 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %5589)
          to label %5591 unwind label %5617

5591:                                             ; preds = %5586
  %5592 = load x86_fp80, ptr %481, align 16, !tbaa !17
  %5593 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %5592)
          to label %5594 unwind label %5617

5594:                                             ; preds = %5591
  %5595 = fadd x86_fp80 0xK3FFF8000000000000000, %5593
  %5596 = fdiv x86_fp80 %5590, %5595
  store x86_fp80 %5596, ptr %482, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %483) #7
  store i8 0, ptr %483, align 1, !tbaa !11
  %5597 = load x86_fp80, ptr %480, align 16, !tbaa !17
  %5598 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5597)
          to label %5599 unwind label %5621

5599:                                             ; preds = %5594
  br i1 %5598, label %5600, label %5625

5600:                                             ; preds = %5599
  %5601 = load x86_fp80, ptr %481, align 16, !tbaa !17
  %5602 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5601)
          to label %5603 unwind label %5621

5603:                                             ; preds = %5600
  br i1 %5602, label %5604, label %5625

5604:                                             ; preds = %5603
  store i8 1, ptr %483, align 1, !tbaa !11
  br label %5655

5605:                                             ; preds = %5574, %5558, %5529
  call void @llvm.lifetime.end.p0(i64 1, ptr %475) #7
  br label %5606

5606:                                             ; preds = %5605, %5525
  call void @llvm.lifetime.end.p0(i64 16, ptr %474) #7
  br label %5607

5607:                                             ; preds = %5606, %5521
  call void @llvm.lifetime.end.p0(i64 16, ptr %473) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %472) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #7
  br label %5608

5608:                                             ; preds = %5607, %5517
  call void @llvm.lifetime.end.p0(i64 32, ptr %470) #7
  br label %5774

5609:                                             ; preds = %5578
  %5610 = landingpad { ptr, i32 }
          cleanup
  %5611 = extractvalue { ptr, i32 } %5610, 0
  store ptr %5611, ptr %4, align 8
  %5612 = extractvalue { ptr, i32 } %5610, 1
  store i32 %5612, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %479) #7
  br label %5698

5613:                                             ; preds = %5581
  %5614 = landingpad { ptr, i32 }
          cleanup
  %5615 = extractvalue { ptr, i32 } %5614, 0
  store ptr %5615, ptr %4, align 8
  %5616 = extractvalue { ptr, i32 } %5614, 1
  store i32 %5616, ptr %5, align 4
  br label %5697

5617:                                             ; preds = %5591, %5586
  %5618 = landingpad { ptr, i32 }
          cleanup
  %5619 = extractvalue { ptr, i32 } %5618, 0
  store ptr %5619, ptr %4, align 8
  %5620 = extractvalue { ptr, i32 } %5618, 1
  store i32 %5620, ptr %5, align 4
  br label %5696

5621:                                             ; preds = %5658, %5642, %5629, %5625, %5600, %5594
  %5622 = landingpad { ptr, i32 }
          cleanup
  %5623 = extractvalue { ptr, i32 } %5622, 0
  store ptr %5623, ptr %4, align 8
  %5624 = extractvalue { ptr, i32 } %5622, 1
  store i32 %5624, ptr %5, align 4
  br label %5695

5625:                                             ; preds = %5603, %5599
  %5626 = load x86_fp80, ptr %480, align 16, !tbaa !17
  %5627 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5626)
          to label %5628 unwind label %5621

5628:                                             ; preds = %5625
  br i1 %5627, label %5638, label %5629

5629:                                             ; preds = %5628
  %5630 = load x86_fp80, ptr %480, align 16, !tbaa !17
  %5631 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5630)
          to label %5632 unwind label %5621

5632:                                             ; preds = %5629
  br i1 %5631, label %5633, label %5638

5633:                                             ; preds = %5632
  %5634 = load x86_fp80, ptr %480, align 16, !tbaa !17
  %5635 = load x86_fp80, ptr %481, align 16, !tbaa !17
  %5636 = fcmp oeq x86_fp80 %5634, %5635
  br i1 %5636, label %5637, label %5638

5637:                                             ; preds = %5633
  store i8 1, ptr %483, align 1, !tbaa !11
  br label %5654

5638:                                             ; preds = %5633, %5632, %5628
  %5639 = load x86_fp80, ptr %482, align 16, !tbaa !17
  %5640 = fcmp olt x86_fp80 %5639, 0xK3FD0B424DC35095CD800
  br i1 %5640, label %5641, label %5642

5641:                                             ; preds = %5638
  store i8 1, ptr %483, align 1, !tbaa !11
  br label %5653

5642:                                             ; preds = %5638
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef nonnull align 8 dereferenceable(32) %478)
          to label %5643 unwind label %5621

5643:                                             ; preds = %5642
  %5644 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5645 = load x86_fp80, ptr %480, align 16, !tbaa !17
  %5646 = load x86_fp80, ptr %481, align 16, !tbaa !17
  %5647 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %484, i32 noundef %5644, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %5645, x86_fp80 noundef %5646, x86_fp80 noundef %5647)
          to label %5648 unwind label %5649

5648:                                             ; preds = %5643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #7
  br label %5653

5649:                                             ; preds = %5643
  %5650 = landingpad { ptr, i32 }
          cleanup
  %5651 = extractvalue { ptr, i32 } %5650, 0
  store ptr %5651, ptr %4, align 8
  %5652 = extractvalue { ptr, i32 } %5650, 1
  store i32 %5652, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #7
  br label %5695

5653:                                             ; preds = %5648, %5641
  br label %5654

5654:                                             ; preds = %5653, %5637
  br label %5655

5655:                                             ; preds = %5654, %5604
  %5656 = load i8, ptr %483, align 1, !tbaa !11, !range !13, !noundef !14
  %5657 = trunc i8 %5656 to i1
  br i1 %5657, label %5658, label %5668

5658:                                             ; preds = %5655
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %485, ptr noundef nonnull align 8 dereferenceable(32) %478)
          to label %5659 unwind label %5621

5659:                                             ; preds = %5658
  %5660 = load x86_fp80, ptr %480, align 16, !tbaa !17
  %5661 = load x86_fp80, ptr %482, align 16, !tbaa !17
  %5662 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %485, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %5660, x86_fp80 noundef %5661, x86_fp80 noundef %5662)
          to label %5663 unwind label %5664

5663:                                             ; preds = %5659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %485) #7
  br label %5668

5664:                                             ; preds = %5659
  %5665 = landingpad { ptr, i32 }
          cleanup
  %5666 = extractvalue { ptr, i32 } %5665, 0
  store ptr %5666, ptr %4, align 8
  %5667 = extractvalue { ptr, i32 } %5665, 1
  store i32 %5667, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %485) #7
  br label %5695

5668:                                             ; preds = %5663, %5655
  call void @llvm.lifetime.end.p0(i64 1, ptr %483) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %482) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %481) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %480) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %478) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %478) #7
  %5669 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5670 = add nsw i32 %5669, 1
  store i32 %5670, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %486) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %487) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %487) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %486, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %487)
          to label %5671 unwind label %5699

5671:                                             ; preds = %5668
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %487) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %487) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %488) #7
  %5672 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %5673 = call noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %5672) #7
  store x86_fp80 %5673, ptr %488, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %489) #7
  %5674 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %5675 = invoke noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef %5674)
          to label %5676 unwind label %5703

5676:                                             ; preds = %5671
  store x86_fp80 %5675, ptr %489, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %490) #7
  %5677 = load x86_fp80, ptr %488, align 16, !tbaa !17
  %5678 = load x86_fp80, ptr %489, align 16, !tbaa !17
  %5679 = fsub x86_fp80 %5677, %5678
  %5680 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %5679)
          to label %5681 unwind label %5707

5681:                                             ; preds = %5676
  %5682 = load x86_fp80, ptr %489, align 16, !tbaa !17
  %5683 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %5682)
          to label %5684 unwind label %5707

5684:                                             ; preds = %5681
  %5685 = fadd x86_fp80 0xK3FFF8000000000000000, %5683
  %5686 = fdiv x86_fp80 %5680, %5685
  store x86_fp80 %5686, ptr %490, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %491) #7
  store i8 0, ptr %491, align 1, !tbaa !11
  %5687 = load x86_fp80, ptr %488, align 16, !tbaa !17
  %5688 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5687)
          to label %5689 unwind label %5711

5689:                                             ; preds = %5684
  br i1 %5688, label %5690, label %5715

5690:                                             ; preds = %5689
  %5691 = load x86_fp80, ptr %489, align 16, !tbaa !17
  %5692 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5691)
          to label %5693 unwind label %5711

5693:                                             ; preds = %5690
  br i1 %5692, label %5694, label %5715

5694:                                             ; preds = %5693
  store i8 1, ptr %491, align 1, !tbaa !11
  br label %5745

5695:                                             ; preds = %5664, %5649, %5621
  call void @llvm.lifetime.end.p0(i64 1, ptr %483) #7
  br label %5696

5696:                                             ; preds = %5695, %5617
  call void @llvm.lifetime.end.p0(i64 16, ptr %482) #7
  br label %5697

5697:                                             ; preds = %5696, %5613
  call void @llvm.lifetime.end.p0(i64 16, ptr %481) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %480) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %478) #7
  br label %5698

5698:                                             ; preds = %5697, %5609
  call void @llvm.lifetime.end.p0(i64 32, ptr %478) #7
  br label %5774

5699:                                             ; preds = %5668
  %5700 = landingpad { ptr, i32 }
          cleanup
  %5701 = extractvalue { ptr, i32 } %5700, 0
  store ptr %5701, ptr %4, align 8
  %5702 = extractvalue { ptr, i32 } %5700, 1
  store i32 %5702, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %487) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %487) #7
  br label %5764

5703:                                             ; preds = %5671
  %5704 = landingpad { ptr, i32 }
          cleanup
  %5705 = extractvalue { ptr, i32 } %5704, 0
  store ptr %5705, ptr %4, align 8
  %5706 = extractvalue { ptr, i32 } %5704, 1
  store i32 %5706, ptr %5, align 4
  br label %5763

5707:                                             ; preds = %5681, %5676
  %5708 = landingpad { ptr, i32 }
          cleanup
  %5709 = extractvalue { ptr, i32 } %5708, 0
  store ptr %5709, ptr %4, align 8
  %5710 = extractvalue { ptr, i32 } %5708, 1
  store i32 %5710, ptr %5, align 4
  br label %5762

5711:                                             ; preds = %5748, %5732, %5719, %5715, %5690, %5684
  %5712 = landingpad { ptr, i32 }
          cleanup
  %5713 = extractvalue { ptr, i32 } %5712, 0
  store ptr %5713, ptr %4, align 8
  %5714 = extractvalue { ptr, i32 } %5712, 1
  store i32 %5714, ptr %5, align 4
  br label %5761

5715:                                             ; preds = %5693, %5689
  %5716 = load x86_fp80, ptr %488, align 16, !tbaa !17
  %5717 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %5716)
          to label %5718 unwind label %5711

5718:                                             ; preds = %5715
  br i1 %5717, label %5728, label %5719

5719:                                             ; preds = %5718
  %5720 = load x86_fp80, ptr %488, align 16, !tbaa !17
  %5721 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %5720)
          to label %5722 unwind label %5711

5722:                                             ; preds = %5719
  br i1 %5721, label %5723, label %5728

5723:                                             ; preds = %5722
  %5724 = load x86_fp80, ptr %488, align 16, !tbaa !17
  %5725 = load x86_fp80, ptr %489, align 16, !tbaa !17
  %5726 = fcmp oeq x86_fp80 %5724, %5725
  br i1 %5726, label %5727, label %5728

5727:                                             ; preds = %5723
  store i8 1, ptr %491, align 1, !tbaa !11
  br label %5744

5728:                                             ; preds = %5723, %5722, %5718
  %5729 = load x86_fp80, ptr %490, align 16, !tbaa !17
  %5730 = fcmp olt x86_fp80 %5729, 0xK3FD0B424DC35095CD800
  br i1 %5730, label %5731, label %5732

5731:                                             ; preds = %5728
  store i8 1, ptr %491, align 1, !tbaa !11
  br label %5743

5732:                                             ; preds = %5728
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %492, ptr noundef nonnull align 8 dereferenceable(32) %486)
          to label %5733 unwind label %5711

5733:                                             ; preds = %5732
  %5734 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %5735 = load x86_fp80, ptr %488, align 16, !tbaa !17
  %5736 = load x86_fp80, ptr %489, align 16, !tbaa !17
  %5737 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %492, i32 noundef %5734, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %5735, x86_fp80 noundef %5736, x86_fp80 noundef %5737)
          to label %5738 unwind label %5739

5738:                                             ; preds = %5733
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %492) #7
  br label %5743

5739:                                             ; preds = %5733
  %5740 = landingpad { ptr, i32 }
          cleanup
  %5741 = extractvalue { ptr, i32 } %5740, 0
  store ptr %5741, ptr %4, align 8
  %5742 = extractvalue { ptr, i32 } %5740, 1
  store i32 %5742, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %492) #7
  br label %5761

5743:                                             ; preds = %5738, %5731
  br label %5744

5744:                                             ; preds = %5743, %5727
  br label %5745

5745:                                             ; preds = %5744, %5694
  %5746 = load i8, ptr %491, align 1, !tbaa !11, !range !13, !noundef !14
  %5747 = trunc i8 %5746 to i1
  br i1 %5747, label %5748, label %5758

5748:                                             ; preds = %5745
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %493, ptr noundef nonnull align 8 dereferenceable(32) %486)
          to label %5749 unwind label %5711

5749:                                             ; preds = %5748
  %5750 = load x86_fp80, ptr %488, align 16, !tbaa !17
  %5751 = load x86_fp80, ptr %490, align 16, !tbaa !17
  %5752 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %493, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %5750, x86_fp80 noundef %5751, x86_fp80 noundef %5752)
          to label %5753 unwind label %5754

5753:                                             ; preds = %5749
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %493) #7
  br label %5758

5754:                                             ; preds = %5749
  %5755 = landingpad { ptr, i32 }
          cleanup
  %5756 = extractvalue { ptr, i32 } %5755, 0
  store ptr %5756, ptr %4, align 8
  %5757 = extractvalue { ptr, i32 } %5755, 1
  store i32 %5757, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %493) #7
  br label %5761

5758:                                             ; preds = %5753, %5745
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %490) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %489) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %488) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %486) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %486) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %495) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %495) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %494, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %495)
          to label %5759 unwind label %5765

5759:                                             ; preds = %5758
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %494)
          to label %5760 unwind label %5769

5760:                                             ; preds = %5759
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %494) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %495) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %495) #7
  ret i32 0

5761:                                             ; preds = %5754, %5739, %5711
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #7
  br label %5762

5762:                                             ; preds = %5761, %5707
  call void @llvm.lifetime.end.p0(i64 16, ptr %490) #7
  br label %5763

5763:                                             ; preds = %5762, %5703
  call void @llvm.lifetime.end.p0(i64 16, ptr %489) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %488) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %486) #7
  br label %5764

5764:                                             ; preds = %5763, %5699
  call void @llvm.lifetime.end.p0(i64 32, ptr %486) #7
  br label %5774

5765:                                             ; preds = %5758
  %5766 = landingpad { ptr, i32 }
          cleanup
  %5767 = extractvalue { ptr, i32 } %5766, 0
  store ptr %5767, ptr %4, align 8
  %5768 = extractvalue { ptr, i32 } %5766, 1
  store i32 %5768, ptr %5, align 4
  br label %5773

5769:                                             ; preds = %5759
  %5770 = landingpad { ptr, i32 }
          cleanup
  %5771 = extractvalue { ptr, i32 } %5770, 0
  store ptr %5771, ptr %4, align 8
  %5772 = extractvalue { ptr, i32 } %5770, 1
  store i32 %5772, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %494) #7
  br label %5773

5773:                                             ; preds = %5769, %5765
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %495) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %495) #7
  br label %5774

5774:                                             ; preds = %5773, %5764, %5698, %5608, %5516, %5421, %5334, %5250, %5166, %5082, %4998, %4914, %4830, %4746, %4662, %4578, %4494, %4410, %4321, %4231, %4139, %4044, %3957, %3873, %3789, %3705, %3621, %3537, %3453, %3369, %3285, %3201, %3117, %3028, %2938, %2846, %2751, %2664, %2580, %2496, %2412, %2328, %2244, %2160, %2076, %1992, %1908, %1824, %1735, %1645, %1553, %1458, %1371, %1287, %1203, %1119, %1035, %951, %867, %783, %699, %615, %531
  %5775 = load ptr, ptr %4, align 8
  %5776 = load i32, ptr %5, align 4
  %5777 = insertvalue { ptr, i32 } poison, ptr %5775, 0
  %5778 = insertvalue { ptr, i32 } %5777, i32 %5776, 1
  resume { ptr, i32 } %5778
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.floor.f64(double) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef) #1

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5floorIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE3maxEv() #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5floorf(float noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3absf(float noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, float noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, float noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem4ceilIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4ceilf(float noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.trunc.f64(double) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5truncIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5truncf(float noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.round.f64(double) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5roundIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5roundf(float noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { inlinehint 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 #7 = { 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 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"long double", !7, i64 0}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@GCEM_TEST_NUMBER = external dso_local local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.std::__cxx11::basic_string", align 8
  %2 = alloca %"class.std::allocator", align 1
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator", align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator", align 1
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::allocator", align 1
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator", align 1
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::allocator", align 1
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::allocator", align 1
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator", align 1
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::allocator", align 1
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator", align 1
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::allocator", align 1
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::allocator", align 1
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::allocator", align 1
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::allocator", align 1
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::allocator", align 1
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::__cxx11::basic_string", align 8
  %144 = alloca %"class.std::allocator", align 1
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::allocator", align 1
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::allocator", align 1
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::allocator", align 1
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::allocator", align 1
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::allocator", align 1
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::allocator", align 1
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::allocator", align 1
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca %"class.std::allocator", align 1
  %177 = alloca %"class.std::__cxx11::basic_string", align 8
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.std::allocator", align 1
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator", align 1
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::allocator", align 1
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::allocator", align 1
  %193 = alloca %"class.std::__cxx11::basic_string", align 8
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca %"class.std::allocator", align 1
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca %"class.std::allocator", align 1
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::allocator", align 1
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::allocator", align 1
  %209 = alloca %"class.std::__cxx11::basic_string", align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::__cxx11::basic_string", align 8
  %212 = alloca %"class.std::allocator", align 1
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::__cxx11::basic_string", align 8
  %216 = alloca %"class.std::allocator", align 1
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::allocator", align 1
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::allocator", align 1
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"class.std::allocator", align 1
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::allocator", align 1
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::allocator", align 1
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca %"class.std::allocator", align 1
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::allocator", align 1
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::__cxx11::basic_string", align 8
  %248 = alloca %"class.std::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %2)
          to label %249 unwind label %263

249:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %250 unwind label %265

250:                                              ; preds = %249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #6
  %251 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %253 unwind label %268

253:                                              ; preds = %250
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  %254 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #6
  %255 = call noundef double @_ZSt3absd(double noundef %254)
  %256 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %257 = fadd double %256, 1.000000e+00
  %258 = fdiv double %255, %257
  %259 = fpext double %254 to x86_fp80
  %260 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %259)
  br i1 %260, label %261, label %272

261:                                              ; preds = %253
  %262 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %262, label %284, label %272

263:                                              ; preds = %0
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %267

265:                                              ; preds = %249
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #6
  br label %267

267:                                              ; preds = %265, %263
  %.pn = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #6
  br label %2486

268:                                              ; preds = %250
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  br label %302

270:                                              ; preds = %284, %279
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %301

272:                                              ; preds = %261, %253
  %273 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %259)
  br i1 %273, label %278, label %274

274:                                              ; preds = %272
  %275 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %259)
  %276 = fcmp oeq double %254, 0.000000e+00
  %or.cond = and i1 %276, %275
  %277 = fcmp olt double %258, 0x3D06849B86A12B9B
  %or.cond1502 = or i1 %277, %or.cond
  br i1 %or.cond1502, label %284, label %279

278:                                              ; preds = %272
  %.old = fcmp olt double %258, 0x3D06849B86A12B9B
  br i1 %.old, label %284, label %279

279:                                              ; preds = %274, %278
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %280 unwind label %270

280:                                              ; preds = %279
  %281 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %5, i32 noundef %281, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %254, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge unwind label %282

282:                                              ; preds = %280
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %301

284:                                              ; preds = %261, %274, %278
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %285 unwind label %270

285:                                              ; preds = %284
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %254, double noundef %258, double noundef 0.000000e+00)
          to label %.critedge unwind label %286

286:                                              ; preds = %285
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %301

.critedge:                                        ; preds = %285, %280
  %.sink = phi ptr [ %5, %280 ], [ %6, %285 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  %288 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %290 unwind label %303

290:                                              ; preds = %.critedge
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  %291 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #6
  %292 = fadd double %291, 0.000000e+00
  %293 = call noundef double @_ZSt3absd(double noundef %292)
  %294 = call noundef double @_ZSt3absd(double noundef -0.000000e+00)
  %295 = fadd double %294, 1.000000e+00
  %296 = fdiv double %293, %295
  %297 = fpext double %291 to x86_fp80
  %298 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %297)
  br i1 %298, label %299, label %307

299:                                              ; preds = %290
  %300 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK80000000000000000000)
  br i1 %300, label %319, label %307

301:                                              ; preds = %286, %282, %270
  %.pn1136 = phi { ptr, i32 } [ %287, %286 ], [ %271, %270 ], [ %283, %282 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %302

302:                                              ; preds = %301, %268
  %.pn1136.pn = phi { ptr, i32 } [ %.pn1136, %301 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %2486

303:                                              ; preds = %.critedge
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  br label %337

305:                                              ; preds = %319, %314
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %336

307:                                              ; preds = %299, %290
  %308 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %297)
  br i1 %308, label %313, label %309

309:                                              ; preds = %307
  %310 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %297)
  %311 = fcmp oeq double %291, 0.000000e+00
  %or.cond1322 = and i1 %311, %310
  %312 = fcmp olt double %296, 0x3D06849B86A12B9B
  %or.cond1504 = or i1 %312, %or.cond1322
  br i1 %or.cond1504, label %319, label %314

313:                                              ; preds = %307
  %.old1503 = fcmp olt double %296, 0x3D06849B86A12B9B
  br i1 %.old1503, label %319, label %314

314:                                              ; preds = %309, %313
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %315 unwind label %305

315:                                              ; preds = %314
  %316 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %9, i32 noundef %316, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %291, double noundef -0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge1324 unwind label %317

317:                                              ; preds = %315
  %318 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %336

319:                                              ; preds = %299, %309, %313
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %320 unwind label %305

320:                                              ; preds = %319
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %291, double noundef %296, double noundef -0.000000e+00)
          to label %.critedge1324 unwind label %321

321:                                              ; preds = %320
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %336

.critedge1324:                                    ; preds = %320, %315
  %.sink1627 = phi ptr [ %9, %315 ], [ %10, %320 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1627) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  %323 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %325 unwind label %338

325:                                              ; preds = %.critedge1324
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  %326 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #6
  %327 = fadd double %326, -4.000000e+00
  %328 = call noundef double @_ZSt3absd(double noundef %327)
  %329 = call noundef double @_ZSt3absd(double noundef 4.000000e+00)
  %330 = fadd double %329, 1.000000e+00
  %331 = fdiv double %328, %330
  %332 = fpext double %326 to x86_fp80
  %333 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %332)
  br i1 %333, label %334, label %342

334:                                              ; preds = %325
  %335 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK40018000000000000000)
  br i1 %335, label %354, label %342

336:                                              ; preds = %321, %317, %305
  %.pn1139 = phi { ptr, i32 } [ %322, %321 ], [ %306, %305 ], [ %318, %317 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %337

337:                                              ; preds = %336, %303
  %.pn1139.pn = phi { ptr, i32 } [ %.pn1139, %336 ], [ %304, %303 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %2486

338:                                              ; preds = %.critedge1324
  %339 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  br label %372

340:                                              ; preds = %354, %349
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %371

342:                                              ; preds = %334, %325
  %343 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %332)
  br i1 %343, label %348, label %344

344:                                              ; preds = %342
  %345 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %332)
  %346 = fcmp oeq double %326, 4.000000e+00
  %or.cond1325 = and i1 %346, %345
  %347 = fcmp olt double %331, 0x3D06849B86A12B9B
  %or.cond1506 = or i1 %347, %or.cond1325
  br i1 %or.cond1506, label %354, label %349

348:                                              ; preds = %342
  %.old1505 = fcmp olt double %331, 0x3D06849B86A12B9B
  br i1 %.old1505, label %354, label %349

349:                                              ; preds = %344, %348
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %350 unwind label %340

350:                                              ; preds = %349
  %351 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %13, i32 noundef %351, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %326, double noundef 4.000000e+00, double noundef 4.200000e+00)
          to label %.critedge1327 unwind label %352

352:                                              ; preds = %350
  %353 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %371

354:                                              ; preds = %334, %344, %348
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %355 unwind label %340

355:                                              ; preds = %354
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %326, double noundef %331, double noundef 4.200000e+00)
          to label %.critedge1327 unwind label %356

356:                                              ; preds = %355
  %357 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %371

.critedge1327:                                    ; preds = %355, %350
  %.sink1628 = phi ptr [ %13, %350 ], [ %14, %355 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1628) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  %358 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %359 = add nsw i32 %358, 1
  store i32 %359, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %360 unwind label %373

360:                                              ; preds = %.critedge1327
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  %361 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #6
  %362 = fadd double %361, -4.000000e+00
  %363 = call noundef double @_ZSt3absd(double noundef %362)
  %364 = call noundef double @_ZSt3absd(double noundef 4.000000e+00)
  %365 = fadd double %364, 1.000000e+00
  %366 = fdiv double %363, %365
  %367 = fpext double %361 to x86_fp80
  %368 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %367)
  br i1 %368, label %369, label %377

369:                                              ; preds = %360
  %370 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK40018000000000000000)
  br i1 %370, label %389, label %377

371:                                              ; preds = %356, %352, %340
  %.pn1142 = phi { ptr, i32 } [ %357, %356 ], [ %341, %340 ], [ %353, %352 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %372

372:                                              ; preds = %371, %338
  %.pn1142.pn = phi { ptr, i32 } [ %.pn1142, %371 ], [ %339, %338 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %2486

373:                                              ; preds = %.critedge1327
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  br label %407

375:                                              ; preds = %389, %384
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %406

377:                                              ; preds = %369, %360
  %378 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %367)
  br i1 %378, label %383, label %379

379:                                              ; preds = %377
  %380 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %367)
  %381 = fcmp oeq double %361, 4.000000e+00
  %or.cond1328 = and i1 %381, %380
  %382 = fcmp olt double %366, 0x3D06849B86A12B9B
  %or.cond1508 = or i1 %382, %or.cond1328
  br i1 %or.cond1508, label %389, label %384

383:                                              ; preds = %377
  %.old1507 = fcmp olt double %366, 0x3D06849B86A12B9B
  br i1 %.old1507, label %389, label %384

384:                                              ; preds = %379, %383
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %385 unwind label %375

385:                                              ; preds = %384
  %386 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %17, i32 noundef %386, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %361, double noundef 4.000000e+00, double noundef 4.500000e+00)
          to label %.critedge1330 unwind label %387

387:                                              ; preds = %385
  %388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %406

389:                                              ; preds = %369, %379, %383
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %390 unwind label %375

390:                                              ; preds = %389
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %361, double noundef %366, double noundef 4.500000e+00)
          to label %.critedge1330 unwind label %391

391:                                              ; preds = %390
  %392 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %406

.critedge1330:                                    ; preds = %390, %385
  %.sink1629 = phi ptr [ %17, %385 ], [ %18, %390 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1629) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  %393 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %395 unwind label %408

395:                                              ; preds = %.critedge1330
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  %396 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #6
  %397 = fadd double %396, -4.000000e+00
  %398 = call noundef double @_ZSt3absd(double noundef %397)
  %399 = call noundef double @_ZSt3absd(double noundef 4.000000e+00)
  %400 = fadd double %399, 1.000000e+00
  %401 = fdiv double %398, %400
  %402 = fpext double %396 to x86_fp80
  %403 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %402)
  br i1 %403, label %404, label %412

404:                                              ; preds = %395
  %405 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK40018000000000000000)
  br i1 %405, label %424, label %412

406:                                              ; preds = %391, %387, %375
  %.pn1145 = phi { ptr, i32 } [ %392, %391 ], [ %376, %375 ], [ %388, %387 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %407

407:                                              ; preds = %406, %373
  %.pn1145.pn = phi { ptr, i32 } [ %.pn1145, %406 ], [ %374, %373 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %2486

408:                                              ; preds = %.critedge1330
  %409 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  br label %442

410:                                              ; preds = %424, %419
  %411 = landingpad { ptr, i32 }
          cleanup
  br label %441

412:                                              ; preds = %404, %395
  %413 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %402)
  br i1 %413, label %418, label %414

414:                                              ; preds = %412
  %415 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %402)
  %416 = fcmp oeq double %396, 4.000000e+00
  %or.cond1331 = and i1 %416, %415
  %417 = fcmp olt double %401, 0x3D06849B86A12B9B
  %or.cond1510 = or i1 %417, %or.cond1331
  br i1 %or.cond1510, label %424, label %419

418:                                              ; preds = %412
  %.old1509 = fcmp olt double %401, 0x3D06849B86A12B9B
  br i1 %.old1509, label %424, label %419

419:                                              ; preds = %414, %418
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %420 unwind label %410

420:                                              ; preds = %419
  %421 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %21, i32 noundef %421, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %396, double noundef 4.000000e+00, double noundef 4.700000e+00)
          to label %.critedge1333 unwind label %422

422:                                              ; preds = %420
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %441

424:                                              ; preds = %404, %414, %418
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %425 unwind label %410

425:                                              ; preds = %424
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %22, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %396, double noundef %401, double noundef 4.700000e+00)
          to label %.critedge1333 unwind label %426

426:                                              ; preds = %425
  %427 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %441

.critedge1333:                                    ; preds = %425, %420
  %.sink1630 = phi ptr [ %21, %420 ], [ %22, %425 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1630) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  %428 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %430 unwind label %443

430:                                              ; preds = %.critedge1333
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  %431 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #6
  %432 = fadd double %431, -5.000000e+00
  %433 = call noundef double @_ZSt3absd(double noundef %432)
  %434 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %435 = fadd double %434, 1.000000e+00
  %436 = fdiv double %433, %435
  %437 = fpext double %431 to x86_fp80
  %438 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %437)
  br i1 %438, label %439, label %447

439:                                              ; preds = %430
  %440 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %440, label %459, label %447

441:                                              ; preds = %426, %422, %410
  %.pn1148 = phi { ptr, i32 } [ %427, %426 ], [ %411, %410 ], [ %423, %422 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %442

442:                                              ; preds = %441, %408
  %.pn1148.pn = phi { ptr, i32 } [ %.pn1148, %441 ], [ %409, %408 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %2486

443:                                              ; preds = %.critedge1333
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  br label %477

445:                                              ; preds = %459, %454
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %476

447:                                              ; preds = %439, %430
  %448 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %437)
  br i1 %448, label %453, label %449

449:                                              ; preds = %447
  %450 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %437)
  %451 = fcmp oeq double %431, 5.000000e+00
  %or.cond1334 = and i1 %451, %450
  %452 = fcmp olt double %436, 0x3D06849B86A12B9B
  %or.cond1512 = or i1 %452, %or.cond1334
  br i1 %or.cond1512, label %459, label %454

453:                                              ; preds = %447
  %.old1511 = fcmp olt double %436, 0x3D06849B86A12B9B
  br i1 %.old1511, label %459, label %454

454:                                              ; preds = %449, %453
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %455 unwind label %445

455:                                              ; preds = %454
  %456 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %25, i32 noundef %456, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %431, double noundef 5.000000e+00, double noundef 5.000000e+00)
          to label %.critedge1336 unwind label %457

457:                                              ; preds = %455
  %458 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %476

459:                                              ; preds = %439, %449, %453
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %460 unwind label %445

460:                                              ; preds = %459
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %26, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %431, double noundef %436, double noundef 5.000000e+00)
          to label %.critedge1336 unwind label %461

461:                                              ; preds = %460
  %462 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %476

.critedge1336:                                    ; preds = %460, %455
  %.sink1631 = phi ptr [ %25, %455 ], [ %26, %460 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1631) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  %463 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %465 unwind label %478

465:                                              ; preds = %.critedge1336
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  %466 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #6
  %467 = fadd double %466, 5.000000e+00
  %468 = call noundef double @_ZSt3absd(double noundef %467)
  %469 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %470 = fadd double %469, 1.000000e+00
  %471 = fdiv double %468, %470
  %472 = fpext double %466 to x86_fp80
  %473 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %472)
  br i1 %473, label %474, label %482

474:                                              ; preds = %465
  %475 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %475, label %494, label %482

476:                                              ; preds = %461, %457, %445
  %.pn1151 = phi { ptr, i32 } [ %462, %461 ], [ %446, %445 ], [ %458, %457 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %477

477:                                              ; preds = %476, %443
  %.pn1151.pn = phi { ptr, i32 } [ %.pn1151, %476 ], [ %444, %443 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %2486

478:                                              ; preds = %.critedge1336
  %479 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  br label %512

480:                                              ; preds = %494, %489
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %511

482:                                              ; preds = %474, %465
  %483 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %472)
  br i1 %483, label %488, label %484

484:                                              ; preds = %482
  %485 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %472)
  %486 = fcmp oeq double %466, -5.000000e+00
  %or.cond1337 = and i1 %486, %485
  %487 = fcmp olt double %471, 0x3D06849B86A12B9B
  %or.cond1514 = or i1 %487, %or.cond1337
  br i1 %or.cond1514, label %494, label %489

488:                                              ; preds = %482
  %.old1513 = fcmp olt double %471, 0x3D06849B86A12B9B
  br i1 %.old1513, label %494, label %489

489:                                              ; preds = %484, %488
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %490 unwind label %480

490:                                              ; preds = %489
  %491 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %29, i32 noundef %491, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %466, double noundef -5.000000e+00, double noundef -4.200000e+00)
          to label %.critedge1339 unwind label %492

492:                                              ; preds = %490
  %493 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %511

494:                                              ; preds = %474, %484, %488
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %495 unwind label %480

495:                                              ; preds = %494
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %466, double noundef %471, double noundef -4.200000e+00)
          to label %.critedge1339 unwind label %496

496:                                              ; preds = %495
  %497 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %511

.critedge1339:                                    ; preds = %495, %490
  %.sink1632 = phi ptr [ %29, %490 ], [ %30, %495 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1632) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  %498 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %499 = add nsw i32 %498, 1
  store i32 %499, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %500 unwind label %513

500:                                              ; preds = %.critedge1339
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  %501 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #6
  %502 = fadd double %501, 5.000000e+00
  %503 = call noundef double @_ZSt3absd(double noundef %502)
  %504 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %505 = fadd double %504, 1.000000e+00
  %506 = fdiv double %503, %505
  %507 = fpext double %501 to x86_fp80
  %508 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %507)
  br i1 %508, label %509, label %517

509:                                              ; preds = %500
  %510 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %510, label %529, label %517

511:                                              ; preds = %496, %492, %480
  %.pn1154 = phi { ptr, i32 } [ %497, %496 ], [ %481, %480 ], [ %493, %492 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %512

512:                                              ; preds = %511, %478
  %.pn1154.pn = phi { ptr, i32 } [ %.pn1154, %511 ], [ %479, %478 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  br label %2486

513:                                              ; preds = %.critedge1339
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  br label %547

515:                                              ; preds = %529, %524
  %516 = landingpad { ptr, i32 }
          cleanup
  br label %546

517:                                              ; preds = %509, %500
  %518 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %507)
  br i1 %518, label %523, label %519

519:                                              ; preds = %517
  %520 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %507)
  %521 = fcmp oeq double %501, -5.000000e+00
  %or.cond1340 = and i1 %521, %520
  %522 = fcmp olt double %506, 0x3D06849B86A12B9B
  %or.cond1516 = or i1 %522, %or.cond1340
  br i1 %or.cond1516, label %529, label %524

523:                                              ; preds = %517
  %.old1515 = fcmp olt double %506, 0x3D06849B86A12B9B
  br i1 %.old1515, label %529, label %524

524:                                              ; preds = %519, %523
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %525 unwind label %515

525:                                              ; preds = %524
  %526 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %33, i32 noundef %526, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %501, double noundef -5.000000e+00, double noundef -4.700000e+00)
          to label %.critedge1342 unwind label %527

527:                                              ; preds = %525
  %528 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %546

529:                                              ; preds = %509, %519, %523
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %530 unwind label %515

530:                                              ; preds = %529
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %34, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %501, double noundef %506, double noundef -4.700000e+00)
          to label %.critedge1342 unwind label %531

531:                                              ; preds = %530
  %532 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %546

.critedge1342:                                    ; preds = %530, %525
  %.sink1633 = phi ptr [ %33, %525 ], [ %34, %530 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1633) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  %533 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %534 = add nsw i32 %533, 1
  store i32 %534, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %535 unwind label %548

535:                                              ; preds = %.critedge1342
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  %536 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #6
  %537 = fadd double %536, 5.000000e+00
  %538 = call noundef double @_ZSt3absd(double noundef %537)
  %539 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %540 = fadd double %539, 1.000000e+00
  %541 = fdiv double %538, %540
  %542 = fpext double %536 to x86_fp80
  %543 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %542)
  br i1 %543, label %544, label %552

544:                                              ; preds = %535
  %545 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %545, label %564, label %552

546:                                              ; preds = %531, %527, %515
  %.pn1157 = phi { ptr, i32 } [ %532, %531 ], [ %516, %515 ], [ %528, %527 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %547

547:                                              ; preds = %546, %513
  %.pn1157.pn = phi { ptr, i32 } [ %.pn1157, %546 ], [ %514, %513 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br label %2486

548:                                              ; preds = %.critedge1342
  %549 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  br label %582

550:                                              ; preds = %564, %559
  %551 = landingpad { ptr, i32 }
          cleanup
  br label %581

552:                                              ; preds = %544, %535
  %553 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %542)
  br i1 %553, label %558, label %554

554:                                              ; preds = %552
  %555 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %542)
  %556 = fcmp oeq double %536, -5.000000e+00
  %or.cond1343 = and i1 %556, %555
  %557 = fcmp olt double %541, 0x3D06849B86A12B9B
  %or.cond1518 = or i1 %557, %or.cond1343
  br i1 %or.cond1518, label %564, label %559

558:                                              ; preds = %552
  %.old1517 = fcmp olt double %541, 0x3D06849B86A12B9B
  br i1 %.old1517, label %564, label %559

559:                                              ; preds = %554, %558
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %560 unwind label %550

560:                                              ; preds = %559
  %561 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %37, i32 noundef %561, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %536, double noundef -5.000000e+00, double noundef -5.000000e+00)
          to label %.critedge1345 unwind label %562

562:                                              ; preds = %560
  %563 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %581

564:                                              ; preds = %544, %554, %558
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %565 unwind label %550

565:                                              ; preds = %564
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %536, double noundef %541, double noundef -5.000000e+00)
          to label %.critedge1345 unwind label %566

566:                                              ; preds = %565
  %567 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %581

.critedge1345:                                    ; preds = %565, %560
  %.sink1634 = phi ptr [ %37, %560 ], [ %38, %565 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1634) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  %568 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %570 unwind label %583

570:                                              ; preds = %.critedge1345
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  %571 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #6
  %572 = fadd double %571, -4.200000e+33
  %573 = call noundef double @_ZSt3absd(double noundef %572)
  %574 = call noundef double @_ZSt3absd(double noundef 4.200000e+33)
  %575 = fadd double %574, 1.000000e+00
  %576 = fdiv double %573, %575
  %577 = fpext double %571 to x86_fp80
  %578 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %577)
  br i1 %578, label %579, label %587

579:                                              ; preds = %570
  %580 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK406ECF1373ECB903F000)
  br i1 %580, label %599, label %587

581:                                              ; preds = %566, %562, %550
  %.pn1160 = phi { ptr, i32 } [ %567, %566 ], [ %551, %550 ], [ %563, %562 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %582

582:                                              ; preds = %581, %548
  %.pn1160.pn = phi { ptr, i32 } [ %.pn1160, %581 ], [ %549, %548 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  br label %2486

583:                                              ; preds = %.critedge1345
  %584 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  br label %617

585:                                              ; preds = %599, %594
  %586 = landingpad { ptr, i32 }
          cleanup
  br label %616

587:                                              ; preds = %579, %570
  %588 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %577)
  br i1 %588, label %593, label %589

589:                                              ; preds = %587
  %590 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %577)
  %591 = fcmp oeq double %571, 4.200000e+33
  %or.cond1346 = and i1 %591, %590
  %592 = fcmp olt double %576, 0x3D06849B86A12B9B
  %or.cond1520 = or i1 %592, %or.cond1346
  br i1 %or.cond1520, label %599, label %594

593:                                              ; preds = %587
  %.old1519 = fcmp olt double %576, 0x3D06849B86A12B9B
  br i1 %.old1519, label %599, label %594

594:                                              ; preds = %589, %593
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %595 unwind label %585

595:                                              ; preds = %594
  %596 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %41, i32 noundef %596, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %571, double noundef 4.200000e+33, double noundef 4.200000e+33)
          to label %.critedge1348 unwind label %597

597:                                              ; preds = %595
  %598 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %616

599:                                              ; preds = %579, %589, %593
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %600 unwind label %585

600:                                              ; preds = %599
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %42, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %571, double noundef %576, double noundef 4.200000e+33)
          to label %.critedge1348 unwind label %601

601:                                              ; preds = %600
  %602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %616

.critedge1348:                                    ; preds = %600, %595
  %.sink1635 = phi ptr [ %41, %595 ], [ %42, %600 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1635) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  %603 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %604 = add nsw i32 %603, 1
  store i32 %604, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %605 unwind label %618

605:                                              ; preds = %.critedge1348
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  %606 = call noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #6
  %607 = fadd double %606, 4.200000e+33
  %608 = call noundef double @_ZSt3absd(double noundef %607)
  %609 = call noundef double @_ZSt3absd(double noundef -4.200000e+33)
  %610 = fadd double %609, 1.000000e+00
  %611 = fdiv double %608, %610
  %612 = fpext double %606 to x86_fp80
  %613 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %612)
  br i1 %613, label %614, label %622

614:                                              ; preds = %605
  %615 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC06ECF1373ECB903F000)
  br i1 %615, label %634, label %622

616:                                              ; preds = %601, %597, %585
  %.pn1163 = phi { ptr, i32 } [ %602, %601 ], [ %586, %585 ], [ %598, %597 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %617

617:                                              ; preds = %616, %583
  %.pn1163.pn = phi { ptr, i32 } [ %.pn1163, %616 ], [ %584, %583 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  br label %2486

618:                                              ; preds = %.critedge1348
  %619 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  br label %656

620:                                              ; preds = %634, %629
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %655

622:                                              ; preds = %614, %605
  %623 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %612)
  br i1 %623, label %628, label %624

624:                                              ; preds = %622
  %625 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %612)
  %626 = fcmp oeq double %606, -4.200000e+33
  %or.cond1349 = and i1 %626, %625
  %627 = fcmp olt double %611, 0x3D06849B86A12B9B
  %or.cond1522 = or i1 %627, %or.cond1349
  br i1 %or.cond1522, label %634, label %629

628:                                              ; preds = %622
  %.old1521 = fcmp olt double %611, 0x3D06849B86A12B9B
  br i1 %.old1521, label %634, label %629

629:                                              ; preds = %624, %628
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %630 unwind label %620

630:                                              ; preds = %629
  %631 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %45, i32 noundef %631, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %606, double noundef -4.200000e+33, double noundef -4.200000e+33)
          to label %.critedge1351 unwind label %632

632:                                              ; preds = %630
  %633 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %655

634:                                              ; preds = %614, %624, %628
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %635 unwind label %620

635:                                              ; preds = %634
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %46, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %606, double noundef %611, double noundef -4.200000e+33)
          to label %.critedge1351 unwind label %636

636:                                              ; preds = %635
  %637 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %655

.critedge1351:                                    ; preds = %635, %630
  %.sink1636 = phi ptr [ %45, %630 ], [ %46, %635 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1636) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  %638 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %639 = add nsw i32 %638, 1
  store i32 %639, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %640 unwind label %657

640:                                              ; preds = %.critedge1351
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  %641 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %642 = call noundef float @_ZN4gcem5floorIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %641) #6
  %643 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %644 = call noundef float @_ZSt5floorf(float noundef %643)
  %645 = fsub float %642, %644
  %646 = call noundef float @_ZSt3absf(float noundef %645)
  %647 = call noundef float @_ZSt3absf(float noundef %644)
  %648 = fadd float %647, 1.000000e+00
  %649 = fdiv float %646, %648
  %650 = fpext float %642 to x86_fp80
  %651 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %650)
  br i1 %651, label %652, label %661

652:                                              ; preds = %640
  %653 = fpext float %644 to x86_fp80
  %654 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %653)
  br i1 %654, label %675, label %661

655:                                              ; preds = %636, %632, %620
  %.pn1166 = phi { ptr, i32 } [ %637, %636 ], [ %621, %620 ], [ %633, %632 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %656

656:                                              ; preds = %655, %618
  %.pn1166.pn = phi { ptr, i32 } [ %.pn1166, %655 ], [ %619, %618 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  br label %2486

657:                                              ; preds = %.critedge1351
  %658 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  br label %698

659:                                              ; preds = %675, %669
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %697

661:                                              ; preds = %652, %640
  %662 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %650)
  br i1 %662, label %668, label %663

663:                                              ; preds = %661
  %664 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %650)
  %665 = fcmp oeq float %642, %644
  %or.cond1352 = and i1 %665, %664
  %666 = fpext float %649 to double
  %667 = fcmp olt double %666, 0x3D06849B86A12B9B
  %or.cond1525 = or i1 %667, %or.cond1352
  br i1 %or.cond1525, label %675, label %669

668:                                              ; preds = %661
  %.old1523 = fpext float %649 to double
  %.old1524 = fcmp olt double %.old1523, 0x3D06849B86A12B9B
  br i1 %.old1524, label %675, label %669

669:                                              ; preds = %663, %668
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %670 unwind label %659

670:                                              ; preds = %669
  %671 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %672 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %49, i32 noundef %671, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %642, float noundef %644, float noundef %672)
          to label %.critedge1354 unwind label %673

673:                                              ; preds = %670
  %674 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %697

675:                                              ; preds = %652, %663, %668
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %676 unwind label %659

676:                                              ; preds = %675
  %677 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %50, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %642, float noundef %649, float noundef %677)
          to label %.critedge1354 unwind label %678

678:                                              ; preds = %676
  %679 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %697

.critedge1354:                                    ; preds = %676, %670
  %.sink1637 = phi ptr [ %49, %670 ], [ %50, %676 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1637) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  %680 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %682 unwind label %699

682:                                              ; preds = %.critedge1354
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  %683 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %684 = fneg x86_fp80 %683
  %685 = call noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %684) #6
  %686 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %687 = fneg x86_fp80 %686
  %688 = call noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef %687)
  %689 = fsub x86_fp80 %685, %688
  %690 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %689)
  %691 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %688)
  %692 = fadd x86_fp80 %691, 0xK3FFF8000000000000000
  %693 = fdiv x86_fp80 %690, %692
  %694 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %685)
  br i1 %694, label %695, label %703

695:                                              ; preds = %682
  %696 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %688)
  br i1 %696, label %717, label %703

697:                                              ; preds = %678, %673, %659
  %.pn1169 = phi { ptr, i32 } [ %679, %678 ], [ %660, %659 ], [ %674, %673 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %698

698:                                              ; preds = %697, %657
  %.pn1169.pn = phi { ptr, i32 } [ %.pn1169, %697 ], [ %658, %657 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  br label %2486

699:                                              ; preds = %.critedge1354
  %700 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  br label %739

701:                                              ; preds = %717, %710
  %702 = landingpad { ptr, i32 }
          cleanup
  br label %738

703:                                              ; preds = %695, %682
  %704 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %685)
  br i1 %704, label %709, label %705

705:                                              ; preds = %703
  %706 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %685)
  %707 = fcmp oeq x86_fp80 %685, %688
  %or.cond1355 = and i1 %707, %706
  %708 = fcmp olt x86_fp80 %693, 0xK3FD0B424DC35095CD800
  %or.cond1527 = or i1 %708, %or.cond1355
  br i1 %or.cond1527, label %717, label %710

709:                                              ; preds = %703
  %.old1526 = fcmp olt x86_fp80 %693, 0xK3FD0B424DC35095CD800
  br i1 %.old1526, label %717, label %710

710:                                              ; preds = %705, %709
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %711 unwind label %701

711:                                              ; preds = %710
  %712 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %713 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %714 = fneg x86_fp80 %713
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %53, i32 noundef %712, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %685, x86_fp80 noundef %688, x86_fp80 noundef %714)
          to label %.critedge1357 unwind label %715

715:                                              ; preds = %711
  %716 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %738

717:                                              ; preds = %695, %705, %709
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %718 unwind label %701

718:                                              ; preds = %717
  %719 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %720 = fneg x86_fp80 %719
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %54, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %685, x86_fp80 noundef %693, x86_fp80 noundef %720)
          to label %.critedge1357 unwind label %721

721:                                              ; preds = %718
  %722 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %738

.critedge1357:                                    ; preds = %718, %711
  %.sink1638 = phi ptr [ %53, %711 ], [ %54, %718 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1638) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  %723 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %725 unwind label %740

725:                                              ; preds = %.critedge1357
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  %726 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %727 = call noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %726) #6
  %728 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %729 = call noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef %728)
  %730 = fsub x86_fp80 %727, %729
  %731 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %730)
  %732 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %729)
  %733 = fadd x86_fp80 %732, 0xK3FFF8000000000000000
  %734 = fdiv x86_fp80 %731, %733
  %735 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %727)
  br i1 %735, label %736, label %744

736:                                              ; preds = %725
  %737 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %729)
  br i1 %737, label %757, label %744

738:                                              ; preds = %721, %715, %701
  %.pn1172 = phi { ptr, i32 } [ %722, %721 ], [ %702, %701 ], [ %716, %715 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %739

739:                                              ; preds = %738, %699
  %.pn1172.pn = phi { ptr, i32 } [ %.pn1172, %738 ], [ %700, %699 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  br label %2486

740:                                              ; preds = %.critedge1357
  %741 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  br label %778

742:                                              ; preds = %757, %751
  %743 = landingpad { ptr, i32 }
          cleanup
  br label %777

744:                                              ; preds = %736, %725
  %745 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %727)
  br i1 %745, label %750, label %746

746:                                              ; preds = %744
  %747 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %727)
  %748 = fcmp oeq x86_fp80 %727, %729
  %or.cond1358 = and i1 %748, %747
  %749 = fcmp olt x86_fp80 %734, 0xK3FD0B424DC35095CD800
  %or.cond1529 = or i1 %749, %or.cond1358
  br i1 %or.cond1529, label %757, label %751

750:                                              ; preds = %744
  %.old1528 = fcmp olt x86_fp80 %734, 0xK3FD0B424DC35095CD800
  br i1 %.old1528, label %757, label %751

751:                                              ; preds = %746, %750
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %752 unwind label %742

752:                                              ; preds = %751
  %753 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %754 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %57, i32 noundef %753, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %727, x86_fp80 noundef %729, x86_fp80 noundef %754)
          to label %.critedge1360 unwind label %755

755:                                              ; preds = %752
  %756 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %777

757:                                              ; preds = %736, %746, %750
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %758 unwind label %742

758:                                              ; preds = %757
  %759 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %58, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %727, x86_fp80 noundef %734, x86_fp80 noundef %759)
          to label %.critedge1360 unwind label %760

760:                                              ; preds = %758
  %761 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  br label %777

.critedge1360:                                    ; preds = %758, %752
  %.sink1639 = phi ptr [ %57, %752 ], [ %58, %758 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1639) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  %762 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %763 = add nsw i32 %762, 1
  store i32 %763, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %764 unwind label %779

764:                                              ; preds = %.critedge1360
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  %765 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %766 = call noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %765) #6
  %767 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %768 = call noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef %767)
  %769 = fsub x86_fp80 %766, %768
  %770 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %769)
  %771 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %768)
  %772 = fadd x86_fp80 %771, 0xK3FFF8000000000000000
  %773 = fdiv x86_fp80 %770, %772
  %774 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %766)
  br i1 %774, label %775, label %783

775:                                              ; preds = %764
  %776 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %768)
  br i1 %776, label %796, label %783

777:                                              ; preds = %760, %755, %742
  %.pn1175 = phi { ptr, i32 } [ %761, %760 ], [ %743, %742 ], [ %756, %755 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %778

778:                                              ; preds = %777, %740
  %.pn1175.pn = phi { ptr, i32 } [ %.pn1175, %777 ], [ %741, %740 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  br label %2486

779:                                              ; preds = %.critedge1360
  %780 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  br label %814

781:                                              ; preds = %796, %790
  %782 = landingpad { ptr, i32 }
          cleanup
  br label %813

783:                                              ; preds = %775, %764
  %784 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %766)
  br i1 %784, label %789, label %785

785:                                              ; preds = %783
  %786 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %766)
  %787 = fcmp oeq x86_fp80 %766, %768
  %or.cond1361 = and i1 %787, %786
  %788 = fcmp olt x86_fp80 %773, 0xK3FD0B424DC35095CD800
  %or.cond1531 = or i1 %788, %or.cond1361
  br i1 %or.cond1531, label %796, label %790

789:                                              ; preds = %783
  %.old1530 = fcmp olt x86_fp80 %773, 0xK3FD0B424DC35095CD800
  br i1 %.old1530, label %796, label %790

790:                                              ; preds = %785, %789
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %791 unwind label %781

791:                                              ; preds = %790
  %792 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %793 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %61, i32 noundef %792, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %766, x86_fp80 noundef %768, x86_fp80 noundef %793)
          to label %.critedge1363 unwind label %794

794:                                              ; preds = %791
  %795 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %813

796:                                              ; preds = %775, %785, %789
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %797 unwind label %781

797:                                              ; preds = %796
  %798 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %62, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %766, x86_fp80 noundef %773, x86_fp80 noundef %798)
          to label %.critedge1363 unwind label %799

799:                                              ; preds = %797
  %800 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %813

.critedge1363:                                    ; preds = %797, %791
  %.sink1640 = phi ptr [ %61, %791 ], [ %62, %797 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1640) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  %801 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  store i32 %802, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %803 unwind label %815

803:                                              ; preds = %.critedge1363
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #6
  %804 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #6
  %805 = call noundef double @_ZSt3absd(double noundef %804)
  %806 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %807 = fadd double %806, 1.000000e+00
  %808 = fdiv double %805, %807
  %809 = fpext double %804 to x86_fp80
  %810 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %809)
  br i1 %810, label %811, label %819

811:                                              ; preds = %803
  %812 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %812, label %831, label %819

813:                                              ; preds = %799, %794, %781
  %.pn1178 = phi { ptr, i32 } [ %800, %799 ], [ %782, %781 ], [ %795, %794 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %814

814:                                              ; preds = %813, %779
  %.pn1178.pn = phi { ptr, i32 } [ %.pn1178, %813 ], [ %780, %779 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  br label %2486

815:                                              ; preds = %.critedge1363
  %816 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #6
  br label %849

817:                                              ; preds = %831, %826
  %818 = landingpad { ptr, i32 }
          cleanup
  br label %848

819:                                              ; preds = %811, %803
  %820 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %809)
  br i1 %820, label %825, label %821

821:                                              ; preds = %819
  %822 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %809)
  %823 = fcmp oeq double %804, 0.000000e+00
  %or.cond1364 = and i1 %823, %822
  %824 = fcmp olt double %808, 0x3D06849B86A12B9B
  %or.cond1533 = or i1 %824, %or.cond1364
  br i1 %or.cond1533, label %831, label %826

825:                                              ; preds = %819
  %.old1532 = fcmp olt double %808, 0x3D06849B86A12B9B
  br i1 %.old1532, label %831, label %826

826:                                              ; preds = %821, %825
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %827 unwind label %817

827:                                              ; preds = %826
  %828 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %65, i32 noundef %828, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %804, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge1366 unwind label %829

829:                                              ; preds = %827
  %830 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %848

831:                                              ; preds = %811, %821, %825
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %832 unwind label %817

832:                                              ; preds = %831
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %66, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %804, double noundef %808, double noundef 0.000000e+00)
          to label %.critedge1366 unwind label %833

833:                                              ; preds = %832
  %834 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %848

.critedge1366:                                    ; preds = %832, %827
  %.sink1641 = phi ptr [ %65, %827 ], [ %66, %832 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1641) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  %835 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %837 unwind label %850

837:                                              ; preds = %.critedge1366
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #6
  %838 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #6
  %839 = fadd double %838, 0.000000e+00
  %840 = call noundef double @_ZSt3absd(double noundef %839)
  %841 = call noundef double @_ZSt3absd(double noundef -0.000000e+00)
  %842 = fadd double %841, 1.000000e+00
  %843 = fdiv double %840, %842
  %844 = fpext double %838 to x86_fp80
  %845 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %844)
  br i1 %845, label %846, label %854

846:                                              ; preds = %837
  %847 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK80000000000000000000)
  br i1 %847, label %866, label %854

848:                                              ; preds = %833, %829, %817
  %.pn1181 = phi { ptr, i32 } [ %834, %833 ], [ %818, %817 ], [ %830, %829 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %849

849:                                              ; preds = %848, %815
  %.pn1181.pn = phi { ptr, i32 } [ %.pn1181, %848 ], [ %816, %815 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  br label %2486

850:                                              ; preds = %.critedge1366
  %851 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #6
  br label %884

852:                                              ; preds = %866, %861
  %853 = landingpad { ptr, i32 }
          cleanup
  br label %883

854:                                              ; preds = %846, %837
  %855 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %844)
  br i1 %855, label %860, label %856

856:                                              ; preds = %854
  %857 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %844)
  %858 = fcmp oeq double %838, 0.000000e+00
  %or.cond1367 = and i1 %858, %857
  %859 = fcmp olt double %843, 0x3D06849B86A12B9B
  %or.cond1535 = or i1 %859, %or.cond1367
  br i1 %or.cond1535, label %866, label %861

860:                                              ; preds = %854
  %.old1534 = fcmp olt double %843, 0x3D06849B86A12B9B
  br i1 %.old1534, label %866, label %861

861:                                              ; preds = %856, %860
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %862 unwind label %852

862:                                              ; preds = %861
  %863 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %69, i32 noundef %863, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %838, double noundef -0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge1369 unwind label %864

864:                                              ; preds = %862
  %865 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %883

866:                                              ; preds = %846, %856, %860
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %867 unwind label %852

867:                                              ; preds = %866
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %70, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %838, double noundef %843, double noundef -0.000000e+00)
          to label %.critedge1369 unwind label %868

868:                                              ; preds = %867
  %869 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %883

.critedge1369:                                    ; preds = %867, %862
  %.sink1642 = phi ptr [ %69, %862 ], [ %70, %867 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1642) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #6
  %870 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %871 = add nsw i32 %870, 1
  store i32 %871, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %872 unwind label %885

872:                                              ; preds = %.critedge1369
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #6
  %873 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #6
  %874 = fadd double %873, -5.000000e+00
  %875 = call noundef double @_ZSt3absd(double noundef %874)
  %876 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %877 = fadd double %876, 1.000000e+00
  %878 = fdiv double %875, %877
  %879 = fpext double %873 to x86_fp80
  %880 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %879)
  br i1 %880, label %881, label %889

881:                                              ; preds = %872
  %882 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %882, label %901, label %889

883:                                              ; preds = %868, %864, %852
  %.pn1184 = phi { ptr, i32 } [ %869, %868 ], [ %853, %852 ], [ %865, %864 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %884

884:                                              ; preds = %883, %850
  %.pn1184.pn = phi { ptr, i32 } [ %.pn1184, %883 ], [ %851, %850 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #6
  br label %2486

885:                                              ; preds = %.critedge1369
  %886 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #6
  br label %919

887:                                              ; preds = %901, %896
  %888 = landingpad { ptr, i32 }
          cleanup
  br label %918

889:                                              ; preds = %881, %872
  %890 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %879)
  br i1 %890, label %895, label %891

891:                                              ; preds = %889
  %892 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %879)
  %893 = fcmp oeq double %873, 5.000000e+00
  %or.cond1370 = and i1 %893, %892
  %894 = fcmp olt double %878, 0x3D06849B86A12B9B
  %or.cond1537 = or i1 %894, %or.cond1370
  br i1 %or.cond1537, label %901, label %896

895:                                              ; preds = %889
  %.old1536 = fcmp olt double %878, 0x3D06849B86A12B9B
  br i1 %.old1536, label %901, label %896

896:                                              ; preds = %891, %895
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %897 unwind label %887

897:                                              ; preds = %896
  %898 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %73, i32 noundef %898, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %873, double noundef 5.000000e+00, double noundef 4.200000e+00)
          to label %.critedge1372 unwind label %899

899:                                              ; preds = %897
  %900 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %918

901:                                              ; preds = %881, %891, %895
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %902 unwind label %887

902:                                              ; preds = %901
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %74, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %873, double noundef %878, double noundef 4.200000e+00)
          to label %.critedge1372 unwind label %903

903:                                              ; preds = %902
  %904 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %918

.critedge1372:                                    ; preds = %902, %897
  %.sink1643 = phi ptr [ %73, %897 ], [ %74, %902 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1643) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #6
  %905 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %907 unwind label %920

907:                                              ; preds = %.critedge1372
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #6
  %908 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #6
  %909 = fadd double %908, -5.000000e+00
  %910 = call noundef double @_ZSt3absd(double noundef %909)
  %911 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %912 = fadd double %911, 1.000000e+00
  %913 = fdiv double %910, %912
  %914 = fpext double %908 to x86_fp80
  %915 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %914)
  br i1 %915, label %916, label %924

916:                                              ; preds = %907
  %917 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %917, label %936, label %924

918:                                              ; preds = %903, %899, %887
  %.pn1187 = phi { ptr, i32 } [ %904, %903 ], [ %888, %887 ], [ %900, %899 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  br label %919

919:                                              ; preds = %918, %885
  %.pn1187.pn = phi { ptr, i32 } [ %.pn1187, %918 ], [ %886, %885 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #6
  br label %2486

920:                                              ; preds = %.critedge1372
  %921 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #6
  br label %954

922:                                              ; preds = %936, %931
  %923 = landingpad { ptr, i32 }
          cleanup
  br label %953

924:                                              ; preds = %916, %907
  %925 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %914)
  br i1 %925, label %930, label %926

926:                                              ; preds = %924
  %927 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %914)
  %928 = fcmp oeq double %908, 5.000000e+00
  %or.cond1373 = and i1 %928, %927
  %929 = fcmp olt double %913, 0x3D06849B86A12B9B
  %or.cond1539 = or i1 %929, %or.cond1373
  br i1 %or.cond1539, label %936, label %931

930:                                              ; preds = %924
  %.old1538 = fcmp olt double %913, 0x3D06849B86A12B9B
  br i1 %.old1538, label %936, label %931

931:                                              ; preds = %926, %930
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %932 unwind label %922

932:                                              ; preds = %931
  %933 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %77, i32 noundef %933, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %908, double noundef 5.000000e+00, double noundef 4.500000e+00)
          to label %.critedge1375 unwind label %934

934:                                              ; preds = %932
  %935 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %953

936:                                              ; preds = %916, %926, %930
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %937 unwind label %922

937:                                              ; preds = %936
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %78, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %908, double noundef %913, double noundef 4.500000e+00)
          to label %.critedge1375 unwind label %938

938:                                              ; preds = %937
  %939 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %953

.critedge1375:                                    ; preds = %937, %932
  %.sink1644 = phi ptr [ %77, %932 ], [ %78, %937 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1644) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #6
  %940 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %941 = add nsw i32 %940, 1
  store i32 %941, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %942 unwind label %955

942:                                              ; preds = %.critedge1375
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #6
  %943 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #6
  %944 = fadd double %943, -5.000000e+00
  %945 = call noundef double @_ZSt3absd(double noundef %944)
  %946 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %947 = fadd double %946, 1.000000e+00
  %948 = fdiv double %945, %947
  %949 = fpext double %943 to x86_fp80
  %950 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %949)
  br i1 %950, label %951, label %959

951:                                              ; preds = %942
  %952 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %952, label %971, label %959

953:                                              ; preds = %938, %934, %922
  %.pn1190 = phi { ptr, i32 } [ %939, %938 ], [ %923, %922 ], [ %935, %934 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %954

954:                                              ; preds = %953, %920
  %.pn1190.pn = phi { ptr, i32 } [ %.pn1190, %953 ], [ %921, %920 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #6
  br label %2486

955:                                              ; preds = %.critedge1375
  %956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #6
  br label %989

957:                                              ; preds = %971, %966
  %958 = landingpad { ptr, i32 }
          cleanup
  br label %988

959:                                              ; preds = %951, %942
  %960 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %949)
  br i1 %960, label %965, label %961

961:                                              ; preds = %959
  %962 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %949)
  %963 = fcmp oeq double %943, 5.000000e+00
  %or.cond1376 = and i1 %963, %962
  %964 = fcmp olt double %948, 0x3D06849B86A12B9B
  %or.cond1541 = or i1 %964, %or.cond1376
  br i1 %or.cond1541, label %971, label %966

965:                                              ; preds = %959
  %.old1540 = fcmp olt double %948, 0x3D06849B86A12B9B
  br i1 %.old1540, label %971, label %966

966:                                              ; preds = %961, %965
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %967 unwind label %957

967:                                              ; preds = %966
  %968 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %81, i32 noundef %968, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %943, double noundef 5.000000e+00, double noundef 4.700000e+00)
          to label %.critedge1378 unwind label %969

969:                                              ; preds = %967
  %970 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %988

971:                                              ; preds = %951, %961, %965
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %972 unwind label %957

972:                                              ; preds = %971
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %82, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %943, double noundef %948, double noundef 4.700000e+00)
          to label %.critedge1378 unwind label %973

973:                                              ; preds = %972
  %974 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %988

.critedge1378:                                    ; preds = %972, %967
  %.sink1645 = phi ptr [ %81, %967 ], [ %82, %972 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1645) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #6
  %975 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %976 = add nsw i32 %975, 1
  store i32 %976, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %977 unwind label %990

977:                                              ; preds = %.critedge1378
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #6
  %978 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #6
  %979 = fadd double %978, -5.000000e+00
  %980 = call noundef double @_ZSt3absd(double noundef %979)
  %981 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %982 = fadd double %981, 1.000000e+00
  %983 = fdiv double %980, %982
  %984 = fpext double %978 to x86_fp80
  %985 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %984)
  br i1 %985, label %986, label %994

986:                                              ; preds = %977
  %987 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %987, label %1006, label %994

988:                                              ; preds = %973, %969, %957
  %.pn1193 = phi { ptr, i32 } [ %974, %973 ], [ %958, %957 ], [ %970, %969 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %989

989:                                              ; preds = %988, %955
  %.pn1193.pn = phi { ptr, i32 } [ %.pn1193, %988 ], [ %956, %955 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #6
  br label %2486

990:                                              ; preds = %.critedge1378
  %991 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #6
  br label %1024

992:                                              ; preds = %1006, %1001
  %993 = landingpad { ptr, i32 }
          cleanup
  br label %1023

994:                                              ; preds = %986, %977
  %995 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %984)
  br i1 %995, label %1000, label %996

996:                                              ; preds = %994
  %997 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %984)
  %998 = fcmp oeq double %978, 5.000000e+00
  %or.cond1379 = and i1 %998, %997
  %999 = fcmp olt double %983, 0x3D06849B86A12B9B
  %or.cond1543 = or i1 %999, %or.cond1379
  br i1 %or.cond1543, label %1006, label %1001

1000:                                             ; preds = %994
  %.old1542 = fcmp olt double %983, 0x3D06849B86A12B9B
  br i1 %.old1542, label %1006, label %1001

1001:                                             ; preds = %996, %1000
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %1002 unwind label %992

1002:                                             ; preds = %1001
  %1003 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %85, i32 noundef %1003, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %978, double noundef 5.000000e+00, double noundef 5.000000e+00)
          to label %.critedge1381 unwind label %1004

1004:                                             ; preds = %1002
  %1005 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %1023

1006:                                             ; preds = %986, %996, %1000
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %1007 unwind label %992

1007:                                             ; preds = %1006
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %86, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %978, double noundef %983, double noundef 5.000000e+00)
          to label %.critedge1381 unwind label %1008

1008:                                             ; preds = %1007
  %1009 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  br label %1023

.critedge1381:                                    ; preds = %1007, %1002
  %.sink1646 = phi ptr [ %85, %1002 ], [ %86, %1007 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1646) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #6
  %1010 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1011 = add nsw i32 %1010, 1
  store i32 %1011, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %88) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %1012 unwind label %1025

1012:                                             ; preds = %.critedge1381
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #6
  %1013 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #6
  %1014 = fadd double %1013, 4.000000e+00
  %1015 = call noundef double @_ZSt3absd(double noundef %1014)
  %1016 = call noundef double @_ZSt3absd(double noundef -4.000000e+00)
  %1017 = fadd double %1016, 1.000000e+00
  %1018 = fdiv double %1015, %1017
  %1019 = fpext double %1013 to x86_fp80
  %1020 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1019)
  br i1 %1020, label %1021, label %1029

1021:                                             ; preds = %1012
  %1022 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC0018000000000000000)
  br i1 %1022, label %1041, label %1029

1023:                                             ; preds = %1008, %1004, %992
  %.pn1196 = phi { ptr, i32 } [ %1009, %1008 ], [ %993, %992 ], [ %1005, %1004 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  br label %1024

1024:                                             ; preds = %1023, %990
  %.pn1196.pn = phi { ptr, i32 } [ %.pn1196, %1023 ], [ %991, %990 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #6
  br label %2486

1025:                                             ; preds = %.critedge1381
  %1026 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #6
  br label %1059

1027:                                             ; preds = %1041, %1036
  %1028 = landingpad { ptr, i32 }
          cleanup
  br label %1058

1029:                                             ; preds = %1021, %1012
  %1030 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1019)
  br i1 %1030, label %1035, label %1031

1031:                                             ; preds = %1029
  %1032 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1019)
  %1033 = fcmp oeq double %1013, -4.000000e+00
  %or.cond1382 = and i1 %1033, %1032
  %1034 = fcmp olt double %1018, 0x3D06849B86A12B9B
  %or.cond1545 = or i1 %1034, %or.cond1382
  br i1 %or.cond1545, label %1041, label %1036

1035:                                             ; preds = %1029
  %.old1544 = fcmp olt double %1018, 0x3D06849B86A12B9B
  br i1 %.old1544, label %1041, label %1036

1036:                                             ; preds = %1031, %1035
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1037 unwind label %1027

1037:                                             ; preds = %1036
  %1038 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %89, i32 noundef %1038, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1013, double noundef -4.000000e+00, double noundef -4.200000e+00)
          to label %.critedge1384 unwind label %1039

1039:                                             ; preds = %1037
  %1040 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %1058

1041:                                             ; preds = %1021, %1031, %1035
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1042 unwind label %1027

1042:                                             ; preds = %1041
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %90, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1013, double noundef %1018, double noundef -4.200000e+00)
          to label %.critedge1384 unwind label %1043

1043:                                             ; preds = %1042
  %1044 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  br label %1058

.critedge1384:                                    ; preds = %1042, %1037
  %.sink1647 = phi ptr [ %89, %1037 ], [ %90, %1042 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1647) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #6
  %1045 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %1047 unwind label %1060

1047:                                             ; preds = %.critedge1384
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #6
  %1048 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #6
  %1049 = fadd double %1048, 4.000000e+00
  %1050 = call noundef double @_ZSt3absd(double noundef %1049)
  %1051 = call noundef double @_ZSt3absd(double noundef -4.000000e+00)
  %1052 = fadd double %1051, 1.000000e+00
  %1053 = fdiv double %1050, %1052
  %1054 = fpext double %1048 to x86_fp80
  %1055 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1054)
  br i1 %1055, label %1056, label %1064

1056:                                             ; preds = %1047
  %1057 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC0018000000000000000)
  br i1 %1057, label %1076, label %1064

1058:                                             ; preds = %1043, %1039, %1027
  %.pn1199 = phi { ptr, i32 } [ %1044, %1043 ], [ %1028, %1027 ], [ %1040, %1039 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  br label %1059

1059:                                             ; preds = %1058, %1025
  %.pn1199.pn = phi { ptr, i32 } [ %.pn1199, %1058 ], [ %1026, %1025 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #6
  br label %2486

1060:                                             ; preds = %.critedge1384
  %1061 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #6
  br label %1094

1062:                                             ; preds = %1076, %1071
  %1063 = landingpad { ptr, i32 }
          cleanup
  br label %1093

1064:                                             ; preds = %1056, %1047
  %1065 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1054)
  br i1 %1065, label %1070, label %1066

1066:                                             ; preds = %1064
  %1067 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1054)
  %1068 = fcmp oeq double %1048, -4.000000e+00
  %or.cond1385 = and i1 %1068, %1067
  %1069 = fcmp olt double %1053, 0x3D06849B86A12B9B
  %or.cond1547 = or i1 %1069, %or.cond1385
  br i1 %or.cond1547, label %1076, label %1071

1070:                                             ; preds = %1064
  %.old1546 = fcmp olt double %1053, 0x3D06849B86A12B9B
  br i1 %.old1546, label %1076, label %1071

1071:                                             ; preds = %1066, %1070
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1072 unwind label %1062

1072:                                             ; preds = %1071
  %1073 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %93, i32 noundef %1073, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1048, double noundef -4.000000e+00, double noundef -4.700000e+00)
          to label %.critedge1387 unwind label %1074

1074:                                             ; preds = %1072
  %1075 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %1093

1076:                                             ; preds = %1056, %1066, %1070
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1077 unwind label %1062

1077:                                             ; preds = %1076
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %94, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1048, double noundef %1053, double noundef -4.700000e+00)
          to label %.critedge1387 unwind label %1078

1078:                                             ; preds = %1077
  %1079 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #6
  br label %1093

.critedge1387:                                    ; preds = %1077, %1072
  %.sink1648 = phi ptr [ %93, %1072 ], [ %94, %1077 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1648) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #6
  %1080 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1081 = add nsw i32 %1080, 1
  store i32 %1081, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %1082 unwind label %1095

1082:                                             ; preds = %.critedge1387
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #6
  %1083 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #6
  %1084 = fadd double %1083, 5.000000e+00
  %1085 = call noundef double @_ZSt3absd(double noundef %1084)
  %1086 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %1087 = fadd double %1086, 1.000000e+00
  %1088 = fdiv double %1085, %1087
  %1089 = fpext double %1083 to x86_fp80
  %1090 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1089)
  br i1 %1090, label %1091, label %1099

1091:                                             ; preds = %1082
  %1092 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %1092, label %1111, label %1099

1093:                                             ; preds = %1078, %1074, %1062
  %.pn1202 = phi { ptr, i32 } [ %1079, %1078 ], [ %1063, %1062 ], [ %1075, %1074 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  br label %1094

1094:                                             ; preds = %1093, %1060
  %.pn1202.pn = phi { ptr, i32 } [ %.pn1202, %1093 ], [ %1061, %1060 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #6
  br label %2486

1095:                                             ; preds = %.critedge1387
  %1096 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #6
  br label %1129

1097:                                             ; preds = %1111, %1106
  %1098 = landingpad { ptr, i32 }
          cleanup
  br label %1128

1099:                                             ; preds = %1091, %1082
  %1100 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1089)
  br i1 %1100, label %1105, label %1101

1101:                                             ; preds = %1099
  %1102 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1089)
  %1103 = fcmp oeq double %1083, -5.000000e+00
  %or.cond1388 = and i1 %1103, %1102
  %1104 = fcmp olt double %1088, 0x3D06849B86A12B9B
  %or.cond1549 = or i1 %1104, %or.cond1388
  br i1 %or.cond1549, label %1111, label %1106

1105:                                             ; preds = %1099
  %.old1548 = fcmp olt double %1088, 0x3D06849B86A12B9B
  br i1 %.old1548, label %1111, label %1106

1106:                                             ; preds = %1101, %1105
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1107 unwind label %1097

1107:                                             ; preds = %1106
  %1108 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %97, i32 noundef %1108, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1083, double noundef -5.000000e+00, double noundef -5.000000e+00)
          to label %.critedge1390 unwind label %1109

1109:                                             ; preds = %1107
  %1110 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %1128

1111:                                             ; preds = %1091, %1101, %1105
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1112 unwind label %1097

1112:                                             ; preds = %1111
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %98, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1083, double noundef %1088, double noundef -5.000000e+00)
          to label %.critedge1390 unwind label %1113

1113:                                             ; preds = %1112
  %1114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  br label %1128

.critedge1390:                                    ; preds = %1112, %1107
  %.sink1649 = phi ptr [ %97, %1107 ], [ %98, %1112 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1649) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #6
  %1115 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1116 = add nsw i32 %1115, 1
  store i32 %1116, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %100) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %1117 unwind label %1130

1117:                                             ; preds = %.critedge1390
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #6
  %1118 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #6
  %1119 = fadd double %1118, -4.200000e+33
  %1120 = call noundef double @_ZSt3absd(double noundef %1119)
  %1121 = call noundef double @_ZSt3absd(double noundef 4.200000e+33)
  %1122 = fadd double %1121, 1.000000e+00
  %1123 = fdiv double %1120, %1122
  %1124 = fpext double %1118 to x86_fp80
  %1125 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1124)
  br i1 %1125, label %1126, label %1134

1126:                                             ; preds = %1117
  %1127 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK406ECF1373ECB903F000)
  br i1 %1127, label %1146, label %1134

1128:                                             ; preds = %1113, %1109, %1097
  %.pn1205 = phi { ptr, i32 } [ %1114, %1113 ], [ %1098, %1097 ], [ %1110, %1109 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %1129

1129:                                             ; preds = %1128, %1095
  %.pn1205.pn = phi { ptr, i32 } [ %.pn1205, %1128 ], [ %1096, %1095 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #6
  br label %2486

1130:                                             ; preds = %.critedge1390
  %1131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #6
  br label %1164

1132:                                             ; preds = %1146, %1141
  %1133 = landingpad { ptr, i32 }
          cleanup
  br label %1163

1134:                                             ; preds = %1126, %1117
  %1135 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1124)
  br i1 %1135, label %1140, label %1136

1136:                                             ; preds = %1134
  %1137 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1124)
  %1138 = fcmp oeq double %1118, 4.200000e+33
  %or.cond1391 = and i1 %1138, %1137
  %1139 = fcmp olt double %1123, 0x3D06849B86A12B9B
  %or.cond1551 = or i1 %1139, %or.cond1391
  br i1 %or.cond1551, label %1146, label %1141

1140:                                             ; preds = %1134
  %.old1550 = fcmp olt double %1123, 0x3D06849B86A12B9B
  br i1 %.old1550, label %1146, label %1141

1141:                                             ; preds = %1136, %1140
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1142 unwind label %1132

1142:                                             ; preds = %1141
  %1143 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %101, i32 noundef %1143, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1118, double noundef 4.200000e+33, double noundef 4.200000e+33)
          to label %.critedge1393 unwind label %1144

1144:                                             ; preds = %1142
  %1145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %1163

1146:                                             ; preds = %1126, %1136, %1140
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1147 unwind label %1132

1147:                                             ; preds = %1146
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %102, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1118, double noundef %1123, double noundef 4.200000e+33)
          to label %.critedge1393 unwind label %1148

1148:                                             ; preds = %1147
  %1149 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  br label %1163

.critedge1393:                                    ; preds = %1147, %1142
  %.sink1650 = phi ptr [ %101, %1142 ], [ %102, %1147 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1650) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #6
  %1150 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %104) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %1152 unwind label %1165

1152:                                             ; preds = %.critedge1393
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #6
  %1153 = call noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #6
  %1154 = fadd double %1153, 4.200000e+33
  %1155 = call noundef double @_ZSt3absd(double noundef %1154)
  %1156 = call noundef double @_ZSt3absd(double noundef -4.200000e+33)
  %1157 = fadd double %1156, 1.000000e+00
  %1158 = fdiv double %1155, %1157
  %1159 = fpext double %1153 to x86_fp80
  %1160 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1159)
  br i1 %1160, label %1161, label %1169

1161:                                             ; preds = %1152
  %1162 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC06ECF1373ECB903F000)
  br i1 %1162, label %1181, label %1169

1163:                                             ; preds = %1148, %1144, %1132
  %.pn1208 = phi { ptr, i32 } [ %1149, %1148 ], [ %1133, %1132 ], [ %1145, %1144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %1164

1164:                                             ; preds = %1163, %1130
  %.pn1208.pn = phi { ptr, i32 } [ %.pn1208, %1163 ], [ %1131, %1130 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #6
  br label %2486

1165:                                             ; preds = %.critedge1393
  %1166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #6
  br label %1203

1167:                                             ; preds = %1181, %1176
  %1168 = landingpad { ptr, i32 }
          cleanup
  br label %1202

1169:                                             ; preds = %1161, %1152
  %1170 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1159)
  br i1 %1170, label %1175, label %1171

1171:                                             ; preds = %1169
  %1172 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1159)
  %1173 = fcmp oeq double %1153, -4.200000e+33
  %or.cond1394 = and i1 %1173, %1172
  %1174 = fcmp olt double %1158, 0x3D06849B86A12B9B
  %or.cond1553 = or i1 %1174, %or.cond1394
  br i1 %or.cond1553, label %1181, label %1176

1175:                                             ; preds = %1169
  %.old1552 = fcmp olt double %1158, 0x3D06849B86A12B9B
  br i1 %.old1552, label %1181, label %1176

1176:                                             ; preds = %1171, %1175
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1177 unwind label %1167

1177:                                             ; preds = %1176
  %1178 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %105, i32 noundef %1178, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1153, double noundef -4.200000e+33, double noundef -4.200000e+33)
          to label %.critedge1396 unwind label %1179

1179:                                             ; preds = %1177
  %1180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  br label %1202

1181:                                             ; preds = %1161, %1171, %1175
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1182 unwind label %1167

1182:                                             ; preds = %1181
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %106, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1153, double noundef %1158, double noundef -4.200000e+33)
          to label %.critedge1396 unwind label %1183

1183:                                             ; preds = %1182
  %1184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #6
  br label %1202

.critedge1396:                                    ; preds = %1182, %1177
  %.sink1651 = phi ptr [ %105, %1177 ], [ %106, %1182 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1651) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #6
  %1185 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1186 = add nsw i32 %1185, 1
  store i32 %1186, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %1187 unwind label %1204

1187:                                             ; preds = %.critedge1396
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #6
  %1188 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %1189 = call noundef float @_ZN4gcem4ceilIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %1188) #6
  %1190 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %1191 = call noundef float @_ZSt4ceilf(float noundef %1190)
  %1192 = fsub float %1189, %1191
  %1193 = call noundef float @_ZSt3absf(float noundef %1192)
  %1194 = call noundef float @_ZSt3absf(float noundef %1191)
  %1195 = fadd float %1194, 1.000000e+00
  %1196 = fdiv float %1193, %1195
  %1197 = fpext float %1189 to x86_fp80
  %1198 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1197)
  br i1 %1198, label %1199, label %1208

1199:                                             ; preds = %1187
  %1200 = fpext float %1191 to x86_fp80
  %1201 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1200)
  br i1 %1201, label %1222, label %1208

1202:                                             ; preds = %1183, %1179, %1167
  %.pn1211 = phi { ptr, i32 } [ %1184, %1183 ], [ %1168, %1167 ], [ %1180, %1179 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  br label %1203

1203:                                             ; preds = %1202, %1165
  %.pn1211.pn = phi { ptr, i32 } [ %.pn1211, %1202 ], [ %1166, %1165 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #6
  br label %2486

1204:                                             ; preds = %.critedge1396
  %1205 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #6
  br label %1245

1206:                                             ; preds = %1222, %1216
  %1207 = landingpad { ptr, i32 }
          cleanup
  br label %1244

1208:                                             ; preds = %1199, %1187
  %1209 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1197)
  br i1 %1209, label %1215, label %1210

1210:                                             ; preds = %1208
  %1211 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1197)
  %1212 = fcmp oeq float %1189, %1191
  %or.cond1397 = and i1 %1212, %1211
  %1213 = fpext float %1196 to double
  %1214 = fcmp olt double %1213, 0x3D06849B86A12B9B
  %or.cond1556 = or i1 %1214, %or.cond1397
  br i1 %or.cond1556, label %1222, label %1216

1215:                                             ; preds = %1208
  %.old1554 = fpext float %1196 to double
  %.old1555 = fcmp olt double %.old1554, 0x3D06849B86A12B9B
  br i1 %.old1555, label %1222, label %1216

1216:                                             ; preds = %1210, %1215
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1217 unwind label %1206

1217:                                             ; preds = %1216
  %1218 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1219 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %109, i32 noundef %1218, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %1189, float noundef %1191, float noundef %1219)
          to label %.critedge1399 unwind label %1220

1220:                                             ; preds = %1217
  %1221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %1244

1222:                                             ; preds = %1199, %1210, %1215
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1223 unwind label %1206

1223:                                             ; preds = %1222
  %1224 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %110, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %1189, float noundef %1196, float noundef %1224)
          to label %.critedge1399 unwind label %1225

1225:                                             ; preds = %1223
  %1226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #6
  br label %1244

.critedge1399:                                    ; preds = %1223, %1217
  %.sink1652 = phi ptr [ %109, %1217 ], [ %110, %1223 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1652) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #6
  %1227 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1228 = add nsw i32 %1227, 1
  store i32 %1228, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %112) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %1229 unwind label %1246

1229:                                             ; preds = %.critedge1399
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #6
  %1230 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1231 = fneg x86_fp80 %1230
  %1232 = call noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1231) #6
  %1233 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1234 = fneg x86_fp80 %1233
  %1235 = call noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef %1234)
  %1236 = fsub x86_fp80 %1232, %1235
  %1237 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1236)
  %1238 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1235)
  %1239 = fadd x86_fp80 %1238, 0xK3FFF8000000000000000
  %1240 = fdiv x86_fp80 %1237, %1239
  %1241 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1232)
  br i1 %1241, label %1242, label %1250

1242:                                             ; preds = %1229
  %1243 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1235)
  br i1 %1243, label %1264, label %1250

1244:                                             ; preds = %1225, %1220, %1206
  %.pn1214 = phi { ptr, i32 } [ %1226, %1225 ], [ %1207, %1206 ], [ %1221, %1220 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %1245

1245:                                             ; preds = %1244, %1204
  %.pn1214.pn = phi { ptr, i32 } [ %.pn1214, %1244 ], [ %1205, %1204 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #6
  br label %2486

1246:                                             ; preds = %.critedge1399
  %1247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #6
  br label %1286

1248:                                             ; preds = %1264, %1257
  %1249 = landingpad { ptr, i32 }
          cleanup
  br label %1285

1250:                                             ; preds = %1242, %1229
  %1251 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1232)
  br i1 %1251, label %1256, label %1252

1252:                                             ; preds = %1250
  %1253 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1232)
  %1254 = fcmp oeq x86_fp80 %1232, %1235
  %or.cond1400 = and i1 %1254, %1253
  %1255 = fcmp olt x86_fp80 %1240, 0xK3FD0B424DC35095CD800
  %or.cond1558 = or i1 %1255, %or.cond1400
  br i1 %or.cond1558, label %1264, label %1257

1256:                                             ; preds = %1250
  %.old1557 = fcmp olt x86_fp80 %1240, 0xK3FD0B424DC35095CD800
  br i1 %.old1557, label %1264, label %1257

1257:                                             ; preds = %1252, %1256
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1258 unwind label %1248

1258:                                             ; preds = %1257
  %1259 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1260 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1261 = fneg x86_fp80 %1260
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %113, i32 noundef %1259, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1232, x86_fp80 noundef %1235, x86_fp80 noundef %1261)
          to label %.critedge1402 unwind label %1262

1262:                                             ; preds = %1258
  %1263 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #6
  br label %1285

1264:                                             ; preds = %1242, %1252, %1256
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1265 unwind label %1248

1265:                                             ; preds = %1264
  %1266 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1267 = fneg x86_fp80 %1266
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %114, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1232, x86_fp80 noundef %1240, x86_fp80 noundef %1267)
          to label %.critedge1402 unwind label %1268

1268:                                             ; preds = %1265
  %1269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #6
  br label %1285

.critedge1402:                                    ; preds = %1265, %1258
  %.sink1653 = phi ptr [ %113, %1258 ], [ %114, %1265 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1653) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #6
  %1270 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1271 = add nsw i32 %1270, 1
  store i32 %1271, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %116) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %1272 unwind label %1287

1272:                                             ; preds = %.critedge1402
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #6
  %1273 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1274 = call noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1273) #6
  %1275 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1276 = call noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef %1275)
  %1277 = fsub x86_fp80 %1274, %1276
  %1278 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1277)
  %1279 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1276)
  %1280 = fadd x86_fp80 %1279, 0xK3FFF8000000000000000
  %1281 = fdiv x86_fp80 %1278, %1280
  %1282 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1274)
  br i1 %1282, label %1283, label %1291

1283:                                             ; preds = %1272
  %1284 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1276)
  br i1 %1284, label %1304, label %1291

1285:                                             ; preds = %1268, %1262, %1248
  %.pn1217 = phi { ptr, i32 } [ %1269, %1268 ], [ %1249, %1248 ], [ %1263, %1262 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  br label %1286

1286:                                             ; preds = %1285, %1246
  %.pn1217.pn = phi { ptr, i32 } [ %.pn1217, %1285 ], [ %1247, %1246 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #6
  br label %2486

1287:                                             ; preds = %.critedge1402
  %1288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #6
  br label %1325

1289:                                             ; preds = %1304, %1298
  %1290 = landingpad { ptr, i32 }
          cleanup
  br label %1324

1291:                                             ; preds = %1283, %1272
  %1292 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1274)
  br i1 %1292, label %1297, label %1293

1293:                                             ; preds = %1291
  %1294 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1274)
  %1295 = fcmp oeq x86_fp80 %1274, %1276
  %or.cond1403 = and i1 %1295, %1294
  %1296 = fcmp olt x86_fp80 %1281, 0xK3FD0B424DC35095CD800
  %or.cond1560 = or i1 %1296, %or.cond1403
  br i1 %or.cond1560, label %1304, label %1298

1297:                                             ; preds = %1291
  %.old1559 = fcmp olt x86_fp80 %1281, 0xK3FD0B424DC35095CD800
  br i1 %.old1559, label %1304, label %1298

1298:                                             ; preds = %1293, %1297
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %1299 unwind label %1289

1299:                                             ; preds = %1298
  %1300 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1301 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %117, i32 noundef %1300, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1274, x86_fp80 noundef %1276, x86_fp80 noundef %1301)
          to label %.critedge1405 unwind label %1302

1302:                                             ; preds = %1299
  %1303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #6
  br label %1324

1304:                                             ; preds = %1283, %1293, %1297
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %1305 unwind label %1289

1305:                                             ; preds = %1304
  %1306 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %118, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1274, x86_fp80 noundef %1281, x86_fp80 noundef %1306)
          to label %.critedge1405 unwind label %1307

1307:                                             ; preds = %1305
  %1308 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #6
  br label %1324

.critedge1405:                                    ; preds = %1305, %1299
  %.sink1654 = phi ptr [ %117, %1299 ], [ %118, %1305 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1654) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #6
  %1309 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1310 = add nsw i32 %1309, 1
  store i32 %1310, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %1311 unwind label %1326

1311:                                             ; preds = %.critedge1405
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #6
  %1312 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %1313 = call noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1312) #6
  %1314 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %1315 = call noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef %1314)
  %1316 = fsub x86_fp80 %1313, %1315
  %1317 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1316)
  %1318 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1315)
  %1319 = fadd x86_fp80 %1318, 0xK3FFF8000000000000000
  %1320 = fdiv x86_fp80 %1317, %1319
  %1321 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1313)
  br i1 %1321, label %1322, label %1330

1322:                                             ; preds = %1311
  %1323 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1315)
  br i1 %1323, label %1343, label %1330

1324:                                             ; preds = %1307, %1302, %1289
  %.pn1220 = phi { ptr, i32 } [ %1308, %1307 ], [ %1290, %1289 ], [ %1303, %1302 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #6
  br label %1325

1325:                                             ; preds = %1324, %1287
  %.pn1220.pn = phi { ptr, i32 } [ %.pn1220, %1324 ], [ %1288, %1287 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #6
  br label %2486

1326:                                             ; preds = %.critedge1405
  %1327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #6
  br label %1361

1328:                                             ; preds = %1343, %1337
  %1329 = landingpad { ptr, i32 }
          cleanup
  br label %1360

1330:                                             ; preds = %1322, %1311
  %1331 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1313)
  br i1 %1331, label %1336, label %1332

1332:                                             ; preds = %1330
  %1333 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1313)
  %1334 = fcmp oeq x86_fp80 %1313, %1315
  %or.cond1406 = and i1 %1334, %1333
  %1335 = fcmp olt x86_fp80 %1320, 0xK3FD0B424DC35095CD800
  %or.cond1562 = or i1 %1335, %or.cond1406
  br i1 %or.cond1562, label %1343, label %1337

1336:                                             ; preds = %1330
  %.old1561 = fcmp olt x86_fp80 %1320, 0xK3FD0B424DC35095CD800
  br i1 %.old1561, label %1343, label %1337

1337:                                             ; preds = %1332, %1336
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %1338 unwind label %1328

1338:                                             ; preds = %1337
  %1339 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1340 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %121, i32 noundef %1339, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1313, x86_fp80 noundef %1315, x86_fp80 noundef %1340)
          to label %.critedge1408 unwind label %1341

1341:                                             ; preds = %1338
  %1342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #6
  br label %1360

1343:                                             ; preds = %1322, %1332, %1336
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %1344 unwind label %1328

1344:                                             ; preds = %1343
  %1345 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %122, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1313, x86_fp80 noundef %1320, x86_fp80 noundef %1345)
          to label %.critedge1408 unwind label %1346

1346:                                             ; preds = %1344
  %1347 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #6
  br label %1360

.critedge1408:                                    ; preds = %1344, %1338
  %.sink1655 = phi ptr [ %121, %1338 ], [ %122, %1344 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1655) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #6
  %1348 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %123) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %124) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %124)
          to label %1350 unwind label %1362

1350:                                             ; preds = %.critedge1408
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #6
  %1351 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #6
  %1352 = call noundef double @_ZSt3absd(double noundef %1351)
  %1353 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %1354 = fadd double %1353, 1.000000e+00
  %1355 = fdiv double %1352, %1354
  %1356 = fpext double %1351 to x86_fp80
  %1357 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1356)
  br i1 %1357, label %1358, label %1366

1358:                                             ; preds = %1350
  %1359 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %1359, label %1378, label %1366

1360:                                             ; preds = %1346, %1341, %1328
  %.pn1223 = phi { ptr, i32 } [ %1347, %1346 ], [ %1329, %1328 ], [ %1342, %1341 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  br label %1361

1361:                                             ; preds = %1360, %1326
  %.pn1223.pn = phi { ptr, i32 } [ %.pn1223, %1360 ], [ %1327, %1326 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #6
  br label %2486

1362:                                             ; preds = %.critedge1408
  %1363 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #6
  br label %1396

1364:                                             ; preds = %1378, %1373
  %1365 = landingpad { ptr, i32 }
          cleanup
  br label %1395

1366:                                             ; preds = %1358, %1350
  %1367 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1356)
  br i1 %1367, label %1372, label %1368

1368:                                             ; preds = %1366
  %1369 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1356)
  %1370 = fcmp oeq double %1351, 0.000000e+00
  %or.cond1409 = and i1 %1370, %1369
  %1371 = fcmp olt double %1355, 0x3D06849B86A12B9B
  %or.cond1564 = or i1 %1371, %or.cond1409
  br i1 %or.cond1564, label %1378, label %1373

1372:                                             ; preds = %1366
  %.old1563 = fcmp olt double %1355, 0x3D06849B86A12B9B
  br i1 %.old1563, label %1378, label %1373

1373:                                             ; preds = %1368, %1372
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %1374 unwind label %1364

1374:                                             ; preds = %1373
  %1375 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %125, i32 noundef %1375, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1351, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge1411 unwind label %1376

1376:                                             ; preds = %1374
  %1377 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #6
  br label %1395

1378:                                             ; preds = %1358, %1368, %1372
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %1379 unwind label %1364

1379:                                             ; preds = %1378
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %126, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1351, double noundef %1355, double noundef 0.000000e+00)
          to label %.critedge1411 unwind label %1380

1380:                                             ; preds = %1379
  %1381 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #6
  br label %1395

.critedge1411:                                    ; preds = %1379, %1374
  %.sink1656 = phi ptr [ %125, %1374 ], [ %126, %1379 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1656) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #6
  %1382 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1383 = add nsw i32 %1382, 1
  store i32 %1383, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %128) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %128)
          to label %1384 unwind label %1397

1384:                                             ; preds = %.critedge1411
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #6
  %1385 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #6
  %1386 = fadd double %1385, 0.000000e+00
  %1387 = call noundef double @_ZSt3absd(double noundef %1386)
  %1388 = call noundef double @_ZSt3absd(double noundef -0.000000e+00)
  %1389 = fadd double %1388, 1.000000e+00
  %1390 = fdiv double %1387, %1389
  %1391 = fpext double %1385 to x86_fp80
  %1392 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1391)
  br i1 %1392, label %1393, label %1401

1393:                                             ; preds = %1384
  %1394 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK80000000000000000000)
  br i1 %1394, label %1413, label %1401

1395:                                             ; preds = %1380, %1376, %1364
  %.pn1226 = phi { ptr, i32 } [ %1381, %1380 ], [ %1365, %1364 ], [ %1377, %1376 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #6
  br label %1396

1396:                                             ; preds = %1395, %1362
  %.pn1226.pn = phi { ptr, i32 } [ %.pn1226, %1395 ], [ %1363, %1362 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #6
  br label %2486

1397:                                             ; preds = %.critedge1411
  %1398 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #6
  br label %1431

1399:                                             ; preds = %1413, %1408
  %1400 = landingpad { ptr, i32 }
          cleanup
  br label %1430

1401:                                             ; preds = %1393, %1384
  %1402 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1391)
  br i1 %1402, label %1407, label %1403

1403:                                             ; preds = %1401
  %1404 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1391)
  %1405 = fcmp oeq double %1385, 0.000000e+00
  %or.cond1412 = and i1 %1405, %1404
  %1406 = fcmp olt double %1390, 0x3D06849B86A12B9B
  %or.cond1566 = or i1 %1406, %or.cond1412
  br i1 %or.cond1566, label %1413, label %1408

1407:                                             ; preds = %1401
  %.old1565 = fcmp olt double %1390, 0x3D06849B86A12B9B
  br i1 %.old1565, label %1413, label %1408

1408:                                             ; preds = %1403, %1407
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %127)
          to label %1409 unwind label %1399

1409:                                             ; preds = %1408
  %1410 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %129, i32 noundef %1410, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1385, double noundef -0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge1414 unwind label %1411

1411:                                             ; preds = %1409
  %1412 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  br label %1430

1413:                                             ; preds = %1393, %1403, %1407
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(32) %127)
          to label %1414 unwind label %1399

1414:                                             ; preds = %1413
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %130, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1385, double noundef %1390, double noundef -0.000000e+00)
          to label %.critedge1414 unwind label %1415

1415:                                             ; preds = %1414
  %1416 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #6
  br label %1430

.critedge1414:                                    ; preds = %1414, %1409
  %.sink1657 = phi ptr [ %129, %1409 ], [ %130, %1414 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1657) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #6
  %1417 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1418 = add nsw i32 %1417, 1
  store i32 %1418, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %131) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %132) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %132)
          to label %1419 unwind label %1432

1419:                                             ; preds = %.critedge1414
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %132) #6
  %1420 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #6
  %1421 = fadd double %1420, -4.000000e+00
  %1422 = call noundef double @_ZSt3absd(double noundef %1421)
  %1423 = call noundef double @_ZSt3absd(double noundef 4.000000e+00)
  %1424 = fadd double %1423, 1.000000e+00
  %1425 = fdiv double %1422, %1424
  %1426 = fpext double %1420 to x86_fp80
  %1427 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1426)
  br i1 %1427, label %1428, label %1436

1428:                                             ; preds = %1419
  %1429 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK40018000000000000000)
  br i1 %1429, label %1448, label %1436

1430:                                             ; preds = %1415, %1411, %1399
  %.pn1229 = phi { ptr, i32 } [ %1416, %1415 ], [ %1400, %1399 ], [ %1412, %1411 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  br label %1431

1431:                                             ; preds = %1430, %1397
  %.pn1229.pn = phi { ptr, i32 } [ %.pn1229, %1430 ], [ %1398, %1397 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #6
  br label %2486

1432:                                             ; preds = %.critedge1414
  %1433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %132) #6
  br label %1466

1434:                                             ; preds = %1448, %1443
  %1435 = landingpad { ptr, i32 }
          cleanup
  br label %1465

1436:                                             ; preds = %1428, %1419
  %1437 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1426)
  br i1 %1437, label %1442, label %1438

1438:                                             ; preds = %1436
  %1439 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1426)
  %1440 = fcmp oeq double %1420, 4.000000e+00
  %or.cond1415 = and i1 %1440, %1439
  %1441 = fcmp olt double %1425, 0x3D06849B86A12B9B
  %or.cond1568 = or i1 %1441, %or.cond1415
  br i1 %or.cond1568, label %1448, label %1443

1442:                                             ; preds = %1436
  %.old1567 = fcmp olt double %1425, 0x3D06849B86A12B9B
  br i1 %.old1567, label %1448, label %1443

1443:                                             ; preds = %1438, %1442
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %1444 unwind label %1434

1444:                                             ; preds = %1443
  %1445 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %133, i32 noundef %1445, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1420, double noundef 4.000000e+00, double noundef 4.200000e+00)
          to label %.critedge1417 unwind label %1446

1446:                                             ; preds = %1444
  %1447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  br label %1465

1448:                                             ; preds = %1428, %1438, %1442
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %1449 unwind label %1434

1449:                                             ; preds = %1448
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %134, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1420, double noundef %1425, double noundef 4.200000e+00)
          to label %.critedge1417 unwind label %1450

1450:                                             ; preds = %1449
  %1451 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #6
  br label %1465

.critedge1417:                                    ; preds = %1449, %1444
  %.sink1658 = phi ptr [ %133, %1444 ], [ %134, %1449 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1658) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #6
  %1452 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %135) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %136) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %1454 unwind label %1467

1454:                                             ; preds = %.critedge1417
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #6
  %1455 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #6
  %1456 = fadd double %1455, -4.000000e+00
  %1457 = call noundef double @_ZSt3absd(double noundef %1456)
  %1458 = call noundef double @_ZSt3absd(double noundef 4.000000e+00)
  %1459 = fadd double %1458, 1.000000e+00
  %1460 = fdiv double %1457, %1459
  %1461 = fpext double %1455 to x86_fp80
  %1462 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1461)
  br i1 %1462, label %1463, label %1471

1463:                                             ; preds = %1454
  %1464 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK40018000000000000000)
  br i1 %1464, label %1483, label %1471

1465:                                             ; preds = %1450, %1446, %1434
  %.pn1232 = phi { ptr, i32 } [ %1451, %1450 ], [ %1435, %1434 ], [ %1447, %1446 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  br label %1466

1466:                                             ; preds = %1465, %1432
  %.pn1232.pn = phi { ptr, i32 } [ %.pn1232, %1465 ], [ %1433, %1432 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #6
  br label %2486

1467:                                             ; preds = %.critedge1417
  %1468 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #6
  br label %1501

1469:                                             ; preds = %1483, %1478
  %1470 = landingpad { ptr, i32 }
          cleanup
  br label %1500

1471:                                             ; preds = %1463, %1454
  %1472 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1461)
  br i1 %1472, label %1477, label %1473

1473:                                             ; preds = %1471
  %1474 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1461)
  %1475 = fcmp oeq double %1455, 4.000000e+00
  %or.cond1418 = and i1 %1475, %1474
  %1476 = fcmp olt double %1460, 0x3D06849B86A12B9B
  %or.cond1570 = or i1 %1476, %or.cond1418
  br i1 %or.cond1570, label %1483, label %1478

1477:                                             ; preds = %1471
  %.old1569 = fcmp olt double %1460, 0x3D06849B86A12B9B
  br i1 %.old1569, label %1483, label %1478

1478:                                             ; preds = %1473, %1477
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(32) %135)
          to label %1479 unwind label %1469

1479:                                             ; preds = %1478
  %1480 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %137, i32 noundef %1480, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1455, double noundef 4.000000e+00, double noundef 4.500000e+00)
          to label %.critedge1420 unwind label %1481

1481:                                             ; preds = %1479
  %1482 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #6
  br label %1500

1483:                                             ; preds = %1463, %1473, %1477
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull align 8 dereferenceable(32) %135)
          to label %1484 unwind label %1469

1484:                                             ; preds = %1483
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %138, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1455, double noundef %1460, double noundef 4.500000e+00)
          to label %.critedge1420 unwind label %1485

1485:                                             ; preds = %1484
  %1486 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #6
  br label %1500

.critedge1420:                                    ; preds = %1484, %1479
  %.sink1659 = phi ptr [ %137, %1479 ], [ %138, %1484 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1659) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #6
  %1487 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1488 = add nsw i32 %1487, 1
  store i32 %1488, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %139) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %140) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %1489 unwind label %1502

1489:                                             ; preds = %.critedge1420
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #6
  %1490 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #6
  %1491 = fadd double %1490, -4.000000e+00
  %1492 = call noundef double @_ZSt3absd(double noundef %1491)
  %1493 = call noundef double @_ZSt3absd(double noundef 4.000000e+00)
  %1494 = fadd double %1493, 1.000000e+00
  %1495 = fdiv double %1492, %1494
  %1496 = fpext double %1490 to x86_fp80
  %1497 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1496)
  br i1 %1497, label %1498, label %1506

1498:                                             ; preds = %1489
  %1499 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK40018000000000000000)
  br i1 %1499, label %1518, label %1506

1500:                                             ; preds = %1485, %1481, %1469
  %.pn1235 = phi { ptr, i32 } [ %1486, %1485 ], [ %1470, %1469 ], [ %1482, %1481 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #6
  br label %1501

1501:                                             ; preds = %1500, %1467
  %.pn1235.pn = phi { ptr, i32 } [ %.pn1235, %1500 ], [ %1468, %1467 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #6
  br label %2486

1502:                                             ; preds = %.critedge1420
  %1503 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #6
  br label %1536

1504:                                             ; preds = %1518, %1513
  %1505 = landingpad { ptr, i32 }
          cleanup
  br label %1535

1506:                                             ; preds = %1498, %1489
  %1507 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1496)
  br i1 %1507, label %1512, label %1508

1508:                                             ; preds = %1506
  %1509 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1496)
  %1510 = fcmp oeq double %1490, 4.000000e+00
  %or.cond1421 = and i1 %1510, %1509
  %1511 = fcmp olt double %1495, 0x3D06849B86A12B9B
  %or.cond1572 = or i1 %1511, %or.cond1421
  br i1 %or.cond1572, label %1518, label %1513

1512:                                             ; preds = %1506
  %.old1571 = fcmp olt double %1495, 0x3D06849B86A12B9B
  br i1 %.old1571, label %1518, label %1513

1513:                                             ; preds = %1508, %1512
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1514 unwind label %1504

1514:                                             ; preds = %1513
  %1515 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %141, i32 noundef %1515, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1490, double noundef 4.000000e+00, double noundef 4.700000e+00)
          to label %.critedge1423 unwind label %1516

1516:                                             ; preds = %1514
  %1517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #6
  br label %1535

1518:                                             ; preds = %1498, %1508, %1512
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1519 unwind label %1504

1519:                                             ; preds = %1518
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %142, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1490, double noundef %1495, double noundef 4.700000e+00)
          to label %.critedge1423 unwind label %1520

1520:                                             ; preds = %1519
  %1521 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #6
  br label %1535

.critedge1423:                                    ; preds = %1519, %1514
  %.sink1660 = phi ptr [ %141, %1514 ], [ %142, %1519 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1660) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #6
  %1522 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1523 = add nsw i32 %1522, 1
  store i32 %1523, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %143) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %144) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %143, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %144)
          to label %1524 unwind label %1537

1524:                                             ; preds = %.critedge1423
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %144) #6
  %1525 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #6
  %1526 = fadd double %1525, -5.000000e+00
  %1527 = call noundef double @_ZSt3absd(double noundef %1526)
  %1528 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %1529 = fadd double %1528, 1.000000e+00
  %1530 = fdiv double %1527, %1529
  %1531 = fpext double %1525 to x86_fp80
  %1532 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1531)
  br i1 %1532, label %1533, label %1541

1533:                                             ; preds = %1524
  %1534 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %1534, label %1553, label %1541

1535:                                             ; preds = %1520, %1516, %1504
  %.pn1238 = phi { ptr, i32 } [ %1521, %1520 ], [ %1505, %1504 ], [ %1517, %1516 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #6
  br label %1536

1536:                                             ; preds = %1535, %1502
  %.pn1238.pn = phi { ptr, i32 } [ %.pn1238, %1535 ], [ %1503, %1502 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #6
  br label %2486

1537:                                             ; preds = %.critedge1423
  %1538 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %144) #6
  br label %1571

1539:                                             ; preds = %1553, %1548
  %1540 = landingpad { ptr, i32 }
          cleanup
  br label %1570

1541:                                             ; preds = %1533, %1524
  %1542 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1531)
  br i1 %1542, label %1547, label %1543

1543:                                             ; preds = %1541
  %1544 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1531)
  %1545 = fcmp oeq double %1525, 5.000000e+00
  %or.cond1424 = and i1 %1545, %1544
  %1546 = fcmp olt double %1530, 0x3D06849B86A12B9B
  %or.cond1574 = or i1 %1546, %or.cond1424
  br i1 %or.cond1574, label %1553, label %1548

1547:                                             ; preds = %1541
  %.old1573 = fcmp olt double %1530, 0x3D06849B86A12B9B
  br i1 %.old1573, label %1553, label %1548

1548:                                             ; preds = %1543, %1547
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %1549 unwind label %1539

1549:                                             ; preds = %1548
  %1550 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %145, i32 noundef %1550, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1525, double noundef 5.000000e+00, double noundef 5.000000e+00)
          to label %.critedge1426 unwind label %1551

1551:                                             ; preds = %1549
  %1552 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #6
  br label %1570

1553:                                             ; preds = %1533, %1543, %1547
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %1554 unwind label %1539

1554:                                             ; preds = %1553
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %146, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1525, double noundef %1530, double noundef 5.000000e+00)
          to label %.critedge1426 unwind label %1555

1555:                                             ; preds = %1554
  %1556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #6
  br label %1570

.critedge1426:                                    ; preds = %1554, %1549
  %.sink1661 = phi ptr [ %145, %1549 ], [ %146, %1554 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1661) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #6
  %1557 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1558 = add nsw i32 %1557, 1
  store i32 %1558, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %147) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %148) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %1559 unwind label %1572

1559:                                             ; preds = %.critedge1426
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %148) #6
  %1560 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #6
  %1561 = fadd double %1560, 4.000000e+00
  %1562 = call noundef double @_ZSt3absd(double noundef %1561)
  %1563 = call noundef double @_ZSt3absd(double noundef -4.000000e+00)
  %1564 = fadd double %1563, 1.000000e+00
  %1565 = fdiv double %1562, %1564
  %1566 = fpext double %1560 to x86_fp80
  %1567 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1566)
  br i1 %1567, label %1568, label %1576

1568:                                             ; preds = %1559
  %1569 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC0018000000000000000)
  br i1 %1569, label %1588, label %1576

1570:                                             ; preds = %1555, %1551, %1539
  %.pn1241 = phi { ptr, i32 } [ %1556, %1555 ], [ %1540, %1539 ], [ %1552, %1551 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #6
  br label %1571

1571:                                             ; preds = %1570, %1537
  %.pn1241.pn = phi { ptr, i32 } [ %.pn1241, %1570 ], [ %1538, %1537 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #6
  br label %2486

1572:                                             ; preds = %.critedge1426
  %1573 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %148) #6
  br label %1606

1574:                                             ; preds = %1588, %1583
  %1575 = landingpad { ptr, i32 }
          cleanup
  br label %1605

1576:                                             ; preds = %1568, %1559
  %1577 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1566)
  br i1 %1577, label %1582, label %1578

1578:                                             ; preds = %1576
  %1579 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1566)
  %1580 = fcmp oeq double %1560, -4.000000e+00
  %or.cond1427 = and i1 %1580, %1579
  %1581 = fcmp olt double %1565, 0x3D06849B86A12B9B
  %or.cond1576 = or i1 %1581, %or.cond1427
  br i1 %or.cond1576, label %1588, label %1583

1582:                                             ; preds = %1576
  %.old1575 = fcmp olt double %1565, 0x3D06849B86A12B9B
  br i1 %.old1575, label %1588, label %1583

1583:                                             ; preds = %1578, %1582
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(32) %147)
          to label %1584 unwind label %1574

1584:                                             ; preds = %1583
  %1585 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %149, i32 noundef %1585, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1560, double noundef -4.000000e+00, double noundef -4.200000e+00)
          to label %.critedge1429 unwind label %1586

1586:                                             ; preds = %1584
  %1587 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #6
  br label %1605

1588:                                             ; preds = %1568, %1578, %1582
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull align 8 dereferenceable(32) %147)
          to label %1589 unwind label %1574

1589:                                             ; preds = %1588
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %150, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1560, double noundef %1565, double noundef -4.200000e+00)
          to label %.critedge1429 unwind label %1590

1590:                                             ; preds = %1589
  %1591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #6
  br label %1605

.critedge1429:                                    ; preds = %1589, %1584
  %.sink1662 = phi ptr [ %149, %1584 ], [ %150, %1589 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1662) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #6
  %1592 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1593 = add nsw i32 %1592, 1
  store i32 %1593, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %152) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %1594 unwind label %1607

1594:                                             ; preds = %.critedge1429
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #6
  %1595 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #6
  %1596 = fadd double %1595, 4.000000e+00
  %1597 = call noundef double @_ZSt3absd(double noundef %1596)
  %1598 = call noundef double @_ZSt3absd(double noundef -4.000000e+00)
  %1599 = fadd double %1598, 1.000000e+00
  %1600 = fdiv double %1597, %1599
  %1601 = fpext double %1595 to x86_fp80
  %1602 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1601)
  br i1 %1602, label %1603, label %1611

1603:                                             ; preds = %1594
  %1604 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC0018000000000000000)
  br i1 %1604, label %1623, label %1611

1605:                                             ; preds = %1590, %1586, %1574
  %.pn1244 = phi { ptr, i32 } [ %1591, %1590 ], [ %1575, %1574 ], [ %1587, %1586 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #6
  br label %1606

1606:                                             ; preds = %1605, %1572
  %.pn1244.pn = phi { ptr, i32 } [ %.pn1244, %1605 ], [ %1573, %1572 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #6
  br label %2486

1607:                                             ; preds = %.critedge1429
  %1608 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #6
  br label %1641

1609:                                             ; preds = %1623, %1618
  %1610 = landingpad { ptr, i32 }
          cleanup
  br label %1640

1611:                                             ; preds = %1603, %1594
  %1612 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1601)
  br i1 %1612, label %1617, label %1613

1613:                                             ; preds = %1611
  %1614 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1601)
  %1615 = fcmp oeq double %1595, -4.000000e+00
  %or.cond1430 = and i1 %1615, %1614
  %1616 = fcmp olt double %1600, 0x3D06849B86A12B9B
  %or.cond1578 = or i1 %1616, %or.cond1430
  br i1 %or.cond1578, label %1623, label %1618

1617:                                             ; preds = %1611
  %.old1577 = fcmp olt double %1600, 0x3D06849B86A12B9B
  br i1 %.old1577, label %1623, label %1618

1618:                                             ; preds = %1613, %1617
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1619 unwind label %1609

1619:                                             ; preds = %1618
  %1620 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %153, i32 noundef %1620, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1595, double noundef -4.000000e+00, double noundef -4.700000e+00)
          to label %.critedge1432 unwind label %1621

1621:                                             ; preds = %1619
  %1622 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #6
  br label %1640

1623:                                             ; preds = %1603, %1613, %1617
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1624 unwind label %1609

1624:                                             ; preds = %1623
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %154, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1595, double noundef %1600, double noundef -4.700000e+00)
          to label %.critedge1432 unwind label %1625

1625:                                             ; preds = %1624
  %1626 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #6
  br label %1640

.critedge1432:                                    ; preds = %1624, %1619
  %.sink1663 = phi ptr [ %153, %1619 ], [ %154, %1624 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1663) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #6
  %1627 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1628 = add nsw i32 %1627, 1
  store i32 %1628, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %155) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %156) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %1629 unwind label %1642

1629:                                             ; preds = %.critedge1432
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #6
  %1630 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #6
  %1631 = fadd double %1630, 5.000000e+00
  %1632 = call noundef double @_ZSt3absd(double noundef %1631)
  %1633 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %1634 = fadd double %1633, 1.000000e+00
  %1635 = fdiv double %1632, %1634
  %1636 = fpext double %1630 to x86_fp80
  %1637 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1636)
  br i1 %1637, label %1638, label %1646

1638:                                             ; preds = %1629
  %1639 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %1639, label %1658, label %1646

1640:                                             ; preds = %1625, %1621, %1609
  %.pn1247 = phi { ptr, i32 } [ %1626, %1625 ], [ %1610, %1609 ], [ %1622, %1621 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #6
  br label %1641

1641:                                             ; preds = %1640, %1607
  %.pn1247.pn = phi { ptr, i32 } [ %.pn1247, %1640 ], [ %1608, %1607 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #6
  br label %2486

1642:                                             ; preds = %.critedge1432
  %1643 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #6
  br label %1676

1644:                                             ; preds = %1658, %1653
  %1645 = landingpad { ptr, i32 }
          cleanup
  br label %1675

1646:                                             ; preds = %1638, %1629
  %1647 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1636)
  br i1 %1647, label %1652, label %1648

1648:                                             ; preds = %1646
  %1649 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1636)
  %1650 = fcmp oeq double %1630, -5.000000e+00
  %or.cond1433 = and i1 %1650, %1649
  %1651 = fcmp olt double %1635, 0x3D06849B86A12B9B
  %or.cond1580 = or i1 %1651, %or.cond1433
  br i1 %or.cond1580, label %1658, label %1653

1652:                                             ; preds = %1646
  %.old1579 = fcmp olt double %1635, 0x3D06849B86A12B9B
  br i1 %.old1579, label %1658, label %1653

1653:                                             ; preds = %1648, %1652
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull align 8 dereferenceable(32) %155)
          to label %1654 unwind label %1644

1654:                                             ; preds = %1653
  %1655 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %157, i32 noundef %1655, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1630, double noundef -5.000000e+00, double noundef -5.000000e+00)
          to label %.critedge1435 unwind label %1656

1656:                                             ; preds = %1654
  %1657 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #6
  br label %1675

1658:                                             ; preds = %1638, %1648, %1652
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 8 dereferenceable(32) %155)
          to label %1659 unwind label %1644

1659:                                             ; preds = %1658
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %158, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1630, double noundef %1635, double noundef -5.000000e+00)
          to label %.critedge1435 unwind label %1660

1660:                                             ; preds = %1659
  %1661 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #6
  br label %1675

.critedge1435:                                    ; preds = %1659, %1654
  %.sink1664 = phi ptr [ %157, %1654 ], [ %158, %1659 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1664) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #6
  %1662 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1663 = add nsw i32 %1662, 1
  store i32 %1663, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %159) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %160) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %160)
          to label %1664 unwind label %1677

1664:                                             ; preds = %.critedge1435
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #6
  %1665 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #6
  %1666 = fadd double %1665, -4.200000e+33
  %1667 = call noundef double @_ZSt3absd(double noundef %1666)
  %1668 = call noundef double @_ZSt3absd(double noundef 4.200000e+33)
  %1669 = fadd double %1668, 1.000000e+00
  %1670 = fdiv double %1667, %1669
  %1671 = fpext double %1665 to x86_fp80
  %1672 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1671)
  br i1 %1672, label %1673, label %1681

1673:                                             ; preds = %1664
  %1674 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK406ECF1373ECB903F000)
  br i1 %1674, label %1693, label %1681

1675:                                             ; preds = %1660, %1656, %1644
  %.pn1250 = phi { ptr, i32 } [ %1661, %1660 ], [ %1645, %1644 ], [ %1657, %1656 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #6
  br label %1676

1676:                                             ; preds = %1675, %1642
  %.pn1250.pn = phi { ptr, i32 } [ %.pn1250, %1675 ], [ %1643, %1642 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #6
  br label %2486

1677:                                             ; preds = %.critedge1435
  %1678 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #6
  br label %1711

1679:                                             ; preds = %1693, %1688
  %1680 = landingpad { ptr, i32 }
          cleanup
  br label %1710

1681:                                             ; preds = %1673, %1664
  %1682 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1671)
  br i1 %1682, label %1687, label %1683

1683:                                             ; preds = %1681
  %1684 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1671)
  %1685 = fcmp oeq double %1665, 4.200000e+33
  %or.cond1436 = and i1 %1685, %1684
  %1686 = fcmp olt double %1670, 0x3D06849B86A12B9B
  %or.cond1582 = or i1 %1686, %or.cond1436
  br i1 %or.cond1582, label %1693, label %1688

1687:                                             ; preds = %1681
  %.old1581 = fcmp olt double %1670, 0x3D06849B86A12B9B
  br i1 %.old1581, label %1693, label %1688

1688:                                             ; preds = %1683, %1687
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull align 8 dereferenceable(32) %159)
          to label %1689 unwind label %1679

1689:                                             ; preds = %1688
  %1690 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %161, i32 noundef %1690, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1665, double noundef 4.200000e+33, double noundef 4.200000e+33)
          to label %.critedge1438 unwind label %1691

1691:                                             ; preds = %1689
  %1692 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #6
  br label %1710

1693:                                             ; preds = %1673, %1683, %1687
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull align 8 dereferenceable(32) %159)
          to label %1694 unwind label %1679

1694:                                             ; preds = %1693
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %162, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1665, double noundef %1670, double noundef 4.200000e+33)
          to label %.critedge1438 unwind label %1695

1695:                                             ; preds = %1694
  %1696 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #6
  br label %1710

.critedge1438:                                    ; preds = %1694, %1689
  %.sink1665 = phi ptr [ %161, %1689 ], [ %162, %1694 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1665) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #6
  %1697 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1698 = add nsw i32 %1697, 1
  store i32 %1698, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %163) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %164) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %1699 unwind label %1712

1699:                                             ; preds = %.critedge1438
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %164) #6
  %1700 = call noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #6
  %1701 = fadd double %1700, 4.200000e+33
  %1702 = call noundef double @_ZSt3absd(double noundef %1701)
  %1703 = call noundef double @_ZSt3absd(double noundef -4.200000e+33)
  %1704 = fadd double %1703, 1.000000e+00
  %1705 = fdiv double %1702, %1704
  %1706 = fpext double %1700 to x86_fp80
  %1707 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1706)
  br i1 %1707, label %1708, label %1716

1708:                                             ; preds = %1699
  %1709 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC06ECF1373ECB903F000)
  br i1 %1709, label %1728, label %1716

1710:                                             ; preds = %1695, %1691, %1679
  %.pn1253 = phi { ptr, i32 } [ %1696, %1695 ], [ %1680, %1679 ], [ %1692, %1691 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #6
  br label %1711

1711:                                             ; preds = %1710, %1677
  %.pn1253.pn = phi { ptr, i32 } [ %.pn1253, %1710 ], [ %1678, %1677 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #6
  br label %2486

1712:                                             ; preds = %.critedge1438
  %1713 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %164) #6
  br label %1750

1714:                                             ; preds = %1728, %1723
  %1715 = landingpad { ptr, i32 }
          cleanup
  br label %1749

1716:                                             ; preds = %1708, %1699
  %1717 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1706)
  br i1 %1717, label %1722, label %1718

1718:                                             ; preds = %1716
  %1719 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1706)
  %1720 = fcmp oeq double %1700, -4.200000e+33
  %or.cond1439 = and i1 %1720, %1719
  %1721 = fcmp olt double %1705, 0x3D06849B86A12B9B
  %or.cond1584 = or i1 %1721, %or.cond1439
  br i1 %or.cond1584, label %1728, label %1723

1722:                                             ; preds = %1716
  %.old1583 = fcmp olt double %1705, 0x3D06849B86A12B9B
  br i1 %.old1583, label %1728, label %1723

1723:                                             ; preds = %1718, %1722
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull align 8 dereferenceable(32) %163)
          to label %1724 unwind label %1714

1724:                                             ; preds = %1723
  %1725 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %165, i32 noundef %1725, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1700, double noundef -4.200000e+33, double noundef -4.200000e+33)
          to label %.critedge1441 unwind label %1726

1726:                                             ; preds = %1724
  %1727 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #6
  br label %1749

1728:                                             ; preds = %1708, %1718, %1722
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %163)
          to label %1729 unwind label %1714

1729:                                             ; preds = %1728
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %166, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1700, double noundef %1705, double noundef -4.200000e+33)
          to label %.critedge1441 unwind label %1730

1730:                                             ; preds = %1729
  %1731 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #6
  br label %1749

.critedge1441:                                    ; preds = %1729, %1724
  %.sink1666 = phi ptr [ %165, %1724 ], [ %166, %1729 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1666) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #6
  %1732 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1733 = add nsw i32 %1732, 1
  store i32 %1733, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %167) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %168) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %168)
          to label %1734 unwind label %1751

1734:                                             ; preds = %.critedge1441
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %168) #6
  %1735 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %1736 = call noundef float @_ZN4gcem5truncIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %1735) #6
  %1737 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %1738 = call noundef float @_ZSt5truncf(float noundef %1737)
  %1739 = fsub float %1736, %1738
  %1740 = call noundef float @_ZSt3absf(float noundef %1739)
  %1741 = call noundef float @_ZSt3absf(float noundef %1738)
  %1742 = fadd float %1741, 1.000000e+00
  %1743 = fdiv float %1740, %1742
  %1744 = fpext float %1736 to x86_fp80
  %1745 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1744)
  br i1 %1745, label %1746, label %1755

1746:                                             ; preds = %1734
  %1747 = fpext float %1738 to x86_fp80
  %1748 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1747)
  br i1 %1748, label %1769, label %1755

1749:                                             ; preds = %1730, %1726, %1714
  %.pn1256 = phi { ptr, i32 } [ %1731, %1730 ], [ %1715, %1714 ], [ %1727, %1726 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #6
  br label %1750

1750:                                             ; preds = %1749, %1712
  %.pn1256.pn = phi { ptr, i32 } [ %.pn1256, %1749 ], [ %1713, %1712 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #6
  br label %2486

1751:                                             ; preds = %.critedge1441
  %1752 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %168) #6
  br label %1792

1753:                                             ; preds = %1769, %1763
  %1754 = landingpad { ptr, i32 }
          cleanup
  br label %1791

1755:                                             ; preds = %1746, %1734
  %1756 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1744)
  br i1 %1756, label %1762, label %1757

1757:                                             ; preds = %1755
  %1758 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1744)
  %1759 = fcmp oeq float %1736, %1738
  %or.cond1442 = and i1 %1759, %1758
  %1760 = fpext float %1743 to double
  %1761 = fcmp olt double %1760, 0x3D06849B86A12B9B
  %or.cond1587 = or i1 %1761, %or.cond1442
  br i1 %or.cond1587, label %1769, label %1763

1762:                                             ; preds = %1755
  %.old1585 = fpext float %1743 to double
  %.old1586 = fcmp olt double %.old1585, 0x3D06849B86A12B9B
  br i1 %.old1586, label %1769, label %1763

1763:                                             ; preds = %1757, %1762
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull align 8 dereferenceable(32) %167)
          to label %1764 unwind label %1753

1764:                                             ; preds = %1763
  %1765 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1766 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %169, i32 noundef %1765, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %1736, float noundef %1738, float noundef %1766)
          to label %.critedge1444 unwind label %1767

1767:                                             ; preds = %1764
  %1768 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #6
  br label %1791

1769:                                             ; preds = %1746, %1757, %1762
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef nonnull align 8 dereferenceable(32) %167)
          to label %1770 unwind label %1753

1770:                                             ; preds = %1769
  %1771 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %170, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %1736, float noundef %1743, float noundef %1771)
          to label %.critedge1444 unwind label %1772

1772:                                             ; preds = %1770
  %1773 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #6
  br label %1791

.critedge1444:                                    ; preds = %1770, %1764
  %.sink1667 = phi ptr [ %169, %1764 ], [ %170, %1770 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1667) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #6
  %1774 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1775 = add nsw i32 %1774, 1
  store i32 %1775, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %172) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %172)
          to label %1776 unwind label %1793

1776:                                             ; preds = %.critedge1444
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #6
  %1777 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1778 = fneg x86_fp80 %1777
  %1779 = call noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1778) #6
  %1780 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1781 = fneg x86_fp80 %1780
  %1782 = call noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef %1781)
  %1783 = fsub x86_fp80 %1779, %1782
  %1784 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1783)
  %1785 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1782)
  %1786 = fadd x86_fp80 %1785, 0xK3FFF8000000000000000
  %1787 = fdiv x86_fp80 %1784, %1786
  %1788 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1779)
  br i1 %1788, label %1789, label %1797

1789:                                             ; preds = %1776
  %1790 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1782)
  br i1 %1790, label %1811, label %1797

1791:                                             ; preds = %1772, %1767, %1753
  %.pn1259 = phi { ptr, i32 } [ %1773, %1772 ], [ %1754, %1753 ], [ %1768, %1767 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  br label %1792

1792:                                             ; preds = %1791, %1751
  %.pn1259.pn = phi { ptr, i32 } [ %.pn1259, %1791 ], [ %1752, %1751 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #6
  br label %2486

1793:                                             ; preds = %.critedge1444
  %1794 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #6
  br label %1833

1795:                                             ; preds = %1811, %1804
  %1796 = landingpad { ptr, i32 }
          cleanup
  br label %1832

1797:                                             ; preds = %1789, %1776
  %1798 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1779)
  br i1 %1798, label %1803, label %1799

1799:                                             ; preds = %1797
  %1800 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1779)
  %1801 = fcmp oeq x86_fp80 %1779, %1782
  %or.cond1445 = and i1 %1801, %1800
  %1802 = fcmp olt x86_fp80 %1787, 0xK3FD0B424DC35095CD800
  %or.cond1589 = or i1 %1802, %or.cond1445
  br i1 %or.cond1589, label %1811, label %1804

1803:                                             ; preds = %1797
  %.old1588 = fcmp olt x86_fp80 %1787, 0xK3FD0B424DC35095CD800
  br i1 %.old1588, label %1811, label %1804

1804:                                             ; preds = %1799, %1803
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef nonnull align 8 dereferenceable(32) %171)
          to label %1805 unwind label %1795

1805:                                             ; preds = %1804
  %1806 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1807 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1808 = fneg x86_fp80 %1807
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %173, i32 noundef %1806, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1779, x86_fp80 noundef %1782, x86_fp80 noundef %1808)
          to label %.critedge1447 unwind label %1809

1809:                                             ; preds = %1805
  %1810 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #6
  br label %1832

1811:                                             ; preds = %1789, %1799, %1803
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull align 8 dereferenceable(32) %171)
          to label %1812 unwind label %1795

1812:                                             ; preds = %1811
  %1813 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1814 = fneg x86_fp80 %1813
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %174, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1779, x86_fp80 noundef %1787, x86_fp80 noundef %1814)
          to label %.critedge1447 unwind label %1815

1815:                                             ; preds = %1812
  %1816 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #6
  br label %1832

.critedge1447:                                    ; preds = %1812, %1805
  %.sink1668 = phi ptr [ %173, %1805 ], [ %174, %1812 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1668) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #6
  %1817 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1818 = add nsw i32 %1817, 1
  store i32 %1818, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %175) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %176) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %175, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %176)
          to label %1819 unwind label %1834

1819:                                             ; preds = %.critedge1447
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %176) #6
  %1820 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1821 = call noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1820) #6
  %1822 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %1823 = call noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef %1822)
  %1824 = fsub x86_fp80 %1821, %1823
  %1825 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1824)
  %1826 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1823)
  %1827 = fadd x86_fp80 %1826, 0xK3FFF8000000000000000
  %1828 = fdiv x86_fp80 %1825, %1827
  %1829 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1821)
  br i1 %1829, label %1830, label %1838

1830:                                             ; preds = %1819
  %1831 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1823)
  br i1 %1831, label %1851, label %1838

1832:                                             ; preds = %1815, %1809, %1795
  %.pn1262 = phi { ptr, i32 } [ %1816, %1815 ], [ %1796, %1795 ], [ %1810, %1809 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #6
  br label %1833

1833:                                             ; preds = %1832, %1793
  %.pn1262.pn = phi { ptr, i32 } [ %.pn1262, %1832 ], [ %1794, %1793 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #6
  br label %2486

1834:                                             ; preds = %.critedge1447
  %1835 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %176) #6
  br label %1872

1836:                                             ; preds = %1851, %1845
  %1837 = landingpad { ptr, i32 }
          cleanup
  br label %1871

1838:                                             ; preds = %1830, %1819
  %1839 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1821)
  br i1 %1839, label %1844, label %1840

1840:                                             ; preds = %1838
  %1841 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1821)
  %1842 = fcmp oeq x86_fp80 %1821, %1823
  %or.cond1448 = and i1 %1842, %1841
  %1843 = fcmp olt x86_fp80 %1828, 0xK3FD0B424DC35095CD800
  %or.cond1591 = or i1 %1843, %or.cond1448
  br i1 %or.cond1591, label %1851, label %1845

1844:                                             ; preds = %1838
  %.old1590 = fcmp olt x86_fp80 %1828, 0xK3FD0B424DC35095CD800
  br i1 %.old1590, label %1851, label %1845

1845:                                             ; preds = %1840, %1844
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef nonnull align 8 dereferenceable(32) %175)
          to label %1846 unwind label %1836

1846:                                             ; preds = %1845
  %1847 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1848 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %177, i32 noundef %1847, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1821, x86_fp80 noundef %1823, x86_fp80 noundef %1848)
          to label %.critedge1450 unwind label %1849

1849:                                             ; preds = %1846
  %1850 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #6
  br label %1871

1851:                                             ; preds = %1830, %1840, %1844
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %175)
          to label %1852 unwind label %1836

1852:                                             ; preds = %1851
  %1853 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %178, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1821, x86_fp80 noundef %1828, x86_fp80 noundef %1853)
          to label %.critedge1450 unwind label %1854

1854:                                             ; preds = %1852
  %1855 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #6
  br label %1871

.critedge1450:                                    ; preds = %1852, %1846
  %.sink1669 = phi ptr [ %177, %1846 ], [ %178, %1852 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1669) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #6
  %1856 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1857 = add nsw i32 %1856, 1
  store i32 %1857, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %179) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %180) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %180)
          to label %1858 unwind label %1873

1858:                                             ; preds = %.critedge1450
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %180) #6
  %1859 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %1860 = call noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %1859) #6
  %1861 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %1862 = call noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef %1861)
  %1863 = fsub x86_fp80 %1860, %1862
  %1864 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1863)
  %1865 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1862)
  %1866 = fadd x86_fp80 %1865, 0xK3FFF8000000000000000
  %1867 = fdiv x86_fp80 %1864, %1866
  %1868 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1860)
  br i1 %1868, label %1869, label %1877

1869:                                             ; preds = %1858
  %1870 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1862)
  br i1 %1870, label %1890, label %1877

1871:                                             ; preds = %1854, %1849, %1836
  %.pn1265 = phi { ptr, i32 } [ %1855, %1854 ], [ %1837, %1836 ], [ %1850, %1849 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #6
  br label %1872

1872:                                             ; preds = %1871, %1834
  %.pn1265.pn = phi { ptr, i32 } [ %.pn1265, %1871 ], [ %1835, %1834 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #6
  br label %2486

1873:                                             ; preds = %.critedge1450
  %1874 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %180) #6
  br label %1908

1875:                                             ; preds = %1890, %1884
  %1876 = landingpad { ptr, i32 }
          cleanup
  br label %1907

1877:                                             ; preds = %1869, %1858
  %1878 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1860)
  br i1 %1878, label %1883, label %1879

1879:                                             ; preds = %1877
  %1880 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1860)
  %1881 = fcmp oeq x86_fp80 %1860, %1862
  %or.cond1451 = and i1 %1881, %1880
  %1882 = fcmp olt x86_fp80 %1867, 0xK3FD0B424DC35095CD800
  %or.cond1593 = or i1 %1882, %or.cond1451
  br i1 %or.cond1593, label %1890, label %1884

1883:                                             ; preds = %1877
  %.old1592 = fcmp olt x86_fp80 %1867, 0xK3FD0B424DC35095CD800
  br i1 %.old1592, label %1890, label %1884

1884:                                             ; preds = %1879, %1883
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %179)
          to label %1885 unwind label %1875

1885:                                             ; preds = %1884
  %1886 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1887 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %181, i32 noundef %1886, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1860, x86_fp80 noundef %1862, x86_fp80 noundef %1887)
          to label %.critedge1453 unwind label %1888

1888:                                             ; preds = %1885
  %1889 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #6
  br label %1907

1890:                                             ; preds = %1869, %1879, %1883
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 8 dereferenceable(32) %179)
          to label %1891 unwind label %1875

1891:                                             ; preds = %1890
  %1892 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %182, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1860, x86_fp80 noundef %1867, x86_fp80 noundef %1892)
          to label %.critedge1453 unwind label %1893

1893:                                             ; preds = %1891
  %1894 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #6
  br label %1907

.critedge1453:                                    ; preds = %1891, %1885
  %.sink1670 = phi ptr [ %181, %1885 ], [ %182, %1891 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1670) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #6
  %1895 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1896 = add nsw i32 %1895, 1
  store i32 %1896, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %183) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %184) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %1897 unwind label %1909

1897:                                             ; preds = %.critedge1453
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %184) #6
  %1898 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #6
  %1899 = call noundef double @_ZSt3absd(double noundef %1898)
  %1900 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %1901 = fadd double %1900, 1.000000e+00
  %1902 = fdiv double %1899, %1901
  %1903 = fpext double %1898 to x86_fp80
  %1904 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1903)
  br i1 %1904, label %1905, label %1913

1905:                                             ; preds = %1897
  %1906 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %1906, label %1925, label %1913

1907:                                             ; preds = %1893, %1888, %1875
  %.pn1268 = phi { ptr, i32 } [ %1894, %1893 ], [ %1876, %1875 ], [ %1889, %1888 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #6
  br label %1908

1908:                                             ; preds = %1907, %1873
  %.pn1268.pn = phi { ptr, i32 } [ %.pn1268, %1907 ], [ %1874, %1873 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #6
  br label %2486

1909:                                             ; preds = %.critedge1453
  %1910 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %184) #6
  br label %1943

1911:                                             ; preds = %1925, %1920
  %1912 = landingpad { ptr, i32 }
          cleanup
  br label %1942

1913:                                             ; preds = %1905, %1897
  %1914 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1903)
  br i1 %1914, label %1919, label %1915

1915:                                             ; preds = %1913
  %1916 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1903)
  %1917 = fcmp oeq double %1898, 0.000000e+00
  %or.cond1454 = and i1 %1917, %1916
  %1918 = fcmp olt double %1902, 0x3D06849B86A12B9B
  %or.cond1595 = or i1 %1918, %or.cond1454
  br i1 %or.cond1595, label %1925, label %1920

1919:                                             ; preds = %1913
  %.old1594 = fcmp olt double %1902, 0x3D06849B86A12B9B
  br i1 %.old1594, label %1925, label %1920

1920:                                             ; preds = %1915, %1919
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef nonnull align 8 dereferenceable(32) %183)
          to label %1921 unwind label %1911

1921:                                             ; preds = %1920
  %1922 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %185, i32 noundef %1922, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1898, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge1456 unwind label %1923

1923:                                             ; preds = %1921
  %1924 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #6
  br label %1942

1925:                                             ; preds = %1905, %1915, %1919
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 8 dereferenceable(32) %183)
          to label %1926 unwind label %1911

1926:                                             ; preds = %1925
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %186, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1898, double noundef %1902, double noundef 0.000000e+00)
          to label %.critedge1456 unwind label %1927

1927:                                             ; preds = %1926
  %1928 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #6
  br label %1942

.critedge1456:                                    ; preds = %1926, %1921
  %.sink1671 = phi ptr [ %185, %1921 ], [ %186, %1926 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1671) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #6
  %1929 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1930 = add nsw i32 %1929, 1
  store i32 %1930, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %187) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %188) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %188)
          to label %1931 unwind label %1944

1931:                                             ; preds = %.critedge1456
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %188) #6
  %1932 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #6
  %1933 = fadd double %1932, 0.000000e+00
  %1934 = call noundef double @_ZSt3absd(double noundef %1933)
  %1935 = call noundef double @_ZSt3absd(double noundef -0.000000e+00)
  %1936 = fadd double %1935, 1.000000e+00
  %1937 = fdiv double %1934, %1936
  %1938 = fpext double %1932 to x86_fp80
  %1939 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1938)
  br i1 %1939, label %1940, label %1948

1940:                                             ; preds = %1931
  %1941 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK80000000000000000000)
  br i1 %1941, label %1960, label %1948

1942:                                             ; preds = %1927, %1923, %1911
  %.pn1271 = phi { ptr, i32 } [ %1928, %1927 ], [ %1912, %1911 ], [ %1924, %1923 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #6
  br label %1943

1943:                                             ; preds = %1942, %1909
  %.pn1271.pn = phi { ptr, i32 } [ %.pn1271, %1942 ], [ %1910, %1909 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #6
  br label %2486

1944:                                             ; preds = %.critedge1456
  %1945 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %188) #6
  br label %1978

1946:                                             ; preds = %1960, %1955
  %1947 = landingpad { ptr, i32 }
          cleanup
  br label %1977

1948:                                             ; preds = %1940, %1931
  %1949 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1938)
  br i1 %1949, label %1954, label %1950

1950:                                             ; preds = %1948
  %1951 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1938)
  %1952 = fcmp oeq double %1932, 0.000000e+00
  %or.cond1457 = and i1 %1952, %1951
  %1953 = fcmp olt double %1937, 0x3D06849B86A12B9B
  %or.cond1597 = or i1 %1953, %or.cond1457
  br i1 %or.cond1597, label %1960, label %1955

1954:                                             ; preds = %1948
  %.old1596 = fcmp olt double %1937, 0x3D06849B86A12B9B
  br i1 %.old1596, label %1960, label %1955

1955:                                             ; preds = %1950, %1954
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef nonnull align 8 dereferenceable(32) %187)
          to label %1956 unwind label %1946

1956:                                             ; preds = %1955
  %1957 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %189, i32 noundef %1957, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1932, double noundef -0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge1459 unwind label %1958

1958:                                             ; preds = %1956
  %1959 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #6
  br label %1977

1960:                                             ; preds = %1940, %1950, %1954
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %187)
          to label %1961 unwind label %1946

1961:                                             ; preds = %1960
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %190, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1932, double noundef %1937, double noundef -0.000000e+00)
          to label %.critedge1459 unwind label %1962

1962:                                             ; preds = %1961
  %1963 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #6
  br label %1977

.critedge1459:                                    ; preds = %1961, %1956
  %.sink1672 = phi ptr [ %189, %1956 ], [ %190, %1961 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1672) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #6
  %1964 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %191) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %192) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %191, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %192)
          to label %1966 unwind label %1979

1966:                                             ; preds = %.critedge1459
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %192) #6
  %1967 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+00) #6
  %1968 = fadd double %1967, -4.000000e+00
  %1969 = call noundef double @_ZSt3absd(double noundef %1968)
  %1970 = call noundef double @_ZSt3absd(double noundef 4.000000e+00)
  %1971 = fadd double %1970, 1.000000e+00
  %1972 = fdiv double %1969, %1971
  %1973 = fpext double %1967 to x86_fp80
  %1974 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1973)
  br i1 %1974, label %1975, label %1983

1975:                                             ; preds = %1966
  %1976 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK40018000000000000000)
  br i1 %1976, label %1995, label %1983

1977:                                             ; preds = %1962, %1958, %1946
  %.pn1274 = phi { ptr, i32 } [ %1963, %1962 ], [ %1947, %1946 ], [ %1959, %1958 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #6
  br label %1978

1978:                                             ; preds = %1977, %1944
  %.pn1274.pn = phi { ptr, i32 } [ %.pn1274, %1977 ], [ %1945, %1944 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #6
  br label %2486

1979:                                             ; preds = %.critedge1459
  %1980 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %192) #6
  br label %2013

1981:                                             ; preds = %1995, %1990
  %1982 = landingpad { ptr, i32 }
          cleanup
  br label %2012

1983:                                             ; preds = %1975, %1966
  %1984 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1973)
  br i1 %1984, label %1989, label %1985

1985:                                             ; preds = %1983
  %1986 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1973)
  %1987 = fcmp oeq double %1967, 4.000000e+00
  %or.cond1460 = and i1 %1987, %1986
  %1988 = fcmp olt double %1972, 0x3D06849B86A12B9B
  %or.cond1599 = or i1 %1988, %or.cond1460
  br i1 %or.cond1599, label %1995, label %1990

1989:                                             ; preds = %1983
  %.old1598 = fcmp olt double %1972, 0x3D06849B86A12B9B
  br i1 %.old1598, label %1995, label %1990

1990:                                             ; preds = %1985, %1989
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull align 8 dereferenceable(32) %191)
          to label %1991 unwind label %1981

1991:                                             ; preds = %1990
  %1992 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %193, i32 noundef %1992, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1967, double noundef 4.000000e+00, double noundef 4.200000e+00)
          to label %.critedge1462 unwind label %1993

1993:                                             ; preds = %1991
  %1994 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #6
  br label %2012

1995:                                             ; preds = %1975, %1985, %1989
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull align 8 dereferenceable(32) %191)
          to label %1996 unwind label %1981

1996:                                             ; preds = %1995
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %194, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1967, double noundef %1972, double noundef 4.200000e+00)
          to label %.critedge1462 unwind label %1997

1997:                                             ; preds = %1996
  %1998 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #6
  br label %2012

.critedge1462:                                    ; preds = %1996, %1991
  %.sink1673 = phi ptr [ %193, %1991 ], [ %194, %1996 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1673) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #6
  %1999 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2000 = add nsw i32 %1999, 1
  store i32 %2000, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %195) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %196) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %196)
          to label %2001 unwind label %2014

2001:                                             ; preds = %.critedge1462
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #6
  %2002 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.500000e+00) #6
  %2003 = fadd double %2002, -5.000000e+00
  %2004 = call noundef double @_ZSt3absd(double noundef %2003)
  %2005 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %2006 = fadd double %2005, 1.000000e+00
  %2007 = fdiv double %2004, %2006
  %2008 = fpext double %2002 to x86_fp80
  %2009 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2008)
  br i1 %2009, label %2010, label %2018

2010:                                             ; preds = %2001
  %2011 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %2011, label %2030, label %2018

2012:                                             ; preds = %1997, %1993, %1981
  %.pn1277 = phi { ptr, i32 } [ %1998, %1997 ], [ %1982, %1981 ], [ %1994, %1993 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #6
  br label %2013

2013:                                             ; preds = %2012, %1979
  %.pn1277.pn = phi { ptr, i32 } [ %.pn1277, %2012 ], [ %1980, %1979 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #6
  br label %2486

2014:                                             ; preds = %.critedge1462
  %2015 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #6
  br label %2048

2016:                                             ; preds = %2030, %2025
  %2017 = landingpad { ptr, i32 }
          cleanup
  br label %2047

2018:                                             ; preds = %2010, %2001
  %2019 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2008)
  br i1 %2019, label %2024, label %2020

2020:                                             ; preds = %2018
  %2021 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2008)
  %2022 = fcmp oeq double %2002, 5.000000e+00
  %or.cond1463 = and i1 %2022, %2021
  %2023 = fcmp olt double %2007, 0x3D06849B86A12B9B
  %or.cond1601 = or i1 %2023, %or.cond1463
  br i1 %or.cond1601, label %2030, label %2025

2024:                                             ; preds = %2018
  %.old1600 = fcmp olt double %2007, 0x3D06849B86A12B9B
  br i1 %.old1600, label %2030, label %2025

2025:                                             ; preds = %2020, %2024
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %195)
          to label %2026 unwind label %2016

2026:                                             ; preds = %2025
  %2027 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %197, i32 noundef %2027, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2002, double noundef 5.000000e+00, double noundef 4.500000e+00)
          to label %.critedge1465 unwind label %2028

2028:                                             ; preds = %2026
  %2029 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #6
  br label %2047

2030:                                             ; preds = %2010, %2020, %2024
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull align 8 dereferenceable(32) %195)
          to label %2031 unwind label %2016

2031:                                             ; preds = %2030
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %198, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2002, double noundef %2007, double noundef 4.500000e+00)
          to label %.critedge1465 unwind label %2032

2032:                                             ; preds = %2031
  %2033 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #6
  br label %2047

.critedge1465:                                    ; preds = %2031, %2026
  %.sink1674 = phi ptr [ %197, %2026 ], [ %198, %2031 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1674) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #6
  %2034 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2035 = add nsw i32 %2034, 1
  store i32 %2035, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %199) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %200) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %200)
          to label %2036 unwind label %2049

2036:                                             ; preds = %.critedge1465
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %200) #6
  %2037 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.700000e+00) #6
  %2038 = fadd double %2037, -5.000000e+00
  %2039 = call noundef double @_ZSt3absd(double noundef %2038)
  %2040 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %2041 = fadd double %2040, 1.000000e+00
  %2042 = fdiv double %2039, %2041
  %2043 = fpext double %2037 to x86_fp80
  %2044 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2043)
  br i1 %2044, label %2045, label %2053

2045:                                             ; preds = %2036
  %2046 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %2046, label %2065, label %2053

2047:                                             ; preds = %2032, %2028, %2016
  %.pn1280 = phi { ptr, i32 } [ %2033, %2032 ], [ %2017, %2016 ], [ %2029, %2028 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #6
  br label %2048

2048:                                             ; preds = %2047, %2014
  %.pn1280.pn = phi { ptr, i32 } [ %.pn1280, %2047 ], [ %2015, %2014 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #6
  br label %2486

2049:                                             ; preds = %.critedge1465
  %2050 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %200) #6
  br label %2083

2051:                                             ; preds = %2065, %2060
  %2052 = landingpad { ptr, i32 }
          cleanup
  br label %2082

2053:                                             ; preds = %2045, %2036
  %2054 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2043)
  br i1 %2054, label %2059, label %2055

2055:                                             ; preds = %2053
  %2056 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2043)
  %2057 = fcmp oeq double %2037, 5.000000e+00
  %or.cond1466 = and i1 %2057, %2056
  %2058 = fcmp olt double %2042, 0x3D06849B86A12B9B
  %or.cond1603 = or i1 %2058, %or.cond1466
  br i1 %or.cond1603, label %2065, label %2060

2059:                                             ; preds = %2053
  %.old1602 = fcmp olt double %2042, 0x3D06849B86A12B9B
  br i1 %.old1602, label %2065, label %2060

2060:                                             ; preds = %2055, %2059
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef nonnull align 8 dereferenceable(32) %199)
          to label %2061 unwind label %2051

2061:                                             ; preds = %2060
  %2062 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %201, i32 noundef %2062, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2037, double noundef 5.000000e+00, double noundef 4.700000e+00)
          to label %.critedge1468 unwind label %2063

2063:                                             ; preds = %2061
  %2064 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #6
  br label %2082

2065:                                             ; preds = %2045, %2055, %2059
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull align 8 dereferenceable(32) %199)
          to label %2066 unwind label %2051

2066:                                             ; preds = %2065
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %202, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2037, double noundef %2042, double noundef 4.700000e+00)
          to label %.critedge1468 unwind label %2067

2067:                                             ; preds = %2066
  %2068 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #6
  br label %2082

.critedge1468:                                    ; preds = %2066, %2061
  %.sink1675 = phi ptr [ %201, %2061 ], [ %202, %2066 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1675) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #6
  %2069 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2070 = add nsw i32 %2069, 1
  store i32 %2070, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %204) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %2071 unwind label %2084

2071:                                             ; preds = %.critedge1468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #6
  %2072 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 5.000000e+00) #6
  %2073 = fadd double %2072, -5.000000e+00
  %2074 = call noundef double @_ZSt3absd(double noundef %2073)
  %2075 = call noundef double @_ZSt3absd(double noundef 5.000000e+00)
  %2076 = fadd double %2075, 1.000000e+00
  %2077 = fdiv double %2074, %2076
  %2078 = fpext double %2072 to x86_fp80
  %2079 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2078)
  br i1 %2079, label %2080, label %2088

2080:                                             ; preds = %2071
  %2081 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK4001A000000000000000)
  br i1 %2081, label %2100, label %2088

2082:                                             ; preds = %2067, %2063, %2051
  %.pn1283 = phi { ptr, i32 } [ %2068, %2067 ], [ %2052, %2051 ], [ %2064, %2063 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #6
  br label %2083

2083:                                             ; preds = %2082, %2049
  %.pn1283.pn = phi { ptr, i32 } [ %.pn1283, %2082 ], [ %2050, %2049 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #6
  br label %2486

2084:                                             ; preds = %.critedge1468
  %2085 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #6
  br label %2118

2086:                                             ; preds = %2100, %2095
  %2087 = landingpad { ptr, i32 }
          cleanup
  br label %2117

2088:                                             ; preds = %2080, %2071
  %2089 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2078)
  br i1 %2089, label %2094, label %2090

2090:                                             ; preds = %2088
  %2091 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2078)
  %2092 = fcmp oeq double %2072, 5.000000e+00
  %or.cond1469 = and i1 %2092, %2091
  %2093 = fcmp olt double %2077, 0x3D06849B86A12B9B
  %or.cond1605 = or i1 %2093, %or.cond1469
  br i1 %or.cond1605, label %2100, label %2095

2094:                                             ; preds = %2088
  %.old1604 = fcmp olt double %2077, 0x3D06849B86A12B9B
  br i1 %.old1604, label %2100, label %2095

2095:                                             ; preds = %2090, %2094
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %203)
          to label %2096 unwind label %2086

2096:                                             ; preds = %2095
  %2097 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %205, i32 noundef %2097, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2072, double noundef 5.000000e+00, double noundef 5.000000e+00)
          to label %.critedge1471 unwind label %2098

2098:                                             ; preds = %2096
  %2099 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #6
  br label %2117

2100:                                             ; preds = %2080, %2090, %2094
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(32) %203)
          to label %2101 unwind label %2086

2101:                                             ; preds = %2100
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %206, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2072, double noundef %2077, double noundef 5.000000e+00)
          to label %.critedge1471 unwind label %2102

2102:                                             ; preds = %2101
  %2103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #6
  br label %2117

.critedge1471:                                    ; preds = %2101, %2096
  %.sink1676 = phi ptr [ %205, %2096 ], [ %206, %2101 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1676) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #6
  %2104 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2105 = add nsw i32 %2104, 1
  store i32 %2105, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %207) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %208) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %208)
          to label %2106 unwind label %2119

2106:                                             ; preds = %.critedge1471
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %208) #6
  %2107 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+00) #6
  %2108 = fadd double %2107, 4.000000e+00
  %2109 = call noundef double @_ZSt3absd(double noundef %2108)
  %2110 = call noundef double @_ZSt3absd(double noundef -4.000000e+00)
  %2111 = fadd double %2110, 1.000000e+00
  %2112 = fdiv double %2109, %2111
  %2113 = fpext double %2107 to x86_fp80
  %2114 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2113)
  br i1 %2114, label %2115, label %2123

2115:                                             ; preds = %2106
  %2116 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC0018000000000000000)
  br i1 %2116, label %2135, label %2123

2117:                                             ; preds = %2102, %2098, %2086
  %.pn1286 = phi { ptr, i32 } [ %2103, %2102 ], [ %2087, %2086 ], [ %2099, %2098 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #6
  br label %2118

2118:                                             ; preds = %2117, %2084
  %.pn1286.pn = phi { ptr, i32 } [ %.pn1286, %2117 ], [ %2085, %2084 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #6
  br label %2486

2119:                                             ; preds = %.critedge1471
  %2120 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %208) #6
  br label %2153

2121:                                             ; preds = %2135, %2130
  %2122 = landingpad { ptr, i32 }
          cleanup
  br label %2152

2123:                                             ; preds = %2115, %2106
  %2124 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2113)
  br i1 %2124, label %2129, label %2125

2125:                                             ; preds = %2123
  %2126 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2113)
  %2127 = fcmp oeq double %2107, -4.000000e+00
  %or.cond1472 = and i1 %2127, %2126
  %2128 = fcmp olt double %2112, 0x3D06849B86A12B9B
  %or.cond1607 = or i1 %2128, %or.cond1472
  br i1 %or.cond1607, label %2135, label %2130

2129:                                             ; preds = %2123
  %.old1606 = fcmp olt double %2112, 0x3D06849B86A12B9B
  br i1 %.old1606, label %2135, label %2130

2130:                                             ; preds = %2125, %2129
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %2131 unwind label %2121

2131:                                             ; preds = %2130
  %2132 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %209, i32 noundef %2132, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2107, double noundef -4.000000e+00, double noundef -4.200000e+00)
          to label %.critedge1474 unwind label %2133

2133:                                             ; preds = %2131
  %2134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #6
  br label %2152

2135:                                             ; preds = %2115, %2125, %2129
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %2136 unwind label %2121

2136:                                             ; preds = %2135
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %210, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2107, double noundef %2112, double noundef -4.200000e+00)
          to label %.critedge1474 unwind label %2137

2137:                                             ; preds = %2136
  %2138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #6
  br label %2152

.critedge1474:                                    ; preds = %2136, %2131
  %.sink1677 = phi ptr [ %209, %2131 ], [ %210, %2136 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1677) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #6
  %2139 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2140 = add nsw i32 %2139, 1
  store i32 %2140, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %211) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %212) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %212)
          to label %2141 unwind label %2154

2141:                                             ; preds = %.critedge1474
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %212) #6
  %2142 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.500000e+00) #6
  %2143 = fadd double %2142, 5.000000e+00
  %2144 = call noundef double @_ZSt3absd(double noundef %2143)
  %2145 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %2146 = fadd double %2145, 1.000000e+00
  %2147 = fdiv double %2144, %2146
  %2148 = fpext double %2142 to x86_fp80
  %2149 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2148)
  br i1 %2149, label %2150, label %2158

2150:                                             ; preds = %2141
  %2151 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %2151, label %2170, label %2158

2152:                                             ; preds = %2137, %2133, %2121
  %.pn1289 = phi { ptr, i32 } [ %2138, %2137 ], [ %2122, %2121 ], [ %2134, %2133 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #6
  br label %2153

2153:                                             ; preds = %2152, %2119
  %.pn1289.pn = phi { ptr, i32 } [ %.pn1289, %2152 ], [ %2120, %2119 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #6
  br label %2486

2154:                                             ; preds = %.critedge1474
  %2155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %212) #6
  br label %2188

2156:                                             ; preds = %2170, %2165
  %2157 = landingpad { ptr, i32 }
          cleanup
  br label %2187

2158:                                             ; preds = %2150, %2141
  %2159 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2148)
  br i1 %2159, label %2164, label %2160

2160:                                             ; preds = %2158
  %2161 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2148)
  %2162 = fcmp oeq double %2142, -5.000000e+00
  %or.cond1475 = and i1 %2162, %2161
  %2163 = fcmp olt double %2147, 0x3D06849B86A12B9B
  %or.cond1609 = or i1 %2163, %or.cond1475
  br i1 %or.cond1609, label %2170, label %2165

2164:                                             ; preds = %2158
  %.old1608 = fcmp olt double %2147, 0x3D06849B86A12B9B
  br i1 %.old1608, label %2170, label %2165

2165:                                             ; preds = %2160, %2164
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 8 dereferenceable(32) %211)
          to label %2166 unwind label %2156

2166:                                             ; preds = %2165
  %2167 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %213, i32 noundef %2167, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2142, double noundef -5.000000e+00, double noundef -4.500000e+00)
          to label %.critedge1477 unwind label %2168

2168:                                             ; preds = %2166
  %2169 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #6
  br label %2187

2170:                                             ; preds = %2150, %2160, %2164
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull align 8 dereferenceable(32) %211)
          to label %2171 unwind label %2156

2171:                                             ; preds = %2170
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %214, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2142, double noundef %2147, double noundef -4.500000e+00)
          to label %.critedge1477 unwind label %2172

2172:                                             ; preds = %2171
  %2173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #6
  br label %2187

.critedge1477:                                    ; preds = %2171, %2166
  %.sink1678 = phi ptr [ %213, %2166 ], [ %214, %2171 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1678) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #6
  %2174 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2175 = add nsw i32 %2174, 1
  store i32 %2175, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %215) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %216) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %215, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %216)
          to label %2176 unwind label %2189

2176:                                             ; preds = %.critedge1477
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %216) #6
  %2177 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.700000e+00) #6
  %2178 = fadd double %2177, 5.000000e+00
  %2179 = call noundef double @_ZSt3absd(double noundef %2178)
  %2180 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %2181 = fadd double %2180, 1.000000e+00
  %2182 = fdiv double %2179, %2181
  %2183 = fpext double %2177 to x86_fp80
  %2184 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2183)
  br i1 %2184, label %2185, label %2193

2185:                                             ; preds = %2176
  %2186 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %2186, label %2205, label %2193

2187:                                             ; preds = %2172, %2168, %2156
  %.pn1292 = phi { ptr, i32 } [ %2173, %2172 ], [ %2157, %2156 ], [ %2169, %2168 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #6
  br label %2188

2188:                                             ; preds = %2187, %2154
  %.pn1292.pn = phi { ptr, i32 } [ %.pn1292, %2187 ], [ %2155, %2154 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #6
  br label %2486

2189:                                             ; preds = %.critedge1477
  %2190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %216) #6
  br label %2223

2191:                                             ; preds = %2205, %2200
  %2192 = landingpad { ptr, i32 }
          cleanup
  br label %2222

2193:                                             ; preds = %2185, %2176
  %2194 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2183)
  br i1 %2194, label %2199, label %2195

2195:                                             ; preds = %2193
  %2196 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2183)
  %2197 = fcmp oeq double %2177, -5.000000e+00
  %or.cond1478 = and i1 %2197, %2196
  %2198 = fcmp olt double %2182, 0x3D06849B86A12B9B
  %or.cond1611 = or i1 %2198, %or.cond1478
  br i1 %or.cond1611, label %2205, label %2200

2199:                                             ; preds = %2193
  %.old1610 = fcmp olt double %2182, 0x3D06849B86A12B9B
  br i1 %.old1610, label %2205, label %2200

2200:                                             ; preds = %2195, %2199
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef nonnull align 8 dereferenceable(32) %215)
          to label %2201 unwind label %2191

2201:                                             ; preds = %2200
  %2202 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %217, i32 noundef %2202, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2177, double noundef -5.000000e+00, double noundef -4.700000e+00)
          to label %.critedge1480 unwind label %2203

2203:                                             ; preds = %2201
  %2204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #6
  br label %2222

2205:                                             ; preds = %2185, %2195, %2199
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull align 8 dereferenceable(32) %215)
          to label %2206 unwind label %2191

2206:                                             ; preds = %2205
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %218, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2177, double noundef %2182, double noundef -4.700000e+00)
          to label %.critedge1480 unwind label %2207

2207:                                             ; preds = %2206
  %2208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #6
  br label %2222

.critedge1480:                                    ; preds = %2206, %2201
  %.sink1679 = phi ptr [ %217, %2201 ], [ %218, %2206 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1679) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %215) #6
  %2209 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2210 = add nsw i32 %2209, 1
  store i32 %2210, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %219) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %220) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %2211 unwind label %2224

2211:                                             ; preds = %.critedge1480
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %220) #6
  %2212 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -5.000000e+00) #6
  %2213 = fadd double %2212, 5.000000e+00
  %2214 = call noundef double @_ZSt3absd(double noundef %2213)
  %2215 = call noundef double @_ZSt3absd(double noundef -5.000000e+00)
  %2216 = fadd double %2215, 1.000000e+00
  %2217 = fdiv double %2214, %2216
  %2218 = fpext double %2212 to x86_fp80
  %2219 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2218)
  br i1 %2219, label %2220, label %2228

2220:                                             ; preds = %2211
  %2221 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC001A000000000000000)
  br i1 %2221, label %2240, label %2228

2222:                                             ; preds = %2207, %2203, %2191
  %.pn1295 = phi { ptr, i32 } [ %2208, %2207 ], [ %2192, %2191 ], [ %2204, %2203 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #6
  br label %2223

2223:                                             ; preds = %2222, %2189
  %.pn1295.pn = phi { ptr, i32 } [ %.pn1295, %2222 ], [ %2190, %2189 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %215) #6
  br label %2486

2224:                                             ; preds = %.critedge1480
  %2225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %220) #6
  br label %2258

2226:                                             ; preds = %2240, %2235
  %2227 = landingpad { ptr, i32 }
          cleanup
  br label %2257

2228:                                             ; preds = %2220, %2211
  %2229 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2218)
  br i1 %2229, label %2234, label %2230

2230:                                             ; preds = %2228
  %2231 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2218)
  %2232 = fcmp oeq double %2212, -5.000000e+00
  %or.cond1481 = and i1 %2232, %2231
  %2233 = fcmp olt double %2217, 0x3D06849B86A12B9B
  %or.cond1613 = or i1 %2233, %or.cond1481
  br i1 %or.cond1613, label %2240, label %2235

2234:                                             ; preds = %2228
  %.old1612 = fcmp olt double %2217, 0x3D06849B86A12B9B
  br i1 %.old1612, label %2240, label %2235

2235:                                             ; preds = %2230, %2234
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %219)
          to label %2236 unwind label %2226

2236:                                             ; preds = %2235
  %2237 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %221, i32 noundef %2237, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2212, double noundef -5.000000e+00, double noundef -5.000000e+00)
          to label %.critedge1483 unwind label %2238

2238:                                             ; preds = %2236
  %2239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #6
  br label %2257

2240:                                             ; preds = %2220, %2230, %2234
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 8 dereferenceable(32) %219)
          to label %2241 unwind label %2226

2241:                                             ; preds = %2240
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %222, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2212, double noundef %2217, double noundef -5.000000e+00)
          to label %.critedge1483 unwind label %2242

2242:                                             ; preds = %2241
  %2243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #6
  br label %2257

.critedge1483:                                    ; preds = %2241, %2236
  %.sink1680 = phi ptr [ %221, %2236 ], [ %222, %2241 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1680) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #6
  %2244 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2245 = add nsw i32 %2244, 1
  store i32 %2245, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %223) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %224) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %224) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %223, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %224)
          to label %2246 unwind label %2259

2246:                                             ; preds = %.critedge1483
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %224) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %224) #6
  %2247 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 4.200000e+33) #6
  %2248 = fadd double %2247, -4.200000e+33
  %2249 = call noundef double @_ZSt3absd(double noundef %2248)
  %2250 = call noundef double @_ZSt3absd(double noundef 4.200000e+33)
  %2251 = fadd double %2250, 1.000000e+00
  %2252 = fdiv double %2249, %2251
  %2253 = fpext double %2247 to x86_fp80
  %2254 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2253)
  br i1 %2254, label %2255, label %2263

2255:                                             ; preds = %2246
  %2256 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK406ECF1373ECB903F000)
  br i1 %2256, label %2275, label %2263

2257:                                             ; preds = %2242, %2238, %2226
  %.pn1298 = phi { ptr, i32 } [ %2243, %2242 ], [ %2227, %2226 ], [ %2239, %2238 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #6
  br label %2258

2258:                                             ; preds = %2257, %2224
  %.pn1298.pn = phi { ptr, i32 } [ %.pn1298, %2257 ], [ %2225, %2224 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #6
  br label %2486

2259:                                             ; preds = %.critedge1483
  %2260 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %224) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %224) #6
  br label %2293

2261:                                             ; preds = %2275, %2270
  %2262 = landingpad { ptr, i32 }
          cleanup
  br label %2292

2263:                                             ; preds = %2255, %2246
  %2264 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2253)
  br i1 %2264, label %2269, label %2265

2265:                                             ; preds = %2263
  %2266 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2253)
  %2267 = fcmp oeq double %2247, 4.200000e+33
  %or.cond1484 = and i1 %2267, %2266
  %2268 = fcmp olt double %2252, 0x3D06849B86A12B9B
  %or.cond1615 = or i1 %2268, %or.cond1484
  br i1 %or.cond1615, label %2275, label %2270

2269:                                             ; preds = %2263
  %.old1614 = fcmp olt double %2252, 0x3D06849B86A12B9B
  br i1 %.old1614, label %2275, label %2270

2270:                                             ; preds = %2265, %2269
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef nonnull align 8 dereferenceable(32) %223)
          to label %2271 unwind label %2261

2271:                                             ; preds = %2270
  %2272 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %225, i32 noundef %2272, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2247, double noundef 4.200000e+33, double noundef 4.200000e+33)
          to label %.critedge1486 unwind label %2273

2273:                                             ; preds = %2271
  %2274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #6
  br label %2292

2275:                                             ; preds = %2255, %2265, %2269
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull align 8 dereferenceable(32) %223)
          to label %2276 unwind label %2261

2276:                                             ; preds = %2275
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %226, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2247, double noundef %2252, double noundef 4.200000e+33)
          to label %.critedge1486 unwind label %2277

2277:                                             ; preds = %2276
  %2278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #6
  br label %2292

.critedge1486:                                    ; preds = %2276, %2271
  %.sink1681 = phi ptr [ %225, %2271 ], [ %226, %2276 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1681) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #6
  %2279 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2280 = add nsw i32 %2279, 1
  store i32 %2280, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %227) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %228) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %228)
          to label %2281 unwind label %2294

2281:                                             ; preds = %.critedge1486
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %228) #6
  %2282 = call noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -4.200000e+33) #6
  %2283 = fadd double %2282, 4.200000e+33
  %2284 = call noundef double @_ZSt3absd(double noundef %2283)
  %2285 = call noundef double @_ZSt3absd(double noundef -4.200000e+33)
  %2286 = fadd double %2285, 1.000000e+00
  %2287 = fdiv double %2284, %2286
  %2288 = fpext double %2282 to x86_fp80
  %2289 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2288)
  br i1 %2289, label %2290, label %2298

2290:                                             ; preds = %2281
  %2291 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKC06ECF1373ECB903F000)
  br i1 %2291, label %2310, label %2298

2292:                                             ; preds = %2277, %2273, %2261
  %.pn1301 = phi { ptr, i32 } [ %2278, %2277 ], [ %2262, %2261 ], [ %2274, %2273 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #6
  br label %2293

2293:                                             ; preds = %2292, %2259
  %.pn1301.pn = phi { ptr, i32 } [ %.pn1301, %2292 ], [ %2260, %2259 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #6
  br label %2486

2294:                                             ; preds = %.critedge1486
  %2295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %228) #6
  br label %2332

2296:                                             ; preds = %2310, %2305
  %2297 = landingpad { ptr, i32 }
          cleanup
  br label %2331

2298:                                             ; preds = %2290, %2281
  %2299 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2288)
  br i1 %2299, label %2304, label %2300

2300:                                             ; preds = %2298
  %2301 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2288)
  %2302 = fcmp oeq double %2282, -4.200000e+33
  %or.cond1487 = and i1 %2302, %2301
  %2303 = fcmp olt double %2287, 0x3D06849B86A12B9B
  %or.cond1617 = or i1 %2303, %or.cond1487
  br i1 %or.cond1617, label %2310, label %2305

2304:                                             ; preds = %2298
  %.old1616 = fcmp olt double %2287, 0x3D06849B86A12B9B
  br i1 %.old1616, label %2310, label %2305

2305:                                             ; preds = %2300, %2304
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %2306 unwind label %2296

2306:                                             ; preds = %2305
  %2307 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %229, i32 noundef %2307, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2282, double noundef -4.200000e+33, double noundef -4.200000e+33)
          to label %.critedge1489 unwind label %2308

2308:                                             ; preds = %2306
  %2309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #6
  br label %2331

2310:                                             ; preds = %2290, %2300, %2304
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %2311 unwind label %2296

2311:                                             ; preds = %2310
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %230, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %2282, double noundef %2287, double noundef -4.200000e+33)
          to label %.critedge1489 unwind label %2312

2312:                                             ; preds = %2311
  %2313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #6
  br label %2331

.critedge1489:                                    ; preds = %2311, %2306
  %.sink1682 = phi ptr [ %229, %2306 ], [ %230, %2311 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1682) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #6
  %2314 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2315 = add nsw i32 %2314, 1
  store i32 %2315, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %231) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %232) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %232)
          to label %2316 unwind label %2333

2316:                                             ; preds = %.critedge1489
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %232) #6
  %2317 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %2318 = call noundef float @_ZN4gcem5roundIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %2317) #6
  %2319 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %2320 = call noundef float @_ZSt5roundf(float noundef %2319)
  %2321 = fsub float %2318, %2320
  %2322 = call noundef float @_ZSt3absf(float noundef %2321)
  %2323 = call noundef float @_ZSt3absf(float noundef %2320)
  %2324 = fadd float %2323, 1.000000e+00
  %2325 = fdiv float %2322, %2324
  %2326 = fpext float %2318 to x86_fp80
  %2327 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2326)
  br i1 %2327, label %2328, label %2337

2328:                                             ; preds = %2316
  %2329 = fpext float %2320 to x86_fp80
  %2330 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2329)
  br i1 %2330, label %2351, label %2337

2331:                                             ; preds = %2312, %2308, %2296
  %.pn1304 = phi { ptr, i32 } [ %2313, %2312 ], [ %2297, %2296 ], [ %2309, %2308 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #6
  br label %2332

2332:                                             ; preds = %2331, %2294
  %.pn1304.pn = phi { ptr, i32 } [ %.pn1304, %2331 ], [ %2295, %2294 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #6
  br label %2486

2333:                                             ; preds = %.critedge1489
  %2334 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %232) #6
  br label %2374

2335:                                             ; preds = %2351, %2345
  %2336 = landingpad { ptr, i32 }
          cleanup
  br label %2373

2337:                                             ; preds = %2328, %2316
  %2338 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2326)
  br i1 %2338, label %2344, label %2339

2339:                                             ; preds = %2337
  %2340 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2326)
  %2341 = fcmp oeq float %2318, %2320
  %or.cond1490 = and i1 %2341, %2340
  %2342 = fpext float %2325 to double
  %2343 = fcmp olt double %2342, 0x3D06849B86A12B9B
  %or.cond1620 = or i1 %2343, %or.cond1490
  br i1 %or.cond1620, label %2351, label %2345

2344:                                             ; preds = %2337
  %.old1618 = fpext float %2325 to double
  %.old1619 = fcmp olt double %.old1618, 0x3D06849B86A12B9B
  br i1 %.old1619, label %2351, label %2345

2345:                                             ; preds = %2339, %2344
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef nonnull align 8 dereferenceable(32) %231)
          to label %2346 unwind label %2335

2346:                                             ; preds = %2345
  %2347 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2348 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %233, i32 noundef %2347, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %2318, float noundef %2320, float noundef %2348)
          to label %.critedge1492 unwind label %2349

2349:                                             ; preds = %2346
  %2350 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #6
  br label %2373

2351:                                             ; preds = %2328, %2339, %2344
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef nonnull align 8 dereferenceable(32) %231)
          to label %2352 unwind label %2335

2352:                                             ; preds = %2351
  %2353 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %234, i32 noundef 3, i32 noundef 2, i32 noundef 2, float noundef %2318, float noundef %2325, float noundef %2353)
          to label %.critedge1492 unwind label %2354

2354:                                             ; preds = %2352
  %2355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #6
  br label %2373

.critedge1492:                                    ; preds = %2352, %2346
  %.sink1683 = phi ptr [ %233, %2346 ], [ %234, %2352 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1683) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %231) #6
  %2356 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2357 = add nsw i32 %2356, 1
  store i32 %2357, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %235) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %236) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %236)
          to label %2358 unwind label %2375

2358:                                             ; preds = %.critedge1492
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %236) #6
  %2359 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %2360 = fneg x86_fp80 %2359
  %2361 = call noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2360) #6
  %2362 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %2363 = fneg x86_fp80 %2362
  %2364 = call noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef %2363)
  %2365 = fsub x86_fp80 %2361, %2364
  %2366 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2365)
  %2367 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2364)
  %2368 = fadd x86_fp80 %2367, 0xK3FFF8000000000000000
  %2369 = fdiv x86_fp80 %2366, %2368
  %2370 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2361)
  br i1 %2370, label %2371, label %2379

2371:                                             ; preds = %2358
  %2372 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2364)
  br i1 %2372, label %2393, label %2379

2373:                                             ; preds = %2354, %2349, %2335
  %.pn1307 = phi { ptr, i32 } [ %2355, %2354 ], [ %2336, %2335 ], [ %2350, %2349 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #6
  br label %2374

2374:                                             ; preds = %2373, %2333
  %.pn1307.pn = phi { ptr, i32 } [ %.pn1307, %2373 ], [ %2334, %2333 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %231) #6
  br label %2486

2375:                                             ; preds = %.critedge1492
  %2376 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %236) #6
  br label %2415

2377:                                             ; preds = %2393, %2386
  %2378 = landingpad { ptr, i32 }
          cleanup
  br label %2414

2379:                                             ; preds = %2371, %2358
  %2380 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2361)
  br i1 %2380, label %2385, label %2381

2381:                                             ; preds = %2379
  %2382 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2361)
  %2383 = fcmp oeq x86_fp80 %2361, %2364
  %or.cond1493 = and i1 %2383, %2382
  %2384 = fcmp olt x86_fp80 %2369, 0xK3FD0B424DC35095CD800
  %or.cond1622 = or i1 %2384, %or.cond1493
  br i1 %or.cond1622, label %2393, label %2386

2385:                                             ; preds = %2379
  %.old1621 = fcmp olt x86_fp80 %2369, 0xK3FD0B424DC35095CD800
  br i1 %.old1621, label %2393, label %2386

2386:                                             ; preds = %2381, %2385
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull align 8 dereferenceable(32) %235)
          to label %2387 unwind label %2377

2387:                                             ; preds = %2386
  %2388 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2389 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %2390 = fneg x86_fp80 %2389
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %237, i32 noundef %2388, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2361, x86_fp80 noundef %2364, x86_fp80 noundef %2390)
          to label %.critedge1495 unwind label %2391

2391:                                             ; preds = %2387
  %2392 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #6
  br label %2414

2393:                                             ; preds = %2371, %2381, %2385
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull align 8 dereferenceable(32) %235)
          to label %2394 unwind label %2377

2394:                                             ; preds = %2393
  %2395 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %2396 = fneg x86_fp80 %2395
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %238, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2361, x86_fp80 noundef %2369, x86_fp80 noundef %2396)
          to label %.critedge1495 unwind label %2397

2397:                                             ; preds = %2394
  %2398 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #6
  br label %2414

.critedge1495:                                    ; preds = %2394, %2387
  %.sink1684 = phi ptr [ %237, %2387 ], [ %238, %2394 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1684) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #6
  %2399 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2400 = add nsw i32 %2399, 1
  store i32 %2400, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %239) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %240) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %240)
          to label %2401 unwind label %2416

2401:                                             ; preds = %.critedge1495
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %240) #6
  %2402 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %2403 = call noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2402) #6
  %2404 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  %2405 = call noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef %2404)
  %2406 = fsub x86_fp80 %2403, %2405
  %2407 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2406)
  %2408 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2405)
  %2409 = fadd x86_fp80 %2408, 0xK3FFF8000000000000000
  %2410 = fdiv x86_fp80 %2407, %2409
  %2411 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2403)
  br i1 %2411, label %2412, label %2420

2412:                                             ; preds = %2401
  %2413 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2405)
  br i1 %2413, label %2433, label %2420

2414:                                             ; preds = %2397, %2391, %2377
  %.pn1310 = phi { ptr, i32 } [ %2398, %2397 ], [ %2378, %2377 ], [ %2392, %2391 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #6
  br label %2415

2415:                                             ; preds = %2414, %2375
  %.pn1310.pn = phi { ptr, i32 } [ %.pn1310, %2414 ], [ %2376, %2375 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #6
  br label %2486

2416:                                             ; preds = %.critedge1495
  %2417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %240) #6
  br label %2454

2418:                                             ; preds = %2433, %2427
  %2419 = landingpad { ptr, i32 }
          cleanup
  br label %2453

2420:                                             ; preds = %2412, %2401
  %2421 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2403)
  br i1 %2421, label %2426, label %2422

2422:                                             ; preds = %2420
  %2423 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2403)
  %2424 = fcmp oeq x86_fp80 %2403, %2405
  %or.cond1496 = and i1 %2424, %2423
  %2425 = fcmp olt x86_fp80 %2410, 0xK3FD0B424DC35095CD800
  %or.cond1624 = or i1 %2425, %or.cond1496
  br i1 %or.cond1624, label %2433, label %2427

2426:                                             ; preds = %2420
  %.old1623 = fcmp olt x86_fp80 %2410, 0xK3FD0B424DC35095CD800
  br i1 %.old1623, label %2433, label %2427

2427:                                             ; preds = %2422, %2426
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull align 8 dereferenceable(32) %239)
          to label %2428 unwind label %2418

2428:                                             ; preds = %2427
  %2429 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2430 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %241, i32 noundef %2429, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2403, x86_fp80 noundef %2405, x86_fp80 noundef %2430)
          to label %.critedge1498 unwind label %2431

2431:                                             ; preds = %2428
  %2432 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #6
  br label %2453

2433:                                             ; preds = %2412, %2422, %2426
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef nonnull align 8 dereferenceable(32) %239)
          to label %2434 unwind label %2418

2434:                                             ; preds = %2433
  %2435 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %242, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2403, x86_fp80 noundef %2410, x86_fp80 noundef %2435)
          to label %.critedge1498 unwind label %2436

2436:                                             ; preds = %2434
  %2437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #6
  br label %2453

.critedge1498:                                    ; preds = %2434, %2428
  %.sink1685 = phi ptr [ %241, %2428 ], [ %242, %2434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1685) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #6
  %2438 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2439 = add nsw i32 %2438, 1
  store i32 %2439, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %243) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %244) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %244)
          to label %2440 unwind label %2455

2440:                                             ; preds = %.critedge1498
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %244) #6
  %2441 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %2442 = call noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2441) #6
  %2443 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  %2444 = call noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef %2443)
  %2445 = fsub x86_fp80 %2442, %2444
  %2446 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2445)
  %2447 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2444)
  %2448 = fadd x86_fp80 %2447, 0xK3FFF8000000000000000
  %2449 = fdiv x86_fp80 %2446, %2448
  %2450 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2442)
  br i1 %2450, label %2451, label %2459

2451:                                             ; preds = %2440
  %2452 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2444)
  br i1 %2452, label %2472, label %2459

2453:                                             ; preds = %2436, %2431, %2418
  %.pn1313 = phi { ptr, i32 } [ %2437, %2436 ], [ %2419, %2418 ], [ %2432, %2431 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #6
  br label %2454

2454:                                             ; preds = %2453, %2416
  %.pn1313.pn = phi { ptr, i32 } [ %.pn1313, %2453 ], [ %2417, %2416 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #6
  br label %2486

2455:                                             ; preds = %.critedge1498
  %2456 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %244) #6
  br label %2480

2457:                                             ; preds = %2472, %2466
  %2458 = landingpad { ptr, i32 }
          cleanup
  br label %2479

2459:                                             ; preds = %2451, %2440
  %2460 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2442)
  br i1 %2460, label %2465, label %2461

2461:                                             ; preds = %2459
  %2462 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2442)
  %2463 = fcmp oeq x86_fp80 %2442, %2444
  %or.cond1499 = and i1 %2463, %2462
  %2464 = fcmp olt x86_fp80 %2449, 0xK3FD0B424DC35095CD800
  %or.cond1626 = or i1 %2464, %or.cond1499
  br i1 %or.cond1626, label %2472, label %2466

2465:                                             ; preds = %2459
  %.old1625 = fcmp olt x86_fp80 %2449, 0xK3FD0B424DC35095CD800
  br i1 %.old1625, label %2472, label %2466

2466:                                             ; preds = %2461, %2465
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 8 dereferenceable(32) %243)
          to label %2467 unwind label %2457

2467:                                             ; preds = %2466
  %2468 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2469 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %245, i32 noundef %2468, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2442, x86_fp80 noundef %2444, x86_fp80 noundef %2469)
          to label %.critedge1501 unwind label %2470

2470:                                             ; preds = %2467
  %2471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #6
  br label %2479

2472:                                             ; preds = %2451, %2461, %2465
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 8 dereferenceable(32) %243)
          to label %2473 unwind label %2457

2473:                                             ; preds = %2472
  %2474 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %246, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2442, x86_fp80 noundef %2449, x86_fp80 noundef %2474)
          to label %.critedge1501 unwind label %2475

2475:                                             ; preds = %2473
  %2476 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #6
  br label %2479

.critedge1501:                                    ; preds = %2473, %2467
  %.sink1686 = phi ptr [ %245, %2467 ], [ %246, %2473 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1686) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %248) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %248)
          to label %2477 unwind label %2481

2477:                                             ; preds = %.critedge1501
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %247)
          to label %2478 unwind label %2483

2478:                                             ; preds = %2477
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %248) #6
  ret i32 0

2479:                                             ; preds = %2475, %2470, %2457
  %.pn1316 = phi { ptr, i32 } [ %2476, %2475 ], [ %2458, %2457 ], [ %2471, %2470 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #6
  br label %2480

2480:                                             ; preds = %2479, %2455
  %.pn1316.pn = phi { ptr, i32 } [ %.pn1316, %2479 ], [ %2456, %2455 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #6
  br label %2486

2481:                                             ; preds = %.critedge1501
  %2482 = landingpad { ptr, i32 }
          cleanup
  br label %2485

2483:                                             ; preds = %2477
  %2484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #6
  br label %2485

2485:                                             ; preds = %2483, %2481
  %.pn1319 = phi { ptr, i32 } [ %2484, %2483 ], [ %2482, %2481 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %248) #6
  br label %2486

2486:                                             ; preds = %2485, %2480, %2454, %2415, %2374, %2332, %2293, %2258, %2223, %2188, %2153, %2118, %2083, %2048, %2013, %1978, %1943, %1908, %1872, %1833, %1792, %1750, %1711, %1676, %1641, %1606, %1571, %1536, %1501, %1466, %1431, %1396, %1361, %1325, %1286, %1245, %1203, %1164, %1129, %1094, %1059, %1024, %989, %954, %919, %884, %849, %814, %778, %739, %698, %656, %617, %582, %547, %512, %477, %442, %407, %372, %337, %302, %267
  %.pn1319.pn = phi { ptr, i32 } [ %.pn1319, %2485 ], [ %.pn1316.pn, %2480 ], [ %.pn1313.pn, %2454 ], [ %.pn1310.pn, %2415 ], [ %.pn1307.pn, %2374 ], [ %.pn1304.pn, %2332 ], [ %.pn1301.pn, %2293 ], [ %.pn1298.pn, %2258 ], [ %.pn1295.pn, %2223 ], [ %.pn1292.pn, %2188 ], [ %.pn1289.pn, %2153 ], [ %.pn1286.pn, %2118 ], [ %.pn1283.pn, %2083 ], [ %.pn1280.pn, %2048 ], [ %.pn1277.pn, %2013 ], [ %.pn1274.pn, %1978 ], [ %.pn1271.pn, %1943 ], [ %.pn1268.pn, %1908 ], [ %.pn1265.pn, %1872 ], [ %.pn1262.pn, %1833 ], [ %.pn1259.pn, %1792 ], [ %.pn1256.pn, %1750 ], [ %.pn1253.pn, %1711 ], [ %.pn1250.pn, %1676 ], [ %.pn1247.pn, %1641 ], [ %.pn1244.pn, %1606 ], [ %.pn1241.pn, %1571 ], [ %.pn1238.pn, %1536 ], [ %.pn1235.pn, %1501 ], [ %.pn1232.pn, %1466 ], [ %.pn1229.pn, %1431 ], [ %.pn1226.pn, %1396 ], [ %.pn1223.pn, %1361 ], [ %.pn1220.pn, %1325 ], [ %.pn1217.pn, %1286 ], [ %.pn1214.pn, %1245 ], [ %.pn1211.pn, %1203 ], [ %.pn1208.pn, %1164 ], [ %.pn1205.pn, %1129 ], [ %.pn1202.pn, %1094 ], [ %.pn1199.pn, %1059 ], [ %.pn1196.pn, %1024 ], [ %.pn1193.pn, %989 ], [ %.pn1190.pn, %954 ], [ %.pn1187.pn, %919 ], [ %.pn1184.pn, %884 ], [ %.pn1181.pn, %849 ], [ %.pn1178.pn, %814 ], [ %.pn1175.pn, %778 ], [ %.pn1172.pn, %739 ], [ %.pn1169.pn, %698 ], [ %.pn1166.pn, %656 ], [ %.pn1163.pn, %617 ], [ %.pn1160.pn, %582 ], [ %.pn1157.pn, %547 ], [ %.pn1154.pn, %512 ], [ %.pn1151.pn, %477 ], [ %.pn1148.pn, %442 ], [ %.pn1145.pn, %407 ], [ %.pn1142.pn, %372 ], [ %.pn1139.pn, %337 ], [ %.pn1136.pn, %302 ], [ %.pn, %267 ]
  resume { ptr, i32 } %.pn1319.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5floorIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5floorIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE3maxEv() local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5floorf(float noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3absf(float noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, float noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, float noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5floorIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt5floore(x86_fp80 noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem4ceilIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem4ceilIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4ceilf(float noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4ceilIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4ceile(x86_fp80 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5truncIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5truncIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5truncf(float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5truncIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt5trunce(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5roundIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5roundIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5roundf(float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5roundIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt5rounde(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { inlinehint 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 }

!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"}


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