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

; 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 [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [11 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 float, align 4
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %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 float, align 4
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %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 float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %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 float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %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 x86_fp80, align 16
  %97 = alloca x86_fp80, align 16
  %98 = alloca x86_fp80, align 16
  %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 float, align 4
  %129 = alloca float, align 4
  %130 = alloca float, align 4
  %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 float, align 4
  %137 = alloca float, align 4
  %138 = alloca float, align 4
  %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 float, align 4
  %145 = alloca float, align 4
  %146 = alloca float, align 4
  %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 x86_fp80, align 16
  %177 = alloca x86_fp80, align 16
  %178 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %185 = alloca x86_fp80, align 16
  %186 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %193 = alloca x86_fp80, align 16
  %194 = alloca x86_fp80, align 16
  %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 double, align 8
  %217 = alloca double, align 8
  %218 = alloca double, align 8
  %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
  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 %224 unwind label %252

224:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2)
          to label %225 unwind label %256

225:                                              ; preds = %224
  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
  %226 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %227 = add nsw i32 %226, 1
  store i32 %227, 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 %228 unwind label %261

228:                                              ; preds = %225
  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 4, ptr %8) #7
  %229 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef 0.000000e+00) #7
  store float %229, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %230 = invoke noundef float @_ZSt4fabsf(float noundef 0.000000e+00)
          to label %231 unwind label %265

231:                                              ; preds = %228
  store float %230, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  %232 = load float, ptr %8, align 4, !tbaa !9
  %233 = load float, ptr %9, align 4, !tbaa !9
  %234 = fsub float %232, %233
  %235 = invoke noundef float @_ZSt3absf(float noundef %234)
          to label %236 unwind label %269

236:                                              ; preds = %231
  %237 = load float, ptr %9, align 4, !tbaa !9
  %238 = invoke noundef float @_ZSt3absf(float noundef %237)
          to label %239 unwind label %269

239:                                              ; preds = %236
  %240 = fadd float 1.000000e+00, %238
  %241 = fdiv float %235, %240
  store float %241, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  store i8 0, ptr %11, align 1, !tbaa !11
  %242 = load float, ptr %8, align 4, !tbaa !9
  %243 = fpext float %242 to x86_fp80
  %244 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %243)
          to label %245 unwind label %273

245:                                              ; preds = %239
  br i1 %244, label %246, label %277

246:                                              ; preds = %245
  %247 = load float, ptr %9, align 4, !tbaa !9
  %248 = fpext float %247 to x86_fp80
  %249 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %248)
          to label %250 unwind label %273

250:                                              ; preds = %246
  br i1 %249, label %251, label %277

251:                                              ; preds = %250
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %309

252:                                              ; preds = %0
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %4, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %5, align 4
  br label %260

256:                                              ; preds = %224
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %4, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  br label %260

260:                                              ; preds = %256, %252
  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 %2647

261:                                              ; preds = %225
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %4, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, 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 %351

265:                                              ; preds = %228
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %4, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %5, align 4
  br label %350

269:                                              ; preds = %236, %231
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %4, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %5, align 4
  br label %349

273:                                              ; preds = %312, %297, %282, %277, %246, %239
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %4, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %5, align 4
  br label %348

277:                                              ; preds = %250, %245
  %278 = load float, ptr %8, align 4, !tbaa !9
  %279 = fpext float %278 to x86_fp80
  %280 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %279)
          to label %281 unwind label %273

281:                                              ; preds = %277
  br i1 %280, label %292, label %282

282:                                              ; preds = %281
  %283 = load float, ptr %8, align 4, !tbaa !9
  %284 = fpext float %283 to x86_fp80
  %285 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %284)
          to label %286 unwind label %273

286:                                              ; preds = %282
  br i1 %285, label %287, label %292

287:                                              ; preds = %286
  %288 = load float, ptr %8, align 4, !tbaa !9
  %289 = load float, ptr %9, align 4, !tbaa !9
  %290 = fcmp oeq float %288, %289
  br i1 %290, label %291, label %292

291:                                              ; preds = %287
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %308

292:                                              ; preds = %287, %286, %281
  %293 = load float, ptr %10, align 4, !tbaa !9
  %294 = fpext float %293 to double
  %295 = fcmp olt double %294, 0x3D06849B86A12B9B
  br i1 %295, label %296, label %297

296:                                              ; preds = %292
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %307

297:                                              ; preds = %292
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %298 unwind label %273

298:                                              ; preds = %297
  %299 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %300 = load float, ptr %8, align 4, !tbaa !9
  %301 = load float, ptr %9, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %12, i32 noundef %299, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %300, float noundef %301, float noundef 0.000000e+00)
          to label %302 unwind label %303

302:                                              ; preds = %298
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %307

303:                                              ; preds = %298
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %4, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %348

307:                                              ; preds = %302, %296
  br label %308

308:                                              ; preds = %307, %291
  br label %309

309:                                              ; preds = %308, %251
  %310 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %311 = trunc i8 %310 to i1
  br i1 %311, label %312, label %321

312:                                              ; preds = %309
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %313 unwind label %273

313:                                              ; preds = %312
  %314 = load float, ptr %8, align 4, !tbaa !9
  %315 = load float, ptr %10, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %13, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %314, float noundef %315, float noundef 0.000000e+00)
          to label %316 unwind label %317

316:                                              ; preds = %313
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %321

317:                                              ; preds = %313
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %4, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %348

321:                                              ; preds = %316, %309
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  %322 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %323 = add nsw i32 %322, 1
  store i32 %323, 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 %324 unwind label %352

324:                                              ; preds = %321
  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 4, ptr %16) #7
  %325 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef -0.000000e+00) #7
  store float %325, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %326 = invoke noundef float @_ZSt4fabsf(float noundef -0.000000e+00)
          to label %327 unwind label %356

327:                                              ; preds = %324
  store float %326, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %328 = load float, ptr %16, align 4, !tbaa !9
  %329 = load float, ptr %17, align 4, !tbaa !9
  %330 = fsub float %328, %329
  %331 = invoke noundef float @_ZSt3absf(float noundef %330)
          to label %332 unwind label %360

332:                                              ; preds = %327
  %333 = load float, ptr %17, align 4, !tbaa !9
  %334 = invoke noundef float @_ZSt3absf(float noundef %333)
          to label %335 unwind label %360

335:                                              ; preds = %332
  %336 = fadd float 1.000000e+00, %334
  %337 = fdiv float %331, %336
  store float %337, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  store i8 0, ptr %19, align 1, !tbaa !11
  %338 = load float, ptr %16, align 4, !tbaa !9
  %339 = fpext float %338 to x86_fp80
  %340 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %339)
          to label %341 unwind label %364

341:                                              ; preds = %335
  br i1 %340, label %342, label %368

342:                                              ; preds = %341
  %343 = load float, ptr %17, align 4, !tbaa !9
  %344 = fpext float %343 to x86_fp80
  %345 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %344)
          to label %346 unwind label %364

346:                                              ; preds = %342
  br i1 %345, label %347, label %368

347:                                              ; preds = %346
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %400

348:                                              ; preds = %317, %303, %273
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %349

349:                                              ; preds = %348, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %350

350:                                              ; preds = %349, %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %351

351:                                              ; preds = %350, %261
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %2647

352:                                              ; preds = %321
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %4, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, 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 %442

356:                                              ; preds = %324
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %4, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %5, align 4
  br label %441

360:                                              ; preds = %332, %327
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %4, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %5, align 4
  br label %440

364:                                              ; preds = %403, %388, %373, %368, %342, %335
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %4, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %5, align 4
  br label %439

368:                                              ; preds = %346, %341
  %369 = load float, ptr %16, align 4, !tbaa !9
  %370 = fpext float %369 to x86_fp80
  %371 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %370)
          to label %372 unwind label %364

372:                                              ; preds = %368
  br i1 %371, label %383, label %373

373:                                              ; preds = %372
  %374 = load float, ptr %16, align 4, !tbaa !9
  %375 = fpext float %374 to x86_fp80
  %376 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %375)
          to label %377 unwind label %364

377:                                              ; preds = %373
  br i1 %376, label %378, label %383

378:                                              ; preds = %377
  %379 = load float, ptr %16, align 4, !tbaa !9
  %380 = load float, ptr %17, align 4, !tbaa !9
  %381 = fcmp oeq float %379, %380
  br i1 %381, label %382, label %383

382:                                              ; preds = %378
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %399

383:                                              ; preds = %378, %377, %372
  %384 = load float, ptr %18, align 4, !tbaa !9
  %385 = fpext float %384 to double
  %386 = fcmp olt double %385, 0x3D06849B86A12B9B
  br i1 %386, label %387, label %388

387:                                              ; preds = %383
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %398

388:                                              ; preds = %383
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %389 unwind label %364

389:                                              ; preds = %388
  %390 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %391 = load float, ptr %16, align 4, !tbaa !9
  %392 = load float, ptr %17, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %20, i32 noundef %390, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %391, float noundef %392, float noundef -0.000000e+00)
          to label %393 unwind label %394

393:                                              ; preds = %389
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %398

394:                                              ; preds = %389
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %4, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %439

398:                                              ; preds = %393, %387
  br label %399

399:                                              ; preds = %398, %382
  br label %400

400:                                              ; preds = %399, %347
  %401 = load i8, ptr %19, align 1, !tbaa !11, !range !13, !noundef !14
  %402 = trunc i8 %401 to i1
  br i1 %402, label %403, label %412

403:                                              ; preds = %400
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %404 unwind label %364

404:                                              ; preds = %403
  %405 = load float, ptr %16, align 4, !tbaa !9
  %406 = load float, ptr %18, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %21, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %405, float noundef %406, float noundef -0.000000e+00)
          to label %407 unwind label %408

407:                                              ; preds = %404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %412

408:                                              ; preds = %404
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %4, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %439

412:                                              ; preds = %407, %400
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  %413 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %414 = add nsw i32 %413, 1
  store i32 %414, 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 %415 unwind label %443

415:                                              ; preds = %412
  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 4, ptr %24) #7
  %416 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef 1.000000e+00) #7
  store float %416, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %417 = invoke noundef float @_ZSt4fabsf(float noundef 1.000000e+00)
          to label %418 unwind label %447

418:                                              ; preds = %415
  store float %417, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %419 = load float, ptr %24, align 4, !tbaa !9
  %420 = load float, ptr %25, align 4, !tbaa !9
  %421 = fsub float %419, %420
  %422 = invoke noundef float @_ZSt3absf(float noundef %421)
          to label %423 unwind label %451

423:                                              ; preds = %418
  %424 = load float, ptr %25, align 4, !tbaa !9
  %425 = invoke noundef float @_ZSt3absf(float noundef %424)
          to label %426 unwind label %451

426:                                              ; preds = %423
  %427 = fadd float 1.000000e+00, %425
  %428 = fdiv float %422, %427
  store float %428, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  store i8 0, ptr %27, align 1, !tbaa !11
  %429 = load float, ptr %24, align 4, !tbaa !9
  %430 = fpext float %429 to x86_fp80
  %431 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %430)
          to label %432 unwind label %455

432:                                              ; preds = %426
  br i1 %431, label %433, label %459

433:                                              ; preds = %432
  %434 = load float, ptr %25, align 4, !tbaa !9
  %435 = fpext float %434 to x86_fp80
  %436 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %435)
          to label %437 unwind label %455

437:                                              ; preds = %433
  br i1 %436, label %438, label %459

438:                                              ; preds = %437
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %491

439:                                              ; preds = %408, %394, %364
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %440

440:                                              ; preds = %439, %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %441

441:                                              ; preds = %440, %356
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %442

442:                                              ; preds = %441, %352
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %2647

443:                                              ; preds = %412
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %4, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, 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 %533

447:                                              ; preds = %415
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %4, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %5, align 4
  br label %532

451:                                              ; preds = %423, %418
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %4, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %5, align 4
  br label %531

455:                                              ; preds = %494, %479, %464, %459, %433, %426
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %4, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %5, align 4
  br label %530

459:                                              ; preds = %437, %432
  %460 = load float, ptr %24, align 4, !tbaa !9
  %461 = fpext float %460 to x86_fp80
  %462 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %461)
          to label %463 unwind label %455

463:                                              ; preds = %459
  br i1 %462, label %474, label %464

464:                                              ; preds = %463
  %465 = load float, ptr %24, align 4, !tbaa !9
  %466 = fpext float %465 to x86_fp80
  %467 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %466)
          to label %468 unwind label %455

468:                                              ; preds = %464
  br i1 %467, label %469, label %474

469:                                              ; preds = %468
  %470 = load float, ptr %24, align 4, !tbaa !9
  %471 = load float, ptr %25, align 4, !tbaa !9
  %472 = fcmp oeq float %470, %471
  br i1 %472, label %473, label %474

473:                                              ; preds = %469
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %490

474:                                              ; preds = %469, %468, %463
  %475 = load float, ptr %26, align 4, !tbaa !9
  %476 = fpext float %475 to double
  %477 = fcmp olt double %476, 0x3D06849B86A12B9B
  br i1 %477, label %478, label %479

478:                                              ; preds = %474
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %489

479:                                              ; preds = %474
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %480 unwind label %455

480:                                              ; preds = %479
  %481 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %482 = load float, ptr %24, align 4, !tbaa !9
  %483 = load float, ptr %25, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %28, i32 noundef %481, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %482, float noundef %483, float noundef 1.000000e+00)
          to label %484 unwind label %485

484:                                              ; preds = %480
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %489

485:                                              ; preds = %480
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %4, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %530

489:                                              ; preds = %484, %478
  br label %490

490:                                              ; preds = %489, %473
  br label %491

491:                                              ; preds = %490, %438
  %492 = load i8, ptr %27, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %503

494:                                              ; preds = %491
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %495 unwind label %455

495:                                              ; preds = %494
  %496 = load float, ptr %24, align 4, !tbaa !9
  %497 = load float, ptr %26, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %29, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %496, float noundef %497, float noundef 1.000000e+00)
          to label %498 unwind label %499

498:                                              ; preds = %495
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %503

499:                                              ; preds = %495
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %4, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %530

503:                                              ; preds = %498, %491
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  %504 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, 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 %506 unwind label %534

506:                                              ; preds = %503
  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 4, ptr %32) #7
  %507 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef -1.000000e+00) #7
  store float %507, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  %508 = invoke noundef float @_ZSt4fabsf(float noundef -1.000000e+00)
          to label %509 unwind label %538

509:                                              ; preds = %506
  store float %508, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %510 = load float, ptr %32, align 4, !tbaa !9
  %511 = load float, ptr %33, align 4, !tbaa !9
  %512 = fsub float %510, %511
  %513 = invoke noundef float @_ZSt3absf(float noundef %512)
          to label %514 unwind label %542

514:                                              ; preds = %509
  %515 = load float, ptr %33, align 4, !tbaa !9
  %516 = invoke noundef float @_ZSt3absf(float noundef %515)
          to label %517 unwind label %542

517:                                              ; preds = %514
  %518 = fadd float 1.000000e+00, %516
  %519 = fdiv float %513, %518
  store float %519, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  store i8 0, ptr %35, align 1, !tbaa !11
  %520 = load float, ptr %32, align 4, !tbaa !9
  %521 = fpext float %520 to x86_fp80
  %522 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %521)
          to label %523 unwind label %546

523:                                              ; preds = %517
  br i1 %522, label %524, label %550

524:                                              ; preds = %523
  %525 = load float, ptr %33, align 4, !tbaa !9
  %526 = fpext float %525 to x86_fp80
  %527 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %526)
          to label %528 unwind label %546

528:                                              ; preds = %524
  br i1 %527, label %529, label %550

529:                                              ; preds = %528
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %582

530:                                              ; preds = %499, %485, %455
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  br label %531

531:                                              ; preds = %530, %451
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %532

532:                                              ; preds = %531, %447
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %533

533:                                              ; preds = %532, %443
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %2647

534:                                              ; preds = %503
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %4, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, 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 %623

538:                                              ; preds = %506
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %4, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %5, align 4
  br label %622

542:                                              ; preds = %514, %509
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %4, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %5, align 4
  br label %621

546:                                              ; preds = %585, %570, %555, %550, %524, %517
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %4, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %5, align 4
  br label %620

550:                                              ; preds = %528, %523
  %551 = load float, ptr %32, align 4, !tbaa !9
  %552 = fpext float %551 to x86_fp80
  %553 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %552)
          to label %554 unwind label %546

554:                                              ; preds = %550
  br i1 %553, label %565, label %555

555:                                              ; preds = %554
  %556 = load float, ptr %32, align 4, !tbaa !9
  %557 = fpext float %556 to x86_fp80
  %558 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %557)
          to label %559 unwind label %546

559:                                              ; preds = %555
  br i1 %558, label %560, label %565

560:                                              ; preds = %559
  %561 = load float, ptr %32, align 4, !tbaa !9
  %562 = load float, ptr %33, align 4, !tbaa !9
  %563 = fcmp oeq float %561, %562
  br i1 %563, label %564, label %565

564:                                              ; preds = %560
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %581

565:                                              ; preds = %560, %559, %554
  %566 = load float, ptr %34, align 4, !tbaa !9
  %567 = fpext float %566 to double
  %568 = fcmp olt double %567, 0x3D06849B86A12B9B
  br i1 %568, label %569, label %570

569:                                              ; preds = %565
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %580

570:                                              ; preds = %565
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %571 unwind label %546

571:                                              ; preds = %570
  %572 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %573 = load float, ptr %32, align 4, !tbaa !9
  %574 = load float, ptr %33, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %36, i32 noundef %572, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %573, float noundef %574, float noundef -1.000000e+00)
          to label %575 unwind label %576

575:                                              ; preds = %571
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %580

576:                                              ; preds = %571
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %4, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %620

580:                                              ; preds = %575, %569
  br label %581

581:                                              ; preds = %580, %564
  br label %582

582:                                              ; preds = %581, %529
  %583 = load i8, ptr %35, align 1, !tbaa !11, !range !13, !noundef !14
  %584 = trunc i8 %583 to i1
  br i1 %584, label %585, label %594

585:                                              ; preds = %582
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %586 unwind label %546

586:                                              ; preds = %585
  %587 = load float, ptr %32, align 4, !tbaa !9
  %588 = load float, ptr %34, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %37, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %587, float noundef %588, float noundef -1.000000e+00)
          to label %589 unwind label %590

589:                                              ; preds = %586
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %594

590:                                              ; preds = %586
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %4, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %620

594:                                              ; preds = %589, %582
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  %595 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %596 = add nsw i32 %595, 1
  store i32 %596, 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 %597 unwind label %624

597:                                              ; preds = %594
  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
  %598 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #7
  store double %598, ptr %40, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %599 = call double @llvm.fabs.f64(double 0.000000e+00)
  store double %599, ptr %41, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %600 = load double, ptr %40, align 8, !tbaa !15
  %601 = load double, ptr %41, align 8, !tbaa !15
  %602 = fsub double %600, %601
  %603 = invoke noundef double @_ZSt3absd(double noundef %602)
          to label %604 unwind label %628

604:                                              ; preds = %597
  %605 = load double, ptr %41, align 8, !tbaa !15
  %606 = invoke noundef double @_ZSt3absd(double noundef %605)
          to label %607 unwind label %628

607:                                              ; preds = %604
  %608 = fadd double 1.000000e+00, %606
  %609 = fdiv double %603, %608
  store double %609, ptr %42, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  store i8 0, ptr %43, align 1, !tbaa !11
  %610 = load double, ptr %40, align 8, !tbaa !15
  %611 = fpext double %610 to x86_fp80
  %612 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %611)
          to label %613 unwind label %632

613:                                              ; preds = %607
  br i1 %612, label %614, label %636

614:                                              ; preds = %613
  %615 = load double, ptr %41, align 8, !tbaa !15
  %616 = fpext double %615 to x86_fp80
  %617 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %616)
          to label %618 unwind label %632

618:                                              ; preds = %614
  br i1 %617, label %619, label %636

619:                                              ; preds = %618
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %667

620:                                              ; preds = %590, %576, %546
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %621

621:                                              ; preds = %620, %542
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %622

622:                                              ; preds = %621, %538
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %623

623:                                              ; preds = %622, %534
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %2647

624:                                              ; preds = %594
  %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
  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 %707

628:                                              ; preds = %604, %597
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %4, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %5, align 4
  br label %706

632:                                              ; preds = %670, %655, %641, %636, %614, %607
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %4, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %5, align 4
  br label %705

636:                                              ; preds = %618, %613
  %637 = load double, ptr %40, align 8, !tbaa !15
  %638 = fpext double %637 to x86_fp80
  %639 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %638)
          to label %640 unwind label %632

640:                                              ; preds = %636
  br i1 %639, label %651, label %641

641:                                              ; preds = %640
  %642 = load double, ptr %40, align 8, !tbaa !15
  %643 = fpext double %642 to x86_fp80
  %644 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %643)
          to label %645 unwind label %632

645:                                              ; preds = %641
  br i1 %644, label %646, label %651

646:                                              ; preds = %645
  %647 = load double, ptr %40, align 8, !tbaa !15
  %648 = load double, ptr %41, align 8, !tbaa !15
  %649 = fcmp oeq double %647, %648
  br i1 %649, label %650, label %651

650:                                              ; preds = %646
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %666

651:                                              ; preds = %646, %645, %640
  %652 = load double, ptr %42, align 8, !tbaa !15
  %653 = fcmp olt double %652, 0x3D06849B86A12B9B
  br i1 %653, label %654, label %655

654:                                              ; preds = %651
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %665

655:                                              ; preds = %651
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %656 unwind label %632

656:                                              ; preds = %655
  %657 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %658 = load double, ptr %40, align 8, !tbaa !15
  %659 = load double, ptr %41, align 8, !tbaa !15
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %44, i32 noundef %657, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %658, double noundef %659, double noundef 0.000000e+00)
          to label %660 unwind label %661

660:                                              ; preds = %656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %665

661:                                              ; preds = %656
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %4, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %705

665:                                              ; preds = %660, %654
  br label %666

666:                                              ; preds = %665, %650
  br label %667

667:                                              ; preds = %666, %619
  %668 = load i8, ptr %43, align 1, !tbaa !11, !range !13, !noundef !14
  %669 = trunc i8 %668 to i1
  br i1 %669, label %670, label %679

670:                                              ; preds = %667
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %671 unwind label %632

671:                                              ; preds = %670
  %672 = load double, ptr %40, align 8, !tbaa !15
  %673 = load double, ptr %42, align 8, !tbaa !15
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %45, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %672, double noundef %673, double noundef 0.000000e+00)
          to label %674 unwind label %675

674:                                              ; preds = %671
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %679

675:                                              ; preds = %671
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %4, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %705

679:                                              ; preds = %674, %667
  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
  %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 %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 %682 unwind label %708

682:                                              ; preds = %679
  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
  %683 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #7
  store double %683, ptr %48, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %684 = call double @llvm.fabs.f64(double -0.000000e+00)
  store double %684, ptr %49, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %685 = load double, ptr %48, align 8, !tbaa !15
  %686 = load double, ptr %49, align 8, !tbaa !15
  %687 = fsub double %685, %686
  %688 = invoke noundef double @_ZSt3absd(double noundef %687)
          to label %689 unwind label %712

689:                                              ; preds = %682
  %690 = load double, ptr %49, align 8, !tbaa !15
  %691 = invoke noundef double @_ZSt3absd(double noundef %690)
          to label %692 unwind label %712

692:                                              ; preds = %689
  %693 = fadd double 1.000000e+00, %691
  %694 = fdiv double %688, %693
  store double %694, ptr %50, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #7
  store i8 0, ptr %51, align 1, !tbaa !11
  %695 = load double, ptr %48, align 8, !tbaa !15
  %696 = fpext double %695 to x86_fp80
  %697 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %696)
          to label %698 unwind label %716

698:                                              ; preds = %692
  br i1 %697, label %699, label %720

699:                                              ; preds = %698
  %700 = load double, ptr %49, align 8, !tbaa !15
  %701 = fpext double %700 to x86_fp80
  %702 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %701)
          to label %703 unwind label %716

703:                                              ; preds = %699
  br i1 %702, label %704, label %720

704:                                              ; preds = %703
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %751

705:                                              ; preds = %675, %661, %632
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %706

706:                                              ; preds = %705, %628
  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 %707

707:                                              ; preds = %706, %624
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %2647

708:                                              ; preds = %679
  %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
  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 %791

712:                                              ; preds = %689, %682
  %713 = landingpad { ptr, i32 }
          cleanup
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %4, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %5, align 4
  br label %790

716:                                              ; preds = %754, %739, %725, %720, %699, %692
  %717 = landingpad { ptr, i32 }
          cleanup
  %718 = extractvalue { ptr, i32 } %717, 0
  store ptr %718, ptr %4, align 8
  %719 = extractvalue { ptr, i32 } %717, 1
  store i32 %719, ptr %5, align 4
  br label %789

720:                                              ; preds = %703, %698
  %721 = load double, ptr %48, align 8, !tbaa !15
  %722 = fpext double %721 to x86_fp80
  %723 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %722)
          to label %724 unwind label %716

724:                                              ; preds = %720
  br i1 %723, label %735, label %725

725:                                              ; preds = %724
  %726 = load double, ptr %48, align 8, !tbaa !15
  %727 = fpext double %726 to x86_fp80
  %728 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %727)
          to label %729 unwind label %716

729:                                              ; preds = %725
  br i1 %728, label %730, label %735

730:                                              ; preds = %729
  %731 = load double, ptr %48, align 8, !tbaa !15
  %732 = load double, ptr %49, align 8, !tbaa !15
  %733 = fcmp oeq double %731, %732
  br i1 %733, label %734, label %735

734:                                              ; preds = %730
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %750

735:                                              ; preds = %730, %729, %724
  %736 = load double, ptr %50, align 8, !tbaa !15
  %737 = fcmp olt double %736, 0x3D06849B86A12B9B
  br i1 %737, label %738, label %739

738:                                              ; preds = %735
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %749

739:                                              ; preds = %735
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %740 unwind label %716

740:                                              ; preds = %739
  %741 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %742 = load double, ptr %48, align 8, !tbaa !15
  %743 = load double, ptr %49, align 8, !tbaa !15
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %52, i32 noundef %741, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %742, double noundef %743, double noundef -0.000000e+00)
          to label %744 unwind label %745

744:                                              ; preds = %740
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %749

745:                                              ; preds = %740
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %4, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %789

749:                                              ; preds = %744, %738
  br label %750

750:                                              ; preds = %749, %734
  br label %751

751:                                              ; preds = %750, %704
  %752 = load i8, ptr %51, align 1, !tbaa !11, !range !13, !noundef !14
  %753 = trunc i8 %752 to i1
  br i1 %753, label %754, label %763

754:                                              ; preds = %751
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %755 unwind label %716

755:                                              ; preds = %754
  %756 = load double, ptr %48, align 8, !tbaa !15
  %757 = load double, ptr %50, align 8, !tbaa !15
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %53, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %756, double noundef %757, double noundef -0.000000e+00)
          to label %758 unwind label %759

758:                                              ; preds = %755
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %763

759:                                              ; preds = %755
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %4, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %789

763:                                              ; preds = %758, %751
  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
  %764 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %765 = add nsw i32 %764, 1
  store i32 %765, 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 %766 unwind label %792

766:                                              ; preds = %763
  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
  %767 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 1.000000e+00) #7
  store double %767, ptr %56, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %768 = call double @llvm.fabs.f64(double 1.000000e+00)
  store double %768, ptr %57, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %769 = load double, ptr %56, align 8, !tbaa !15
  %770 = load double, ptr %57, align 8, !tbaa !15
  %771 = fsub double %769, %770
  %772 = invoke noundef double @_ZSt3absd(double noundef %771)
          to label %773 unwind label %796

773:                                              ; preds = %766
  %774 = load double, ptr %57, align 8, !tbaa !15
  %775 = invoke noundef double @_ZSt3absd(double noundef %774)
          to label %776 unwind label %796

776:                                              ; preds = %773
  %777 = fadd double 1.000000e+00, %775
  %778 = fdiv double %772, %777
  store double %778, ptr %58, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  store i8 0, ptr %59, align 1, !tbaa !11
  %779 = load double, ptr %56, align 8, !tbaa !15
  %780 = fpext double %779 to x86_fp80
  %781 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %780)
          to label %782 unwind label %800

782:                                              ; preds = %776
  br i1 %781, label %783, label %804

783:                                              ; preds = %782
  %784 = load double, ptr %57, align 8, !tbaa !15
  %785 = fpext double %784 to x86_fp80
  %786 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %785)
          to label %787 unwind label %800

787:                                              ; preds = %783
  br i1 %786, label %788, label %804

788:                                              ; preds = %787
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %835

789:                                              ; preds = %759, %745, %716
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  br label %790

790:                                              ; preds = %789, %712
  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 %791

791:                                              ; preds = %790, %708
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %2647

792:                                              ; preds = %763
  %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
  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 %875

796:                                              ; preds = %773, %766
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %4, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %5, align 4
  br label %874

800:                                              ; preds = %838, %823, %809, %804, %783, %776
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %4, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %5, align 4
  br label %873

804:                                              ; preds = %787, %782
  %805 = load double, ptr %56, align 8, !tbaa !15
  %806 = fpext double %805 to x86_fp80
  %807 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %806)
          to label %808 unwind label %800

808:                                              ; preds = %804
  br i1 %807, label %819, label %809

809:                                              ; preds = %808
  %810 = load double, ptr %56, align 8, !tbaa !15
  %811 = fpext double %810 to x86_fp80
  %812 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %811)
          to label %813 unwind label %800

813:                                              ; preds = %809
  br i1 %812, label %814, label %819

814:                                              ; preds = %813
  %815 = load double, ptr %56, align 8, !tbaa !15
  %816 = load double, ptr %57, align 8, !tbaa !15
  %817 = fcmp oeq double %815, %816
  br i1 %817, label %818, label %819

818:                                              ; preds = %814
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %834

819:                                              ; preds = %814, %813, %808
  %820 = load double, ptr %58, align 8, !tbaa !15
  %821 = fcmp olt double %820, 0x3D06849B86A12B9B
  br i1 %821, label %822, label %823

822:                                              ; preds = %819
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %833

823:                                              ; preds = %819
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %824 unwind label %800

824:                                              ; preds = %823
  %825 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %826 = load double, ptr %56, align 8, !tbaa !15
  %827 = load double, ptr %57, align 8, !tbaa !15
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %60, i32 noundef %825, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %826, double noundef %827, double noundef 1.000000e+00)
          to label %828 unwind label %829

828:                                              ; preds = %824
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %833

829:                                              ; preds = %824
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %4, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %873

833:                                              ; preds = %828, %822
  br label %834

834:                                              ; preds = %833, %818
  br label %835

835:                                              ; preds = %834, %788
  %836 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %837 = trunc i8 %836 to i1
  br i1 %837, label %838, label %847

838:                                              ; preds = %835
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %839 unwind label %800

839:                                              ; preds = %838
  %840 = load double, ptr %56, align 8, !tbaa !15
  %841 = load double, ptr %58, align 8, !tbaa !15
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %61, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %840, double noundef %841, double noundef 1.000000e+00)
          to label %842 unwind label %843

842:                                              ; preds = %839
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %847

843:                                              ; preds = %839
  %844 = landingpad { ptr, i32 }
          cleanup
  %845 = extractvalue { ptr, i32 } %844, 0
  store ptr %845, ptr %4, align 8
  %846 = extractvalue { ptr, i32 } %844, 1
  store i32 %846, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %873

847:                                              ; preds = %842, %835
  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
  %848 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %849 = add nsw i32 %848, 1
  store i32 %849, 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 %850 unwind label %876

850:                                              ; preds = %847
  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
  %851 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -1.000000e+00) #7
  store double %851, ptr %64, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %852 = call double @llvm.fabs.f64(double -1.000000e+00)
  store double %852, ptr %65, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %853 = load double, ptr %64, align 8, !tbaa !15
  %854 = load double, ptr %65, align 8, !tbaa !15
  %855 = fsub double %853, %854
  %856 = invoke noundef double @_ZSt3absd(double noundef %855)
          to label %857 unwind label %880

857:                                              ; preds = %850
  %858 = load double, ptr %65, align 8, !tbaa !15
  %859 = invoke noundef double @_ZSt3absd(double noundef %858)
          to label %860 unwind label %880

860:                                              ; preds = %857
  %861 = fadd double 1.000000e+00, %859
  %862 = fdiv double %856, %861
  store double %862, ptr %66, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  store i8 0, ptr %67, align 1, !tbaa !11
  %863 = load double, ptr %64, align 8, !tbaa !15
  %864 = fpext double %863 to x86_fp80
  %865 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %864)
          to label %866 unwind label %884

866:                                              ; preds = %860
  br i1 %865, label %867, label %888

867:                                              ; preds = %866
  %868 = load double, ptr %65, align 8, !tbaa !15
  %869 = fpext double %868 to x86_fp80
  %870 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %869)
          to label %871 unwind label %884

871:                                              ; preds = %867
  br i1 %870, label %872, label %888

872:                                              ; preds = %871
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %919

873:                                              ; preds = %843, %829, %800
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  br label %874

874:                                              ; preds = %873, %796
  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 %875

875:                                              ; preds = %874, %792
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %2647

876:                                              ; preds = %847
  %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
  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 %960

880:                                              ; preds = %857, %850
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %4, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %5, align 4
  br label %959

884:                                              ; preds = %922, %907, %893, %888, %867, %860
  %885 = landingpad { ptr, i32 }
          cleanup
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %4, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %5, align 4
  br label %958

888:                                              ; preds = %871, %866
  %889 = load double, ptr %64, align 8, !tbaa !15
  %890 = fpext double %889 to x86_fp80
  %891 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %890)
          to label %892 unwind label %884

892:                                              ; preds = %888
  br i1 %891, label %903, label %893

893:                                              ; preds = %892
  %894 = load double, ptr %64, align 8, !tbaa !15
  %895 = fpext double %894 to x86_fp80
  %896 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %895)
          to label %897 unwind label %884

897:                                              ; preds = %893
  br i1 %896, label %898, label %903

898:                                              ; preds = %897
  %899 = load double, ptr %64, align 8, !tbaa !15
  %900 = load double, ptr %65, align 8, !tbaa !15
  %901 = fcmp oeq double %899, %900
  br i1 %901, label %902, label %903

902:                                              ; preds = %898
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %918

903:                                              ; preds = %898, %897, %892
  %904 = load double, ptr %66, align 8, !tbaa !15
  %905 = fcmp olt double %904, 0x3D06849B86A12B9B
  br i1 %905, label %906, label %907

906:                                              ; preds = %903
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %917

907:                                              ; preds = %903
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %908 unwind label %884

908:                                              ; preds = %907
  %909 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %910 = load double, ptr %64, align 8, !tbaa !15
  %911 = load double, ptr %65, align 8, !tbaa !15
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %68, i32 noundef %909, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %910, double noundef %911, double noundef -1.000000e+00)
          to label %912 unwind label %913

912:                                              ; preds = %908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %917

913:                                              ; preds = %908
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %4, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %958

917:                                              ; preds = %912, %906
  br label %918

918:                                              ; preds = %917, %902
  br label %919

919:                                              ; preds = %918, %872
  %920 = load i8, ptr %67, align 1, !tbaa !11, !range !13, !noundef !14
  %921 = trunc i8 %920 to i1
  br i1 %921, label %922, label %931

922:                                              ; preds = %919
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %923 unwind label %884

923:                                              ; preds = %922
  %924 = load double, ptr %64, align 8, !tbaa !15
  %925 = load double, ptr %66, align 8, !tbaa !15
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %69, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %924, double noundef %925, double noundef -1.000000e+00)
          to label %926 unwind label %927

926:                                              ; preds = %923
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %931

927:                                              ; preds = %923
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %4, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %958

931:                                              ; preds = %926, %919
  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
  %932 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %933 = add nsw i32 %932, 1
  store i32 %933, 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 %934 unwind label %961

934:                                              ; preds = %931
  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
  %935 = call noundef double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef 0) #7
  store double %935, ptr %72, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %936 = invoke noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef 0)
          to label %937 unwind label %965

937:                                              ; preds = %934
  store double %936, ptr %73, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %938 = load double, ptr %72, align 8, !tbaa !15
  %939 = load double, ptr %73, align 8, !tbaa !15
  %940 = fsub double %938, %939
  %941 = invoke noundef double @_ZSt3absd(double noundef %940)
          to label %942 unwind label %969

942:                                              ; preds = %937
  %943 = load double, ptr %73, align 8, !tbaa !15
  %944 = invoke noundef double @_ZSt3absd(double noundef %943)
          to label %945 unwind label %969

945:                                              ; preds = %942
  %946 = fadd double 1.000000e+00, %944
  %947 = fdiv double %941, %946
  store double %947, ptr %74, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #7
  store i8 0, ptr %75, align 1, !tbaa !11
  %948 = load double, ptr %72, align 8, !tbaa !15
  %949 = fpext double %948 to x86_fp80
  %950 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %949)
          to label %951 unwind label %973

951:                                              ; preds = %945
  br i1 %950, label %952, label %977

952:                                              ; preds = %951
  %953 = load double, ptr %73, align 8, !tbaa !15
  %954 = fpext double %953 to x86_fp80
  %955 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %954)
          to label %956 unwind label %973

956:                                              ; preds = %952
  br i1 %955, label %957, label %977

957:                                              ; preds = %956
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %1008

958:                                              ; preds = %927, %913, %884
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  br label %959

959:                                              ; preds = %958, %880
  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 %960

960:                                              ; preds = %959, %876
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %2647

961:                                              ; preds = %931
  %962 = landingpad { ptr, i32 }
          cleanup
  %963 = extractvalue { ptr, i32 } %962, 0
  store ptr %963, ptr %4, align 8
  %964 = extractvalue { ptr, i32 } %962, 1
  store i32 %964, 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 %1050

965:                                              ; preds = %934
  %966 = landingpad { ptr, i32 }
          cleanup
  %967 = extractvalue { ptr, i32 } %966, 0
  store ptr %967, ptr %4, align 8
  %968 = extractvalue { ptr, i32 } %966, 1
  store i32 %968, ptr %5, align 4
  br label %1049

969:                                              ; preds = %942, %937
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %4, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %5, align 4
  br label %1048

973:                                              ; preds = %1011, %996, %982, %977, %952, %945
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %4, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %5, align 4
  br label %1047

977:                                              ; preds = %956, %951
  %978 = load double, ptr %72, align 8, !tbaa !15
  %979 = fpext double %978 to x86_fp80
  %980 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %979)
          to label %981 unwind label %973

981:                                              ; preds = %977
  br i1 %980, label %992, label %982

982:                                              ; preds = %981
  %983 = load double, ptr %72, align 8, !tbaa !15
  %984 = fpext double %983 to x86_fp80
  %985 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %984)
          to label %986 unwind label %973

986:                                              ; preds = %982
  br i1 %985, label %987, label %992

987:                                              ; preds = %986
  %988 = load double, ptr %72, align 8, !tbaa !15
  %989 = load double, ptr %73, align 8, !tbaa !15
  %990 = fcmp oeq double %988, %989
  br i1 %990, label %991, label %992

991:                                              ; preds = %987
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %1007

992:                                              ; preds = %987, %986, %981
  %993 = load double, ptr %74, align 8, !tbaa !15
  %994 = fcmp olt double %993, 0x3D06849B86A12B9B
  br i1 %994, label %995, label %996

995:                                              ; preds = %992
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %1006

996:                                              ; preds = %992
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %997 unwind label %973

997:                                              ; preds = %996
  %998 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %999 = load double, ptr %72, align 8, !tbaa !15
  %1000 = load double, ptr %73, align 8, !tbaa !15
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %76, i32 noundef %998, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %999, double noundef %1000, i32 noundef 0)
          to label %1001 unwind label %1002

1001:                                             ; preds = %997
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %1006

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

1006:                                             ; preds = %1001, %995
  br label %1007

1007:                                             ; preds = %1006, %991
  br label %1008

1008:                                             ; preds = %1007, %957
  %1009 = load i8, ptr %75, align 1, !tbaa !11, !range !13, !noundef !14
  %1010 = trunc i8 %1009 to i1
  br i1 %1010, label %1011, label %1020

1011:                                             ; preds = %1008
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %1012 unwind label %973

1012:                                             ; preds = %1011
  %1013 = load double, ptr %72, align 8, !tbaa !15
  %1014 = load double, ptr %74, align 8, !tbaa !15
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %77, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1013, double noundef %1014, i32 noundef 0)
          to label %1015 unwind label %1016

1015:                                             ; preds = %1012
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %1020

1016:                                             ; preds = %1012
  %1017 = landingpad { ptr, i32 }
          cleanup
  %1018 = extractvalue { ptr, i32 } %1017, 0
  store ptr %1018, ptr %4, align 8
  %1019 = extractvalue { ptr, i32 } %1017, 1
  store i32 %1019, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %1047

1020:                                             ; preds = %1015, %1008
  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
  %1021 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, 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 %1023 unwind label %1051

1023:                                             ; preds = %1020
  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
  %1024 = call noundef double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef 1) #7
  store double %1024, ptr %80, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %1025 = invoke noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef 1)
          to label %1026 unwind label %1055

1026:                                             ; preds = %1023
  store double %1025, ptr %81, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %1027 = load double, ptr %80, align 8, !tbaa !15
  %1028 = load double, ptr %81, align 8, !tbaa !15
  %1029 = fsub double %1027, %1028
  %1030 = invoke noundef double @_ZSt3absd(double noundef %1029)
          to label %1031 unwind label %1059

1031:                                             ; preds = %1026
  %1032 = load double, ptr %81, align 8, !tbaa !15
  %1033 = invoke noundef double @_ZSt3absd(double noundef %1032)
          to label %1034 unwind label %1059

1034:                                             ; preds = %1031
  %1035 = fadd double 1.000000e+00, %1033
  %1036 = fdiv double %1030, %1035
  store double %1036, ptr %82, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #7
  store i8 0, ptr %83, align 1, !tbaa !11
  %1037 = load double, ptr %80, align 8, !tbaa !15
  %1038 = fpext double %1037 to x86_fp80
  %1039 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1038)
          to label %1040 unwind label %1063

1040:                                             ; preds = %1034
  br i1 %1039, label %1041, label %1067

1041:                                             ; preds = %1040
  %1042 = load double, ptr %81, align 8, !tbaa !15
  %1043 = fpext double %1042 to x86_fp80
  %1044 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1043)
          to label %1045 unwind label %1063

1045:                                             ; preds = %1041
  br i1 %1044, label %1046, label %1067

1046:                                             ; preds = %1045
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1098

1047:                                             ; preds = %1016, %1002, %973
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  br label %1048

1048:                                             ; preds = %1047, %969
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  br label %1049

1049:                                             ; preds = %1048, %965
  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 %1050

1050:                                             ; preds = %1049, %961
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %2647

1051:                                             ; preds = %1020
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %4, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, 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 %1140

1055:                                             ; preds = %1023
  %1056 = landingpad { ptr, i32 }
          cleanup
  %1057 = extractvalue { ptr, i32 } %1056, 0
  store ptr %1057, ptr %4, align 8
  %1058 = extractvalue { ptr, i32 } %1056, 1
  store i32 %1058, ptr %5, align 4
  br label %1139

1059:                                             ; preds = %1031, %1026
  %1060 = landingpad { ptr, i32 }
          cleanup
  %1061 = extractvalue { ptr, i32 } %1060, 0
  store ptr %1061, ptr %4, align 8
  %1062 = extractvalue { ptr, i32 } %1060, 1
  store i32 %1062, ptr %5, align 4
  br label %1138

1063:                                             ; preds = %1101, %1086, %1072, %1067, %1041, %1034
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %4, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %5, align 4
  br label %1137

1067:                                             ; preds = %1045, %1040
  %1068 = load double, ptr %80, align 8, !tbaa !15
  %1069 = fpext double %1068 to x86_fp80
  %1070 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1069)
          to label %1071 unwind label %1063

1071:                                             ; preds = %1067
  br i1 %1070, label %1082, label %1072

1072:                                             ; preds = %1071
  %1073 = load double, ptr %80, align 8, !tbaa !15
  %1074 = fpext double %1073 to x86_fp80
  %1075 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1074)
          to label %1076 unwind label %1063

1076:                                             ; preds = %1072
  br i1 %1075, label %1077, label %1082

1077:                                             ; preds = %1076
  %1078 = load double, ptr %80, align 8, !tbaa !15
  %1079 = load double, ptr %81, align 8, !tbaa !15
  %1080 = fcmp oeq double %1078, %1079
  br i1 %1080, label %1081, label %1082

1081:                                             ; preds = %1077
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1097

1082:                                             ; preds = %1077, %1076, %1071
  %1083 = load double, ptr %82, align 8, !tbaa !15
  %1084 = fcmp olt double %1083, 0x3D06849B86A12B9B
  br i1 %1084, label %1085, label %1086

1085:                                             ; preds = %1082
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1096

1086:                                             ; preds = %1082
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1087 unwind label %1063

1087:                                             ; preds = %1086
  %1088 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1089 = load double, ptr %80, align 8, !tbaa !15
  %1090 = load double, ptr %81, align 8, !tbaa !15
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %84, i32 noundef %1088, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1089, double noundef %1090, i32 noundef 1)
          to label %1091 unwind label %1092

1091:                                             ; preds = %1087
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1096

1092:                                             ; preds = %1087
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %4, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1137

1096:                                             ; preds = %1091, %1085
  br label %1097

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

1098:                                             ; preds = %1097, %1046
  %1099 = load i8, ptr %83, align 1, !tbaa !11, !range !13, !noundef !14
  %1100 = trunc i8 %1099 to i1
  br i1 %1100, label %1101, label %1110

1101:                                             ; preds = %1098
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1102 unwind label %1063

1102:                                             ; preds = %1101
  %1103 = load double, ptr %80, align 8, !tbaa !15
  %1104 = load double, ptr %82, align 8, !tbaa !15
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %85, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1103, double noundef %1104, i32 noundef 1)
          to label %1105 unwind label %1106

1105:                                             ; preds = %1102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1110

1106:                                             ; preds = %1102
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %4, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1137

1110:                                             ; preds = %1105, %1098
  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
  %1111 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, 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 %1113 unwind label %1141

1113:                                             ; preds = %1110
  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
  %1114 = call noundef double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef -1) #7
  store double %1114, ptr %88, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  %1115 = invoke noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef -1)
          to label %1116 unwind label %1145

1116:                                             ; preds = %1113
  store double %1115, ptr %89, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %1117 = load double, ptr %88, align 8, !tbaa !15
  %1118 = load double, ptr %89, align 8, !tbaa !15
  %1119 = fsub double %1117, %1118
  %1120 = invoke noundef double @_ZSt3absd(double noundef %1119)
          to label %1121 unwind label %1149

1121:                                             ; preds = %1116
  %1122 = load double, ptr %89, align 8, !tbaa !15
  %1123 = invoke noundef double @_ZSt3absd(double noundef %1122)
          to label %1124 unwind label %1149

1124:                                             ; preds = %1121
  %1125 = fadd double 1.000000e+00, %1123
  %1126 = fdiv double %1120, %1125
  store double %1126, ptr %90, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #7
  store i8 0, ptr %91, align 1, !tbaa !11
  %1127 = load double, ptr %88, align 8, !tbaa !15
  %1128 = fpext double %1127 to x86_fp80
  %1129 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1128)
          to label %1130 unwind label %1153

1130:                                             ; preds = %1124
  br i1 %1129, label %1131, label %1157

1131:                                             ; preds = %1130
  %1132 = load double, ptr %89, align 8, !tbaa !15
  %1133 = fpext double %1132 to x86_fp80
  %1134 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1133)
          to label %1135 unwind label %1153

1135:                                             ; preds = %1131
  br i1 %1134, label %1136, label %1157

1136:                                             ; preds = %1135
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1188

1137:                                             ; preds = %1106, %1092, %1063
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  br label %1138

1138:                                             ; preds = %1137, %1059
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  br label %1139

1139:                                             ; preds = %1138, %1055
  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 %1140

1140:                                             ; preds = %1139, %1051
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  br label %2647

1141:                                             ; preds = %1110
  %1142 = landingpad { ptr, i32 }
          cleanup
  %1143 = extractvalue { ptr, i32 } %1142, 0
  store ptr %1143, ptr %4, align 8
  %1144 = extractvalue { ptr, i32 } %1142, 1
  store i32 %1144, 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 %1228

1145:                                             ; preds = %1113
  %1146 = landingpad { ptr, i32 }
          cleanup
  %1147 = extractvalue { ptr, i32 } %1146, 0
  store ptr %1147, ptr %4, align 8
  %1148 = extractvalue { ptr, i32 } %1146, 1
  store i32 %1148, ptr %5, align 4
  br label %1227

1149:                                             ; preds = %1121, %1116
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %4, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %5, align 4
  br label %1226

1153:                                             ; preds = %1191, %1176, %1162, %1157, %1131, %1124
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %4, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %5, align 4
  br label %1225

1157:                                             ; preds = %1135, %1130
  %1158 = load double, ptr %88, align 8, !tbaa !15
  %1159 = fpext double %1158 to x86_fp80
  %1160 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1159)
          to label %1161 unwind label %1153

1161:                                             ; preds = %1157
  br i1 %1160, label %1172, label %1162

1162:                                             ; preds = %1161
  %1163 = load double, ptr %88, align 8, !tbaa !15
  %1164 = fpext double %1163 to x86_fp80
  %1165 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1164)
          to label %1166 unwind label %1153

1166:                                             ; preds = %1162
  br i1 %1165, label %1167, label %1172

1167:                                             ; preds = %1166
  %1168 = load double, ptr %88, align 8, !tbaa !15
  %1169 = load double, ptr %89, align 8, !tbaa !15
  %1170 = fcmp oeq double %1168, %1169
  br i1 %1170, label %1171, label %1172

1171:                                             ; preds = %1167
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1187

1172:                                             ; preds = %1167, %1166, %1161
  %1173 = load double, ptr %90, align 8, !tbaa !15
  %1174 = fcmp olt double %1173, 0x3D06849B86A12B9B
  br i1 %1174, label %1175, label %1176

1175:                                             ; preds = %1172
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1186

1176:                                             ; preds = %1172
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1177 unwind label %1153

1177:                                             ; preds = %1176
  %1178 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1179 = load double, ptr %88, align 8, !tbaa !15
  %1180 = load double, ptr %89, align 8, !tbaa !15
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %92, i32 noundef %1178, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1179, double noundef %1180, i32 noundef -1)
          to label %1181 unwind label %1182

1181:                                             ; preds = %1177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1186

1182:                                             ; preds = %1177
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %4, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1225

1186:                                             ; preds = %1181, %1175
  br label %1187

1187:                                             ; preds = %1186, %1171
  br label %1188

1188:                                             ; preds = %1187, %1136
  %1189 = load i8, ptr %91, align 1, !tbaa !11, !range !13, !noundef !14
  %1190 = trunc i8 %1189 to i1
  br i1 %1190, label %1191, label %1200

1191:                                             ; preds = %1188
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1192 unwind label %1153

1192:                                             ; preds = %1191
  %1193 = load double, ptr %88, align 8, !tbaa !15
  %1194 = load double, ptr %90, align 8, !tbaa !15
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %93, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1193, double noundef %1194, i32 noundef -1)
          to label %1195 unwind label %1196

1195:                                             ; preds = %1192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1200

1196:                                             ; preds = %1192
  %1197 = landingpad { ptr, i32 }
          cleanup
  %1198 = extractvalue { ptr, i32 } %1197, 0
  store ptr %1198, ptr %4, align 8
  %1199 = extractvalue { ptr, i32 } %1197, 1
  store i32 %1199, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1225

1200:                                             ; preds = %1195, %1188
  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
  %1201 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, 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 %1203 unwind label %1229

1203:                                             ; preds = %1200
  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 16, ptr %96) #7
  %1204 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #7
  store x86_fp80 %1204, ptr %96, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #7
  %1205 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK00000000000000000000)
          to label %1206 unwind label %1233

1206:                                             ; preds = %1203
  store x86_fp80 %1205, ptr %97, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #7
  %1207 = load x86_fp80, ptr %96, align 16, !tbaa !17
  %1208 = load x86_fp80, ptr %97, align 16, !tbaa !17
  %1209 = fsub x86_fp80 %1207, %1208
  %1210 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1209)
          to label %1211 unwind label %1237

1211:                                             ; preds = %1206
  %1212 = load x86_fp80, ptr %97, align 16, !tbaa !17
  %1213 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1212)
          to label %1214 unwind label %1237

1214:                                             ; preds = %1211
  %1215 = fadd x86_fp80 0xK3FFF8000000000000000, %1213
  %1216 = fdiv x86_fp80 %1210, %1215
  store x86_fp80 %1216, ptr %98, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #7
  store i8 0, ptr %99, align 1, !tbaa !11
  %1217 = load x86_fp80, ptr %96, align 16, !tbaa !17
  %1218 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1217)
          to label %1219 unwind label %1241

1219:                                             ; preds = %1214
  br i1 %1218, label %1220, label %1245

1220:                                             ; preds = %1219
  %1221 = load x86_fp80, ptr %97, align 16, !tbaa !17
  %1222 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1221)
          to label %1223 unwind label %1241

1223:                                             ; preds = %1220
  br i1 %1222, label %1224, label %1245

1224:                                             ; preds = %1223
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1274

1225:                                             ; preds = %1196, %1182, %1153
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  br label %1226

1226:                                             ; preds = %1225, %1149
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  br label %1227

1227:                                             ; preds = %1226, %1145
  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 %1228

1228:                                             ; preds = %1227, %1141
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  br label %2647

1229:                                             ; preds = %1200
  %1230 = landingpad { ptr, i32 }
          cleanup
  %1231 = extractvalue { ptr, i32 } %1230, 0
  store ptr %1231, ptr %4, align 8
  %1232 = extractvalue { ptr, i32 } %1230, 1
  store i32 %1232, 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 %1314

1233:                                             ; preds = %1203
  %1234 = landingpad { ptr, i32 }
          cleanup
  %1235 = extractvalue { ptr, i32 } %1234, 0
  store ptr %1235, ptr %4, align 8
  %1236 = extractvalue { ptr, i32 } %1234, 1
  store i32 %1236, ptr %5, align 4
  br label %1313

1237:                                             ; preds = %1211, %1206
  %1238 = landingpad { ptr, i32 }
          cleanup
  %1239 = extractvalue { ptr, i32 } %1238, 0
  store ptr %1239, ptr %4, align 8
  %1240 = extractvalue { ptr, i32 } %1238, 1
  store i32 %1240, ptr %5, align 4
  br label %1312

1241:                                             ; preds = %1277, %1262, %1249, %1245, %1220, %1214
  %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
  br label %1311

1245:                                             ; preds = %1223, %1219
  %1246 = load x86_fp80, ptr %96, align 16, !tbaa !17
  %1247 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1246)
          to label %1248 unwind label %1241

1248:                                             ; preds = %1245
  br i1 %1247, label %1258, label %1249

1249:                                             ; preds = %1248
  %1250 = load x86_fp80, ptr %96, align 16, !tbaa !17
  %1251 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1250)
          to label %1252 unwind label %1241

1252:                                             ; preds = %1249
  br i1 %1251, label %1253, label %1258

1253:                                             ; preds = %1252
  %1254 = load x86_fp80, ptr %96, align 16, !tbaa !17
  %1255 = load x86_fp80, ptr %97, align 16, !tbaa !17
  %1256 = fcmp oeq x86_fp80 %1254, %1255
  br i1 %1256, label %1257, label %1258

1257:                                             ; preds = %1253
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1273

1258:                                             ; preds = %1253, %1252, %1248
  %1259 = load x86_fp80, ptr %98, align 16, !tbaa !17
  %1260 = fcmp olt x86_fp80 %1259, 0xK3FD0B424DC35095CD800
  br i1 %1260, label %1261, label %1262

1261:                                             ; preds = %1258
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1272

1262:                                             ; preds = %1258
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1263 unwind label %1241

1263:                                             ; preds = %1262
  %1264 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1265 = load x86_fp80, ptr %96, align 16, !tbaa !17
  %1266 = load x86_fp80, ptr %97, align 16, !tbaa !17
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %100, i32 noundef %1264, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1265, x86_fp80 noundef %1266, x86_fp80 noundef 0xK00000000000000000000)
          to label %1267 unwind label %1268

1267:                                             ; preds = %1263
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1272

1268:                                             ; preds = %1263
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %4, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1311

1272:                                             ; preds = %1267, %1261
  br label %1273

1273:                                             ; preds = %1272, %1257
  br label %1274

1274:                                             ; preds = %1273, %1224
  %1275 = load i8, ptr %99, align 1, !tbaa !11, !range !13, !noundef !14
  %1276 = trunc i8 %1275 to i1
  br i1 %1276, label %1277, label %1286

1277:                                             ; preds = %1274
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1278 unwind label %1241

1278:                                             ; preds = %1277
  %1279 = load x86_fp80, ptr %96, align 16, !tbaa !17
  %1280 = load x86_fp80, ptr %98, align 16, !tbaa !17
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %101, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1279, x86_fp80 noundef %1280, x86_fp80 noundef 0xK00000000000000000000)
          to label %1281 unwind label %1282

1281:                                             ; preds = %1278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1286

1282:                                             ; preds = %1278
  %1283 = landingpad { ptr, i32 }
          cleanup
  %1284 = extractvalue { ptr, i32 } %1283, 0
  store ptr %1284, ptr %4, align 8
  %1285 = extractvalue { ptr, i32 } %1283, 1
  store i32 %1285, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1311

1286:                                             ; preds = %1281, %1274
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %1287 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1288 = add nsw i32 %1287, 1
  store i32 %1288, 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 %1289 unwind label %1315

1289:                                             ; preds = %1286
  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
  %1290 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK80000000000000000000) #7
  store x86_fp80 %1290, ptr %104, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #7
  %1291 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK80000000000000000000)
          to label %1292 unwind label %1319

1292:                                             ; preds = %1289
  store x86_fp80 %1291, ptr %105, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #7
  %1293 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1294 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1295 = fsub x86_fp80 %1293, %1294
  %1296 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1295)
          to label %1297 unwind label %1323

1297:                                             ; preds = %1292
  %1298 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1299 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1298)
          to label %1300 unwind label %1323

1300:                                             ; preds = %1297
  %1301 = fadd x86_fp80 0xK3FFF8000000000000000, %1299
  %1302 = fdiv x86_fp80 %1296, %1301
  store x86_fp80 %1302, 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
  %1303 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1304 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1303)
          to label %1305 unwind label %1327

1305:                                             ; preds = %1300
  br i1 %1304, label %1306, label %1331

1306:                                             ; preds = %1305
  %1307 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1308 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1307)
          to label %1309 unwind label %1327

1309:                                             ; preds = %1306
  br i1 %1308, label %1310, label %1331

1310:                                             ; preds = %1309
  store i8 1, ptr %107, align 1, !tbaa !11
  br label %1360

1311:                                             ; preds = %1282, %1268, %1241
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #7
  br label %1312

1312:                                             ; preds = %1311, %1237
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #7
  br label %1313

1313:                                             ; preds = %1312, %1233
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %1314

1314:                                             ; preds = %1313, %1229
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  br label %2647

1315:                                             ; preds = %1286
  %1316 = landingpad { ptr, i32 }
          cleanup
  %1317 = extractvalue { ptr, i32 } %1316, 0
  store ptr %1317, ptr %4, align 8
  %1318 = extractvalue { ptr, i32 } %1316, 1
  store i32 %1318, 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 %1400

1319:                                             ; preds = %1289
  %1320 = landingpad { ptr, i32 }
          cleanup
  %1321 = extractvalue { ptr, i32 } %1320, 0
  store ptr %1321, ptr %4, align 8
  %1322 = extractvalue { ptr, i32 } %1320, 1
  store i32 %1322, ptr %5, align 4
  br label %1399

1323:                                             ; preds = %1297, %1292
  %1324 = landingpad { ptr, i32 }
          cleanup
  %1325 = extractvalue { ptr, i32 } %1324, 0
  store ptr %1325, ptr %4, align 8
  %1326 = extractvalue { ptr, i32 } %1324, 1
  store i32 %1326, ptr %5, align 4
  br label %1398

1327:                                             ; preds = %1363, %1348, %1335, %1331, %1306, %1300
  %1328 = landingpad { ptr, i32 }
          cleanup
  %1329 = extractvalue { ptr, i32 } %1328, 0
  store ptr %1329, ptr %4, align 8
  %1330 = extractvalue { ptr, i32 } %1328, 1
  store i32 %1330, ptr %5, align 4
  br label %1397

1331:                                             ; preds = %1309, %1305
  %1332 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1333 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1332)
          to label %1334 unwind label %1327

1334:                                             ; preds = %1331
  br i1 %1333, label %1344, label %1335

1335:                                             ; preds = %1334
  %1336 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1337 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1336)
          to label %1338 unwind label %1327

1338:                                             ; preds = %1335
  br i1 %1337, label %1339, label %1344

1339:                                             ; preds = %1338
  %1340 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1341 = load x86_fp80, ptr %105, align 16, !tbaa !17
  %1342 = fcmp oeq x86_fp80 %1340, %1341
  br i1 %1342, label %1343, label %1344

1343:                                             ; preds = %1339
  store i8 1, ptr %107, align 1, !tbaa !11
  br label %1359

1344:                                             ; preds = %1339, %1338, %1334
  %1345 = load x86_fp80, ptr %106, align 16, !tbaa !17
  %1346 = fcmp olt x86_fp80 %1345, 0xK3FD0B424DC35095CD800
  br i1 %1346, label %1347, label %1348

1347:                                             ; preds = %1344
  store i8 1, ptr %107, align 1, !tbaa !11
  br label %1358

1348:                                             ; preds = %1344
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1349 unwind label %1327

1349:                                             ; preds = %1348
  %1350 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1351 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1352 = load x86_fp80, ptr %105, align 16, !tbaa !17
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %108, i32 noundef %1350, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1351, x86_fp80 noundef %1352, x86_fp80 noundef 0xK80000000000000000000)
          to label %1353 unwind label %1354

1353:                                             ; preds = %1349
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1358

1354:                                             ; preds = %1349
  %1355 = landingpad { ptr, i32 }
          cleanup
  %1356 = extractvalue { ptr, i32 } %1355, 0
  store ptr %1356, ptr %4, align 8
  %1357 = extractvalue { ptr, i32 } %1355, 1
  store i32 %1357, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1397

1358:                                             ; preds = %1353, %1347
  br label %1359

1359:                                             ; preds = %1358, %1343
  br label %1360

1360:                                             ; preds = %1359, %1310
  %1361 = load i8, ptr %107, align 1, !tbaa !11, !range !13, !noundef !14
  %1362 = trunc i8 %1361 to i1
  br i1 %1362, label %1363, label %1372

1363:                                             ; preds = %1360
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1364 unwind label %1327

1364:                                             ; preds = %1363
  %1365 = load x86_fp80, ptr %104, align 16, !tbaa !17
  %1366 = load x86_fp80, ptr %106, align 16, !tbaa !17
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %109, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1365, x86_fp80 noundef %1366, x86_fp80 noundef 0xK80000000000000000000)
          to label %1367 unwind label %1368

1367:                                             ; preds = %1364
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1372

1368:                                             ; preds = %1364
  %1369 = landingpad { ptr, i32 }
          cleanup
  %1370 = extractvalue { ptr, i32 } %1369, 0
  store ptr %1370, ptr %4, align 8
  %1371 = extractvalue { ptr, i32 } %1369, 1
  store i32 %1371, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1397

1372:                                             ; preds = %1367, %1360
  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
  %1373 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1374 = add nsw i32 %1373, 1
  store i32 %1374, 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 %1375 unwind label %1401

1375:                                             ; preds = %1372
  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
  %1376 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8000000000000000) #7
  store x86_fp80 %1376, ptr %112, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #7
  %1377 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %1378 unwind label %1405

1378:                                             ; preds = %1375
  store x86_fp80 %1377, ptr %113, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #7
  %1379 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1380 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1381 = fsub x86_fp80 %1379, %1380
  %1382 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1381)
          to label %1383 unwind label %1409

1383:                                             ; preds = %1378
  %1384 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1385 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1384)
          to label %1386 unwind label %1409

1386:                                             ; preds = %1383
  %1387 = fadd x86_fp80 0xK3FFF8000000000000000, %1385
  %1388 = fdiv x86_fp80 %1382, %1387
  store x86_fp80 %1388, 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
  %1389 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1390 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1389)
          to label %1391 unwind label %1413

1391:                                             ; preds = %1386
  br i1 %1390, label %1392, label %1417

1392:                                             ; preds = %1391
  %1393 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1394 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1393)
          to label %1395 unwind label %1413

1395:                                             ; preds = %1392
  br i1 %1394, label %1396, label %1417

1396:                                             ; preds = %1395
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1446

1397:                                             ; preds = %1368, %1354, %1327
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #7
  br label %1398

1398:                                             ; preds = %1397, %1323
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #7
  br label %1399

1399:                                             ; preds = %1398, %1319
  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 %1400

1400:                                             ; preds = %1399, %1315
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %2647

1401:                                             ; preds = %1372
  %1402 = landingpad { ptr, i32 }
          cleanup
  %1403 = extractvalue { ptr, i32 } %1402, 0
  store ptr %1403, ptr %4, align 8
  %1404 = extractvalue { ptr, i32 } %1402, 1
  store i32 %1404, 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 %1486

1405:                                             ; preds = %1375
  %1406 = landingpad { ptr, i32 }
          cleanup
  %1407 = extractvalue { ptr, i32 } %1406, 0
  store ptr %1407, ptr %4, align 8
  %1408 = extractvalue { ptr, i32 } %1406, 1
  store i32 %1408, ptr %5, align 4
  br label %1485

1409:                                             ; preds = %1383, %1378
  %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
  br label %1484

1413:                                             ; preds = %1449, %1434, %1421, %1417, %1392, %1386
  %1414 = landingpad { ptr, i32 }
          cleanup
  %1415 = extractvalue { ptr, i32 } %1414, 0
  store ptr %1415, ptr %4, align 8
  %1416 = extractvalue { ptr, i32 } %1414, 1
  store i32 %1416, ptr %5, align 4
  br label %1483

1417:                                             ; preds = %1395, %1391
  %1418 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1419 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1418)
          to label %1420 unwind label %1413

1420:                                             ; preds = %1417
  br i1 %1419, label %1430, label %1421

1421:                                             ; preds = %1420
  %1422 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1423 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1422)
          to label %1424 unwind label %1413

1424:                                             ; preds = %1421
  br i1 %1423, label %1425, label %1430

1425:                                             ; preds = %1424
  %1426 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1427 = load x86_fp80, ptr %113, align 16, !tbaa !17
  %1428 = fcmp oeq x86_fp80 %1426, %1427
  br i1 %1428, label %1429, label %1430

1429:                                             ; preds = %1425
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1445

1430:                                             ; preds = %1425, %1424, %1420
  %1431 = load x86_fp80, ptr %114, align 16, !tbaa !17
  %1432 = fcmp olt x86_fp80 %1431, 0xK3FD0B424DC35095CD800
  br i1 %1432, label %1433, label %1434

1433:                                             ; preds = %1430
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1444

1434:                                             ; preds = %1430
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1435 unwind label %1413

1435:                                             ; preds = %1434
  %1436 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1437 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1438 = load x86_fp80, ptr %113, align 16, !tbaa !17
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %116, i32 noundef %1436, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1437, x86_fp80 noundef %1438, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %1439 unwind label %1440

1439:                                             ; preds = %1435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1444

1440:                                             ; preds = %1435
  %1441 = landingpad { ptr, i32 }
          cleanup
  %1442 = extractvalue { ptr, i32 } %1441, 0
  store ptr %1442, ptr %4, align 8
  %1443 = extractvalue { ptr, i32 } %1441, 1
  store i32 %1443, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1483

1444:                                             ; preds = %1439, %1433
  br label %1445

1445:                                             ; preds = %1444, %1429
  br label %1446

1446:                                             ; preds = %1445, %1396
  %1447 = load i8, ptr %115, align 1, !tbaa !11, !range !13, !noundef !14
  %1448 = trunc i8 %1447 to i1
  br i1 %1448, label %1449, label %1458

1449:                                             ; preds = %1446
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1450 unwind label %1413

1450:                                             ; preds = %1449
  %1451 = load x86_fp80, ptr %112, align 16, !tbaa !17
  %1452 = load x86_fp80, ptr %114, align 16, !tbaa !17
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %117, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1451, x86_fp80 noundef %1452, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %1453 unwind label %1454

1453:                                             ; preds = %1450
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1458

1454:                                             ; preds = %1450
  %1455 = landingpad { ptr, i32 }
          cleanup
  %1456 = extractvalue { ptr, i32 } %1455, 0
  store ptr %1456, ptr %4, align 8
  %1457 = extractvalue { ptr, i32 } %1455, 1
  store i32 %1457, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1483

1458:                                             ; preds = %1453, %1446
  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
  %1459 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1460 = add nsw i32 %1459, 1
  store i32 %1460, 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 %1461 unwind label %1487

1461:                                             ; preds = %1458
  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
  %1462 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFF8000000000000000) #7
  store x86_fp80 %1462, ptr %120, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #7
  %1463 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %1464 unwind label %1491

1464:                                             ; preds = %1461
  store x86_fp80 %1463, ptr %121, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #7
  %1465 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1466 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1467 = fsub x86_fp80 %1465, %1466
  %1468 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1467)
          to label %1469 unwind label %1495

1469:                                             ; preds = %1464
  %1470 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1471 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1470)
          to label %1472 unwind label %1495

1472:                                             ; preds = %1469
  %1473 = fadd x86_fp80 0xK3FFF8000000000000000, %1471
  %1474 = fdiv x86_fp80 %1468, %1473
  store x86_fp80 %1474, 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
  %1475 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1476 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1475)
          to label %1477 unwind label %1499

1477:                                             ; preds = %1472
  br i1 %1476, label %1478, label %1503

1478:                                             ; preds = %1477
  %1479 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1480 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1479)
          to label %1481 unwind label %1499

1481:                                             ; preds = %1478
  br i1 %1480, label %1482, label %1503

1482:                                             ; preds = %1481
  store i8 1, ptr %123, align 1, !tbaa !11
  br label %1532

1483:                                             ; preds = %1454, %1440, %1413
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #7
  br label %1484

1484:                                             ; preds = %1483, %1409
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #7
  br label %1485

1485:                                             ; preds = %1484, %1405
  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 %1486

1486:                                             ; preds = %1485, %1401
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  br label %2647

1487:                                             ; preds = %1458
  %1488 = landingpad { ptr, i32 }
          cleanup
  %1489 = extractvalue { ptr, i32 } %1488, 0
  store ptr %1489, ptr %4, align 8
  %1490 = extractvalue { ptr, i32 } %1488, 1
  store i32 %1490, 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 %1576

1491:                                             ; preds = %1461
  %1492 = landingpad { ptr, i32 }
          cleanup
  %1493 = extractvalue { ptr, i32 } %1492, 0
  store ptr %1493, ptr %4, align 8
  %1494 = extractvalue { ptr, i32 } %1492, 1
  store i32 %1494, ptr %5, align 4
  br label %1575

1495:                                             ; preds = %1469, %1464
  %1496 = landingpad { ptr, i32 }
          cleanup
  %1497 = extractvalue { ptr, i32 } %1496, 0
  store ptr %1497, ptr %4, align 8
  %1498 = extractvalue { ptr, i32 } %1496, 1
  store i32 %1498, ptr %5, align 4
  br label %1574

1499:                                             ; preds = %1535, %1520, %1507, %1503, %1478, %1472
  %1500 = landingpad { ptr, i32 }
          cleanup
  %1501 = extractvalue { ptr, i32 } %1500, 0
  store ptr %1501, ptr %4, align 8
  %1502 = extractvalue { ptr, i32 } %1500, 1
  store i32 %1502, ptr %5, align 4
  br label %1573

1503:                                             ; preds = %1481, %1477
  %1504 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1505 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1504)
          to label %1506 unwind label %1499

1506:                                             ; preds = %1503
  br i1 %1505, label %1516, label %1507

1507:                                             ; preds = %1506
  %1508 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1509 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1508)
          to label %1510 unwind label %1499

1510:                                             ; preds = %1507
  br i1 %1509, label %1511, label %1516

1511:                                             ; preds = %1510
  %1512 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1513 = load x86_fp80, ptr %121, align 16, !tbaa !17
  %1514 = fcmp oeq x86_fp80 %1512, %1513
  br i1 %1514, label %1515, label %1516

1515:                                             ; preds = %1511
  store i8 1, ptr %123, align 1, !tbaa !11
  br label %1531

1516:                                             ; preds = %1511, %1510, %1506
  %1517 = load x86_fp80, ptr %122, align 16, !tbaa !17
  %1518 = fcmp olt x86_fp80 %1517, 0xK3FD0B424DC35095CD800
  br i1 %1518, label %1519, label %1520

1519:                                             ; preds = %1516
  store i8 1, ptr %123, align 1, !tbaa !11
  br label %1530

1520:                                             ; preds = %1516
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1521 unwind label %1499

1521:                                             ; preds = %1520
  %1522 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1523 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1524 = load x86_fp80, ptr %121, align 16, !tbaa !17
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %124, i32 noundef %1522, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1523, x86_fp80 noundef %1524, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %1525 unwind label %1526

1525:                                             ; preds = %1521
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1530

1526:                                             ; preds = %1521
  %1527 = landingpad { ptr, i32 }
          cleanup
  %1528 = extractvalue { ptr, i32 } %1527, 0
  store ptr %1528, ptr %4, align 8
  %1529 = extractvalue { ptr, i32 } %1527, 1
  store i32 %1529, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1573

1530:                                             ; preds = %1525, %1519
  br label %1531

1531:                                             ; preds = %1530, %1515
  br label %1532

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

1535:                                             ; preds = %1532
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1536 unwind label %1499

1536:                                             ; preds = %1535
  %1537 = load x86_fp80, ptr %120, align 16, !tbaa !17
  %1538 = load x86_fp80, ptr %122, align 16, !tbaa !17
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %125, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1537, x86_fp80 noundef %1538, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %1539 unwind label %1540

1539:                                             ; preds = %1536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1544

1540:                                             ; preds = %1536
  %1541 = landingpad { ptr, i32 }
          cleanup
  %1542 = extractvalue { ptr, i32 } %1541, 0
  store ptr %1542, ptr %4, align 8
  %1543 = extractvalue { ptr, i32 } %1541, 1
  store i32 %1543, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1573

1544:                                             ; preds = %1539, %1532
  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
  %1545 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1546 = add nsw i32 %1545, 1
  store i32 %1546, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %1547 unwind label %1577

1547:                                             ; preds = %1544
  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 4, ptr %128) #7
  %1548 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  %1549 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %1548) #7
  store float %1549, ptr %128, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #7
  %1550 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  %1551 = invoke noundef float @_ZSt4fabsf(float noundef %1550)
          to label %1552 unwind label %1581

1552:                                             ; preds = %1547
  store float %1551, ptr %129, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #7
  %1553 = load float, ptr %128, align 4, !tbaa !9
  %1554 = load float, ptr %129, align 4, !tbaa !9
  %1555 = fsub float %1553, %1554
  %1556 = invoke noundef float @_ZSt3absf(float noundef %1555)
          to label %1557 unwind label %1585

1557:                                             ; preds = %1552
  %1558 = load float, ptr %129, align 4, !tbaa !9
  %1559 = invoke noundef float @_ZSt3absf(float noundef %1558)
          to label %1560 unwind label %1585

1560:                                             ; preds = %1557
  %1561 = fadd float 1.000000e+00, %1559
  %1562 = fdiv float %1556, %1561
  store float %1562, ptr %130, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #7
  store i8 0, ptr %131, align 1, !tbaa !11
  %1563 = load float, ptr %128, align 4, !tbaa !9
  %1564 = fpext float %1563 to x86_fp80
  %1565 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1564)
          to label %1566 unwind label %1589

1566:                                             ; preds = %1560
  br i1 %1565, label %1567, label %1593

1567:                                             ; preds = %1566
  %1568 = load float, ptr %129, align 4, !tbaa !9
  %1569 = fpext float %1568 to x86_fp80
  %1570 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1569)
          to label %1571 unwind label %1589

1571:                                             ; preds = %1567
  br i1 %1570, label %1572, label %1593

1572:                                             ; preds = %1571
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1626

1573:                                             ; preds = %1540, %1526, %1499
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #7
  br label %1574

1574:                                             ; preds = %1573, %1495
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #7
  br label %1575

1575:                                             ; preds = %1574, %1491
  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 %1576

1576:                                             ; preds = %1575, %1487
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  br label %2647

1577:                                             ; preds = %1544
  %1578 = landingpad { ptr, i32 }
          cleanup
  %1579 = extractvalue { ptr, i32 } %1578, 0
  store ptr %1579, ptr %4, align 8
  %1580 = extractvalue { ptr, i32 } %1578, 1
  store i32 %1580, 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 %1671

1581:                                             ; preds = %1547
  %1582 = landingpad { ptr, i32 }
          cleanup
  %1583 = extractvalue { ptr, i32 } %1582, 0
  store ptr %1583, ptr %4, align 8
  %1584 = extractvalue { ptr, i32 } %1582, 1
  store i32 %1584, ptr %5, align 4
  br label %1670

1585:                                             ; preds = %1557, %1552
  %1586 = landingpad { ptr, i32 }
          cleanup
  %1587 = extractvalue { ptr, i32 } %1586, 0
  store ptr %1587, ptr %4, align 8
  %1588 = extractvalue { ptr, i32 } %1586, 1
  store i32 %1588, ptr %5, align 4
  br label %1669

1589:                                             ; preds = %1629, %1613, %1598, %1593, %1567, %1560
  %1590 = landingpad { ptr, i32 }
          cleanup
  %1591 = extractvalue { ptr, i32 } %1590, 0
  store ptr %1591, ptr %4, align 8
  %1592 = extractvalue { ptr, i32 } %1590, 1
  store i32 %1592, ptr %5, align 4
  br label %1668

1593:                                             ; preds = %1571, %1566
  %1594 = load float, ptr %128, align 4, !tbaa !9
  %1595 = fpext float %1594 to x86_fp80
  %1596 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1595)
          to label %1597 unwind label %1589

1597:                                             ; preds = %1593
  br i1 %1596, label %1608, label %1598

1598:                                             ; preds = %1597
  %1599 = load float, ptr %128, align 4, !tbaa !9
  %1600 = fpext float %1599 to x86_fp80
  %1601 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1600)
          to label %1602 unwind label %1589

1602:                                             ; preds = %1598
  br i1 %1601, label %1603, label %1608

1603:                                             ; preds = %1602
  %1604 = load float, ptr %128, align 4, !tbaa !9
  %1605 = load float, ptr %129, align 4, !tbaa !9
  %1606 = fcmp oeq float %1604, %1605
  br i1 %1606, label %1607, label %1608

1607:                                             ; preds = %1603
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1625

1608:                                             ; preds = %1603, %1602, %1597
  %1609 = load float, ptr %130, align 4, !tbaa !9
  %1610 = fpext float %1609 to double
  %1611 = fcmp olt double %1610, 0x3D06849B86A12B9B
  br i1 %1611, label %1612, label %1613

1612:                                             ; preds = %1608
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1624

1613:                                             ; preds = %1608
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1614 unwind label %1589

1614:                                             ; preds = %1613
  %1615 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1616 = load float, ptr %128, align 4, !tbaa !9
  %1617 = load float, ptr %129, align 4, !tbaa !9
  %1618 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %132, i32 noundef %1615, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1616, float noundef %1617, float noundef %1618)
          to label %1619 unwind label %1620

1619:                                             ; preds = %1614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1624

1620:                                             ; preds = %1614
  %1621 = landingpad { ptr, i32 }
          cleanup
  %1622 = extractvalue { ptr, i32 } %1621, 0
  store ptr %1622, ptr %4, align 8
  %1623 = extractvalue { ptr, i32 } %1621, 1
  store i32 %1623, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1668

1624:                                             ; preds = %1619, %1612
  br label %1625

1625:                                             ; preds = %1624, %1607
  br label %1626

1626:                                             ; preds = %1625, %1572
  %1627 = load i8, ptr %131, align 1, !tbaa !11, !range !13, !noundef !14
  %1628 = trunc i8 %1627 to i1
  br i1 %1628, label %1629, label %1639

1629:                                             ; preds = %1626
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1630 unwind label %1589

1630:                                             ; preds = %1629
  %1631 = load float, ptr %128, align 4, !tbaa !9
  %1632 = load float, ptr %130, align 4, !tbaa !9
  %1633 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %133, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1631, float noundef %1632, float noundef %1633)
          to label %1634 unwind label %1635

1634:                                             ; preds = %1630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1639

1635:                                             ; preds = %1630
  %1636 = landingpad { ptr, i32 }
          cleanup
  %1637 = extractvalue { ptr, i32 } %1636, 0
  store ptr %1637, ptr %4, align 8
  %1638 = extractvalue { ptr, i32 } %1636, 1
  store i32 %1638, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1668

1639:                                             ; preds = %1634, %1626
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  %1640 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %1642 unwind label %1672

1642:                                             ; preds = %1639
  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 4, ptr %136) #7
  %1643 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  %1644 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %1643) #7
  store float %1644, ptr %136, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #7
  %1645 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  %1646 = invoke noundef float @_ZSt4fabsf(float noundef %1645)
          to label %1647 unwind label %1676

1647:                                             ; preds = %1642
  store float %1646, ptr %137, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #7
  %1648 = load float, ptr %136, align 4, !tbaa !9
  %1649 = load float, ptr %137, align 4, !tbaa !9
  %1650 = fsub float %1648, %1649
  %1651 = invoke noundef float @_ZSt3absf(float noundef %1650)
          to label %1652 unwind label %1680

1652:                                             ; preds = %1647
  %1653 = load float, ptr %137, align 4, !tbaa !9
  %1654 = invoke noundef float @_ZSt3absf(float noundef %1653)
          to label %1655 unwind label %1680

1655:                                             ; preds = %1652
  %1656 = fadd float 1.000000e+00, %1654
  %1657 = fdiv float %1651, %1656
  store float %1657, ptr %138, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #7
  store i8 0, ptr %139, align 1, !tbaa !11
  %1658 = load float, ptr %136, align 4, !tbaa !9
  %1659 = fpext float %1658 to x86_fp80
  %1660 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1659)
          to label %1661 unwind label %1684

1661:                                             ; preds = %1655
  br i1 %1660, label %1662, label %1688

1662:                                             ; preds = %1661
  %1663 = load float, ptr %137, align 4, !tbaa !9
  %1664 = fpext float %1663 to x86_fp80
  %1665 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1664)
          to label %1666 unwind label %1684

1666:                                             ; preds = %1662
  br i1 %1665, label %1667, label %1688

1667:                                             ; preds = %1666
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1721

1668:                                             ; preds = %1635, %1620, %1589
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #7
  br label %1669

1669:                                             ; preds = %1668, %1585
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #7
  br label %1670

1670:                                             ; preds = %1669, %1581
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %1671

1671:                                             ; preds = %1670, %1577
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  br label %2647

1672:                                             ; preds = %1639
  %1673 = landingpad { ptr, i32 }
          cleanup
  %1674 = extractvalue { ptr, i32 } %1673, 0
  store ptr %1674, ptr %4, align 8
  %1675 = extractvalue { ptr, i32 } %1673, 1
  store i32 %1675, 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 %1766

1676:                                             ; preds = %1642
  %1677 = landingpad { ptr, i32 }
          cleanup
  %1678 = extractvalue { ptr, i32 } %1677, 0
  store ptr %1678, ptr %4, align 8
  %1679 = extractvalue { ptr, i32 } %1677, 1
  store i32 %1679, ptr %5, align 4
  br label %1765

1680:                                             ; preds = %1652, %1647
  %1681 = landingpad { ptr, i32 }
          cleanup
  %1682 = extractvalue { ptr, i32 } %1681, 0
  store ptr %1682, ptr %4, align 8
  %1683 = extractvalue { ptr, i32 } %1681, 1
  store i32 %1683, ptr %5, align 4
  br label %1764

1684:                                             ; preds = %1724, %1708, %1693, %1688, %1662, %1655
  %1685 = landingpad { ptr, i32 }
          cleanup
  %1686 = extractvalue { ptr, i32 } %1685, 0
  store ptr %1686, ptr %4, align 8
  %1687 = extractvalue { ptr, i32 } %1685, 1
  store i32 %1687, ptr %5, align 4
  br label %1763

1688:                                             ; preds = %1666, %1661
  %1689 = load float, ptr %136, align 4, !tbaa !9
  %1690 = fpext float %1689 to x86_fp80
  %1691 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1690)
          to label %1692 unwind label %1684

1692:                                             ; preds = %1688
  br i1 %1691, label %1703, label %1693

1693:                                             ; preds = %1692
  %1694 = load float, ptr %136, align 4, !tbaa !9
  %1695 = fpext float %1694 to x86_fp80
  %1696 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1695)
          to label %1697 unwind label %1684

1697:                                             ; preds = %1693
  br i1 %1696, label %1698, label %1703

1698:                                             ; preds = %1697
  %1699 = load float, ptr %136, align 4, !tbaa !9
  %1700 = load float, ptr %137, align 4, !tbaa !9
  %1701 = fcmp oeq float %1699, %1700
  br i1 %1701, label %1702, label %1703

1702:                                             ; preds = %1698
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1720

1703:                                             ; preds = %1698, %1697, %1692
  %1704 = load float, ptr %138, align 4, !tbaa !9
  %1705 = fpext float %1704 to double
  %1706 = fcmp olt double %1705, 0x3D06849B86A12B9B
  br i1 %1706, label %1707, label %1708

1707:                                             ; preds = %1703
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1719

1708:                                             ; preds = %1703
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1709 unwind label %1684

1709:                                             ; preds = %1708
  %1710 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1711 = load float, ptr %136, align 4, !tbaa !9
  %1712 = load float, ptr %137, align 4, !tbaa !9
  %1713 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %140, i32 noundef %1710, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1711, float noundef %1712, float noundef %1713)
          to label %1714 unwind label %1715

1714:                                             ; preds = %1709
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1719

1715:                                             ; preds = %1709
  %1716 = landingpad { ptr, i32 }
          cleanup
  %1717 = extractvalue { ptr, i32 } %1716, 0
  store ptr %1717, ptr %4, align 8
  %1718 = extractvalue { ptr, i32 } %1716, 1
  store i32 %1718, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1763

1719:                                             ; preds = %1714, %1707
  br label %1720

1720:                                             ; preds = %1719, %1702
  br label %1721

1721:                                             ; preds = %1720, %1667
  %1722 = load i8, ptr %139, align 1, !tbaa !11, !range !13, !noundef !14
  %1723 = trunc i8 %1722 to i1
  br i1 %1723, label %1724, label %1734

1724:                                             ; preds = %1721
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1725 unwind label %1684

1725:                                             ; preds = %1724
  %1726 = load float, ptr %136, align 4, !tbaa !9
  %1727 = load float, ptr %138, align 4, !tbaa !9
  %1728 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %141, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1726, float noundef %1727, float noundef %1728)
          to label %1729 unwind label %1730

1729:                                             ; preds = %1725
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1734

1730:                                             ; preds = %1725
  %1731 = landingpad { ptr, i32 }
          cleanup
  %1732 = extractvalue { ptr, i32 } %1731, 0
  store ptr %1732, ptr %4, align 8
  %1733 = extractvalue { ptr, i32 } %1731, 1
  store i32 %1733, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1763

1734:                                             ; preds = %1729, %1721
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  %1735 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1736 = add nsw i32 %1735, 1
  store i32 %1736, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %1737 unwind label %1767

1737:                                             ; preds = %1734
  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 4, ptr %144) #7
  %1738 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %1739 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %1738) #7
  store float %1739, ptr %144, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #7
  %1740 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %1741 = invoke noundef float @_ZSt4fabsf(float noundef %1740)
          to label %1742 unwind label %1771

1742:                                             ; preds = %1737
  store float %1741, ptr %145, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #7
  %1743 = load float, ptr %144, align 4, !tbaa !9
  %1744 = load float, ptr %145, align 4, !tbaa !9
  %1745 = fsub float %1743, %1744
  %1746 = invoke noundef float @_ZSt3absf(float noundef %1745)
          to label %1747 unwind label %1775

1747:                                             ; preds = %1742
  %1748 = load float, ptr %145, align 4, !tbaa !9
  %1749 = invoke noundef float @_ZSt3absf(float noundef %1748)
          to label %1750 unwind label %1775

1750:                                             ; preds = %1747
  %1751 = fadd float 1.000000e+00, %1749
  %1752 = fdiv float %1746, %1751
  store float %1752, ptr %146, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #7
  store i8 0, ptr %147, align 1, !tbaa !11
  %1753 = load float, ptr %144, align 4, !tbaa !9
  %1754 = fpext float %1753 to x86_fp80
  %1755 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1754)
          to label %1756 unwind label %1779

1756:                                             ; preds = %1750
  br i1 %1755, label %1757, label %1783

1757:                                             ; preds = %1756
  %1758 = load float, ptr %145, align 4, !tbaa !9
  %1759 = fpext float %1758 to x86_fp80
  %1760 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1759)
          to label %1761 unwind label %1779

1761:                                             ; preds = %1757
  br i1 %1760, label %1762, label %1783

1762:                                             ; preds = %1761
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %1816

1763:                                             ; preds = %1730, %1715, %1684
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  br label %1764

1764:                                             ; preds = %1763, %1680
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #7
  br label %1765

1765:                                             ; preds = %1764, %1676
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  br label %1766

1766:                                             ; preds = %1765, %1672
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  br label %2647

1767:                                             ; preds = %1734
  %1768 = landingpad { ptr, i32 }
          cleanup
  %1769 = extractvalue { ptr, i32 } %1768, 0
  store ptr %1769, ptr %4, align 8
  %1770 = extractvalue { ptr, i32 } %1768, 1
  store i32 %1770, 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 %1860

1771:                                             ; preds = %1737
  %1772 = landingpad { ptr, i32 }
          cleanup
  %1773 = extractvalue { ptr, i32 } %1772, 0
  store ptr %1773, ptr %4, align 8
  %1774 = extractvalue { ptr, i32 } %1772, 1
  store i32 %1774, ptr %5, align 4
  br label %1859

1775:                                             ; preds = %1747, %1742
  %1776 = landingpad { ptr, i32 }
          cleanup
  %1777 = extractvalue { ptr, i32 } %1776, 0
  store ptr %1777, ptr %4, align 8
  %1778 = extractvalue { ptr, i32 } %1776, 1
  store i32 %1778, ptr %5, align 4
  br label %1858

1779:                                             ; preds = %1819, %1803, %1788, %1783, %1757, %1750
  %1780 = landingpad { ptr, i32 }
          cleanup
  %1781 = extractvalue { ptr, i32 } %1780, 0
  store ptr %1781, ptr %4, align 8
  %1782 = extractvalue { ptr, i32 } %1780, 1
  store i32 %1782, ptr %5, align 4
  br label %1857

1783:                                             ; preds = %1761, %1756
  %1784 = load float, ptr %144, align 4, !tbaa !9
  %1785 = fpext float %1784 to x86_fp80
  %1786 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1785)
          to label %1787 unwind label %1779

1787:                                             ; preds = %1783
  br i1 %1786, label %1798, label %1788

1788:                                             ; preds = %1787
  %1789 = load float, ptr %144, align 4, !tbaa !9
  %1790 = fpext float %1789 to x86_fp80
  %1791 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1790)
          to label %1792 unwind label %1779

1792:                                             ; preds = %1788
  br i1 %1791, label %1793, label %1798

1793:                                             ; preds = %1792
  %1794 = load float, ptr %144, align 4, !tbaa !9
  %1795 = load float, ptr %145, align 4, !tbaa !9
  %1796 = fcmp oeq float %1794, %1795
  br i1 %1796, label %1797, label %1798

1797:                                             ; preds = %1793
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %1815

1798:                                             ; preds = %1793, %1792, %1787
  %1799 = load float, ptr %146, align 4, !tbaa !9
  %1800 = fpext float %1799 to double
  %1801 = fcmp olt double %1800, 0x3D06849B86A12B9B
  br i1 %1801, label %1802, label %1803

1802:                                             ; preds = %1798
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %1814

1803:                                             ; preds = %1798
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1804 unwind label %1779

1804:                                             ; preds = %1803
  %1805 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1806 = load float, ptr %144, align 4, !tbaa !9
  %1807 = load float, ptr %145, align 4, !tbaa !9
  %1808 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %148, i32 noundef %1805, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1806, float noundef %1807, float noundef %1808)
          to label %1809 unwind label %1810

1809:                                             ; preds = %1804
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %1814

1810:                                             ; preds = %1804
  %1811 = landingpad { ptr, i32 }
          cleanup
  %1812 = extractvalue { ptr, i32 } %1811, 0
  store ptr %1812, ptr %4, align 8
  %1813 = extractvalue { ptr, i32 } %1811, 1
  store i32 %1813, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %1857

1814:                                             ; preds = %1809, %1802
  br label %1815

1815:                                             ; preds = %1814, %1797
  br label %1816

1816:                                             ; preds = %1815, %1762
  %1817 = load i8, ptr %147, align 1, !tbaa !11, !range !13, !noundef !14
  %1818 = trunc i8 %1817 to i1
  br i1 %1818, label %1819, label %1829

1819:                                             ; preds = %1816
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1820 unwind label %1779

1820:                                             ; preds = %1819
  %1821 = load float, ptr %144, align 4, !tbaa !9
  %1822 = load float, ptr %146, align 4, !tbaa !9
  %1823 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %149, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1821, float noundef %1822, float noundef %1823)
          to label %1824 unwind label %1825

1824:                                             ; preds = %1820
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %1829

1825:                                             ; preds = %1820
  %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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %1857

1829:                                             ; preds = %1824, %1816
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  %1830 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1831 = add nsw i32 %1830, 1
  store i32 %1831, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %1832 unwind label %1861

1832:                                             ; preds = %1829
  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
  %1833 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %1834 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %1833) #7
  store double %1834, ptr %152, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #7
  %1835 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %1836 = call double @llvm.fabs.f64(double %1835)
  store double %1836, ptr %153, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #7
  %1837 = load double, ptr %152, align 8, !tbaa !15
  %1838 = load double, ptr %153, align 8, !tbaa !15
  %1839 = fsub double %1837, %1838
  %1840 = invoke noundef double @_ZSt3absd(double noundef %1839)
          to label %1841 unwind label %1865

1841:                                             ; preds = %1832
  %1842 = load double, ptr %153, align 8, !tbaa !15
  %1843 = invoke noundef double @_ZSt3absd(double noundef %1842)
          to label %1844 unwind label %1865

1844:                                             ; preds = %1841
  %1845 = fadd double 1.000000e+00, %1843
  %1846 = fdiv double %1840, %1845
  store double %1846, ptr %154, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #7
  store i8 0, ptr %155, align 1, !tbaa !11
  %1847 = load double, ptr %152, align 8, !tbaa !15
  %1848 = fpext double %1847 to x86_fp80
  %1849 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1848)
          to label %1850 unwind label %1869

1850:                                             ; preds = %1844
  br i1 %1849, label %1851, label %1873

1851:                                             ; preds = %1850
  %1852 = load double, ptr %153, align 8, !tbaa !15
  %1853 = fpext double %1852 to x86_fp80
  %1854 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1853)
          to label %1855 unwind label %1869

1855:                                             ; preds = %1851
  br i1 %1854, label %1856, label %1873

1856:                                             ; preds = %1855
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %1905

1857:                                             ; preds = %1825, %1810, %1779
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  br label %1858

1858:                                             ; preds = %1857, %1775
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #7
  br label %1859

1859:                                             ; preds = %1858, %1771
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %1860

1860:                                             ; preds = %1859, %1767
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  br label %2647

1861:                                             ; preds = %1829
  %1862 = landingpad { ptr, i32 }
          cleanup
  %1863 = extractvalue { ptr, i32 } %1862, 0
  store ptr %1863, ptr %4, align 8
  %1864 = extractvalue { ptr, i32 } %1862, 1
  store i32 %1864, 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 %1948

1865:                                             ; preds = %1841, %1832
  %1866 = landingpad { ptr, i32 }
          cleanup
  %1867 = extractvalue { ptr, i32 } %1866, 0
  store ptr %1867, ptr %4, align 8
  %1868 = extractvalue { ptr, i32 } %1866, 1
  store i32 %1868, ptr %5, align 4
  br label %1947

1869:                                             ; preds = %1908, %1892, %1878, %1873, %1851, %1844
  %1870 = landingpad { ptr, i32 }
          cleanup
  %1871 = extractvalue { ptr, i32 } %1870, 0
  store ptr %1871, ptr %4, align 8
  %1872 = extractvalue { ptr, i32 } %1870, 1
  store i32 %1872, ptr %5, align 4
  br label %1946

1873:                                             ; preds = %1855, %1850
  %1874 = load double, ptr %152, align 8, !tbaa !15
  %1875 = fpext double %1874 to x86_fp80
  %1876 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1875)
          to label %1877 unwind label %1869

1877:                                             ; preds = %1873
  br i1 %1876, label %1888, label %1878

1878:                                             ; preds = %1877
  %1879 = load double, ptr %152, align 8, !tbaa !15
  %1880 = fpext double %1879 to x86_fp80
  %1881 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1880)
          to label %1882 unwind label %1869

1882:                                             ; preds = %1878
  br i1 %1881, label %1883, label %1888

1883:                                             ; preds = %1882
  %1884 = load double, ptr %152, align 8, !tbaa !15
  %1885 = load double, ptr %153, align 8, !tbaa !15
  %1886 = fcmp oeq double %1884, %1885
  br i1 %1886, label %1887, label %1888

1887:                                             ; preds = %1883
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %1904

1888:                                             ; preds = %1883, %1882, %1877
  %1889 = load double, ptr %154, align 8, !tbaa !15
  %1890 = fcmp olt double %1889, 0x3D06849B86A12B9B
  br i1 %1890, label %1891, label %1892

1891:                                             ; preds = %1888
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %1903

1892:                                             ; preds = %1888
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1893 unwind label %1869

1893:                                             ; preds = %1892
  %1894 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1895 = load double, ptr %152, align 8, !tbaa !15
  %1896 = load double, ptr %153, align 8, !tbaa !15
  %1897 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %156, i32 noundef %1894, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1895, double noundef %1896, double noundef %1897)
          to label %1898 unwind label %1899

1898:                                             ; preds = %1893
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1903

1899:                                             ; preds = %1893
  %1900 = landingpad { ptr, i32 }
          cleanup
  %1901 = extractvalue { ptr, i32 } %1900, 0
  store ptr %1901, ptr %4, align 8
  %1902 = extractvalue { ptr, i32 } %1900, 1
  store i32 %1902, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1946

1903:                                             ; preds = %1898, %1891
  br label %1904

1904:                                             ; preds = %1903, %1887
  br label %1905

1905:                                             ; preds = %1904, %1856
  %1906 = load i8, ptr %155, align 1, !tbaa !11, !range !13, !noundef !14
  %1907 = trunc i8 %1906 to i1
  br i1 %1907, label %1908, label %1918

1908:                                             ; preds = %1905
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1909 unwind label %1869

1909:                                             ; preds = %1908
  %1910 = load double, ptr %152, align 8, !tbaa !15
  %1911 = load double, ptr %154, align 8, !tbaa !15
  %1912 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %157, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1910, double noundef %1911, double noundef %1912)
          to label %1913 unwind label %1914

1913:                                             ; preds = %1909
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %1918

1914:                                             ; preds = %1909
  %1915 = landingpad { ptr, i32 }
          cleanup
  %1916 = extractvalue { ptr, i32 } %1915, 0
  store ptr %1916, ptr %4, align 8
  %1917 = extractvalue { ptr, i32 } %1915, 1
  store i32 %1917, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %1946

1918:                                             ; preds = %1913, %1905
  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
  %1919 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %1921 unwind label %1949

1921:                                             ; preds = %1918
  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
  %1922 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %1923 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %1922) #7
  store double %1923, ptr %160, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #7
  %1924 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %1925 = call double @llvm.fabs.f64(double %1924)
  store double %1925, ptr %161, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #7
  %1926 = load double, ptr %160, align 8, !tbaa !15
  %1927 = load double, ptr %161, align 8, !tbaa !15
  %1928 = fsub double %1926, %1927
  %1929 = invoke noundef double @_ZSt3absd(double noundef %1928)
          to label %1930 unwind label %1953

1930:                                             ; preds = %1921
  %1931 = load double, ptr %161, align 8, !tbaa !15
  %1932 = invoke noundef double @_ZSt3absd(double noundef %1931)
          to label %1933 unwind label %1953

1933:                                             ; preds = %1930
  %1934 = fadd double 1.000000e+00, %1932
  %1935 = fdiv double %1929, %1934
  store double %1935, ptr %162, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #7
  store i8 0, ptr %163, align 1, !tbaa !11
  %1936 = load double, ptr %160, align 8, !tbaa !15
  %1937 = fpext double %1936 to x86_fp80
  %1938 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1937)
          to label %1939 unwind label %1957

1939:                                             ; preds = %1933
  br i1 %1938, label %1940, label %1961

1940:                                             ; preds = %1939
  %1941 = load double, ptr %161, align 8, !tbaa !15
  %1942 = fpext double %1941 to x86_fp80
  %1943 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1942)
          to label %1944 unwind label %1957

1944:                                             ; preds = %1940
  br i1 %1943, label %1945, label %1961

1945:                                             ; preds = %1944
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %1993

1946:                                             ; preds = %1914, %1899, %1869
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #7
  br label %1947

1947:                                             ; preds = %1946, %1865
  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 %1948

1948:                                             ; preds = %1947, %1861
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #7
  br label %2647

1949:                                             ; preds = %1918
  %1950 = landingpad { ptr, i32 }
          cleanup
  %1951 = extractvalue { ptr, i32 } %1950, 0
  store ptr %1951, ptr %4, align 8
  %1952 = extractvalue { ptr, i32 } %1950, 1
  store i32 %1952, 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 %2036

1953:                                             ; preds = %1930, %1921
  %1954 = landingpad { ptr, i32 }
          cleanup
  %1955 = extractvalue { ptr, i32 } %1954, 0
  store ptr %1955, ptr %4, align 8
  %1956 = extractvalue { ptr, i32 } %1954, 1
  store i32 %1956, ptr %5, align 4
  br label %2035

1957:                                             ; preds = %1996, %1980, %1966, %1961, %1940, %1933
  %1958 = landingpad { ptr, i32 }
          cleanup
  %1959 = extractvalue { ptr, i32 } %1958, 0
  store ptr %1959, ptr %4, align 8
  %1960 = extractvalue { ptr, i32 } %1958, 1
  store i32 %1960, ptr %5, align 4
  br label %2034

1961:                                             ; preds = %1944, %1939
  %1962 = load double, ptr %160, align 8, !tbaa !15
  %1963 = fpext double %1962 to x86_fp80
  %1964 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1963)
          to label %1965 unwind label %1957

1965:                                             ; preds = %1961
  br i1 %1964, label %1976, label %1966

1966:                                             ; preds = %1965
  %1967 = load double, ptr %160, align 8, !tbaa !15
  %1968 = fpext double %1967 to x86_fp80
  %1969 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1968)
          to label %1970 unwind label %1957

1970:                                             ; preds = %1966
  br i1 %1969, label %1971, label %1976

1971:                                             ; preds = %1970
  %1972 = load double, ptr %160, align 8, !tbaa !15
  %1973 = load double, ptr %161, align 8, !tbaa !15
  %1974 = fcmp oeq double %1972, %1973
  br i1 %1974, label %1975, label %1976

1975:                                             ; preds = %1971
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %1992

1976:                                             ; preds = %1971, %1970, %1965
  %1977 = load double, ptr %162, align 8, !tbaa !15
  %1978 = fcmp olt double %1977, 0x3D06849B86A12B9B
  br i1 %1978, label %1979, label %1980

1979:                                             ; preds = %1976
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %1991

1980:                                             ; preds = %1976
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1981 unwind label %1957

1981:                                             ; preds = %1980
  %1982 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1983 = load double, ptr %160, align 8, !tbaa !15
  %1984 = load double, ptr %161, align 8, !tbaa !15
  %1985 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %164, i32 noundef %1982, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1983, double noundef %1984, double noundef %1985)
          to label %1986 unwind label %1987

1986:                                             ; preds = %1981
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %1991

1987:                                             ; preds = %1981
  %1988 = landingpad { ptr, i32 }
          cleanup
  %1989 = extractvalue { ptr, i32 } %1988, 0
  store ptr %1989, ptr %4, align 8
  %1990 = extractvalue { ptr, i32 } %1988, 1
  store i32 %1990, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %2034

1991:                                             ; preds = %1986, %1979
  br label %1992

1992:                                             ; preds = %1991, %1975
  br label %1993

1993:                                             ; preds = %1992, %1945
  %1994 = load i8, ptr %163, align 1, !tbaa !11, !range !13, !noundef !14
  %1995 = trunc i8 %1994 to i1
  br i1 %1995, label %1996, label %2006

1996:                                             ; preds = %1993
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1997 unwind label %1957

1997:                                             ; preds = %1996
  %1998 = load double, ptr %160, align 8, !tbaa !15
  %1999 = load double, ptr %162, align 8, !tbaa !15
  %2000 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %165, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1998, double noundef %1999, double noundef %2000)
          to label %2001 unwind label %2002

2001:                                             ; preds = %1997
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %2006

2002:                                             ; preds = %1997
  %2003 = landingpad { ptr, i32 }
          cleanup
  %2004 = extractvalue { ptr, i32 } %2003, 0
  store ptr %2004, ptr %4, align 8
  %2005 = extractvalue { ptr, i32 } %2003, 1
  store i32 %2005, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %2034

2006:                                             ; preds = %2001, %1993
  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
  %2007 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2008 = add nsw i32 %2007, 1
  store i32 %2008, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %167)
          to label %2009 unwind label %2037

2009:                                             ; preds = %2006
  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
  %2010 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %2011 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %2010) #7
  store double %2011, ptr %168, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #7
  %2012 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %2013 = call double @llvm.fabs.f64(double %2012)
  store double %2013, ptr %169, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #7
  %2014 = load double, ptr %168, align 8, !tbaa !15
  %2015 = load double, ptr %169, align 8, !tbaa !15
  %2016 = fsub double %2014, %2015
  %2017 = invoke noundef double @_ZSt3absd(double noundef %2016)
          to label %2018 unwind label %2041

2018:                                             ; preds = %2009
  %2019 = load double, ptr %169, align 8, !tbaa !15
  %2020 = invoke noundef double @_ZSt3absd(double noundef %2019)
          to label %2021 unwind label %2041

2021:                                             ; preds = %2018
  %2022 = fadd double 1.000000e+00, %2020
  %2023 = fdiv double %2017, %2022
  store double %2023, ptr %170, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #7
  store i8 0, ptr %171, align 1, !tbaa !11
  %2024 = load double, ptr %168, align 8, !tbaa !15
  %2025 = fpext double %2024 to x86_fp80
  %2026 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2025)
          to label %2027 unwind label %2045

2027:                                             ; preds = %2021
  br i1 %2026, label %2028, label %2049

2028:                                             ; preds = %2027
  %2029 = load double, ptr %169, align 8, !tbaa !15
  %2030 = fpext double %2029 to x86_fp80
  %2031 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2030)
          to label %2032 unwind label %2045

2032:                                             ; preds = %2028
  br i1 %2031, label %2033, label %2049

2033:                                             ; preds = %2032
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2081

2034:                                             ; preds = %2002, %1987, %1957
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  br label %2035

2035:                                             ; preds = %2034, %1953
  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 %2036

2036:                                             ; preds = %2035, %1949
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  br label %2647

2037:                                             ; preds = %2006
  %2038 = landingpad { ptr, i32 }
          cleanup
  %2039 = extractvalue { ptr, i32 } %2038, 0
  store ptr %2039, ptr %4, align 8
  %2040 = extractvalue { ptr, i32 } %2038, 1
  store i32 %2040, 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 %2123

2041:                                             ; preds = %2018, %2009
  %2042 = landingpad { ptr, i32 }
          cleanup
  %2043 = extractvalue { ptr, i32 } %2042, 0
  store ptr %2043, ptr %4, align 8
  %2044 = extractvalue { ptr, i32 } %2042, 1
  store i32 %2044, ptr %5, align 4
  br label %2122

2045:                                             ; preds = %2084, %2068, %2054, %2049, %2028, %2021
  %2046 = landingpad { ptr, i32 }
          cleanup
  %2047 = extractvalue { ptr, i32 } %2046, 0
  store ptr %2047, ptr %4, align 8
  %2048 = extractvalue { ptr, i32 } %2046, 1
  store i32 %2048, ptr %5, align 4
  br label %2121

2049:                                             ; preds = %2032, %2027
  %2050 = load double, ptr %168, align 8, !tbaa !15
  %2051 = fpext double %2050 to x86_fp80
  %2052 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2051)
          to label %2053 unwind label %2045

2053:                                             ; preds = %2049
  br i1 %2052, label %2064, label %2054

2054:                                             ; preds = %2053
  %2055 = load double, ptr %168, align 8, !tbaa !15
  %2056 = fpext double %2055 to x86_fp80
  %2057 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2056)
          to label %2058 unwind label %2045

2058:                                             ; preds = %2054
  br i1 %2057, label %2059, label %2064

2059:                                             ; preds = %2058
  %2060 = load double, ptr %168, align 8, !tbaa !15
  %2061 = load double, ptr %169, align 8, !tbaa !15
  %2062 = fcmp oeq double %2060, %2061
  br i1 %2062, label %2063, label %2064

2063:                                             ; preds = %2059
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2080

2064:                                             ; preds = %2059, %2058, %2053
  %2065 = load double, ptr %170, align 8, !tbaa !15
  %2066 = fcmp olt double %2065, 0x3D06849B86A12B9B
  br i1 %2066, label %2067, label %2068

2067:                                             ; preds = %2064
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2079

2068:                                             ; preds = %2064
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %2069 unwind label %2045

2069:                                             ; preds = %2068
  %2070 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2071 = load double, ptr %168, align 8, !tbaa !15
  %2072 = load double, ptr %169, align 8, !tbaa !15
  %2073 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %172, i32 noundef %2070, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2071, double noundef %2072, double noundef %2073)
          to label %2074 unwind label %2075

2074:                                             ; preds = %2069
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %2079

2075:                                             ; preds = %2069
  %2076 = landingpad { ptr, i32 }
          cleanup
  %2077 = extractvalue { ptr, i32 } %2076, 0
  store ptr %2077, ptr %4, align 8
  %2078 = extractvalue { ptr, i32 } %2076, 1
  store i32 %2078, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %2121

2079:                                             ; preds = %2074, %2067
  br label %2080

2080:                                             ; preds = %2079, %2063
  br label %2081

2081:                                             ; preds = %2080, %2033
  %2082 = load i8, ptr %171, align 1, !tbaa !11, !range !13, !noundef !14
  %2083 = trunc i8 %2082 to i1
  br i1 %2083, label %2084, label %2094

2084:                                             ; preds = %2081
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %2085 unwind label %2045

2085:                                             ; preds = %2084
  %2086 = load double, ptr %168, align 8, !tbaa !15
  %2087 = load double, ptr %170, align 8, !tbaa !15
  %2088 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %173, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2086, double noundef %2087, double noundef %2088)
          to label %2089 unwind label %2090

2089:                                             ; preds = %2085
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  br label %2094

2090:                                             ; preds = %2085
  %2091 = landingpad { ptr, i32 }
          cleanup
  %2092 = extractvalue { ptr, i32 } %2091, 0
  store ptr %2092, ptr %4, align 8
  %2093 = extractvalue { ptr, i32 } %2091, 1
  store i32 %2093, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  br label %2121

2094:                                             ; preds = %2089, %2081
  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
  %2095 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2096 = add nsw i32 %2095, 1
  store i32 %2096, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %2097 unwind label %2124

2097:                                             ; preds = %2094
  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 16, ptr %176) #7
  %2098 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %2099 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2098) #7
  store x86_fp80 %2099, ptr %176, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %177) #7
  %2100 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %2101 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %2100)
          to label %2102 unwind label %2128

2102:                                             ; preds = %2097
  store x86_fp80 %2101, ptr %177, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %178) #7
  %2103 = load x86_fp80, ptr %176, align 16, !tbaa !17
  %2104 = load x86_fp80, ptr %177, align 16, !tbaa !17
  %2105 = fsub x86_fp80 %2103, %2104
  %2106 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2105)
          to label %2107 unwind label %2132

2107:                                             ; preds = %2102
  %2108 = load x86_fp80, ptr %177, align 16, !tbaa !17
  %2109 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2108)
          to label %2110 unwind label %2132

2110:                                             ; preds = %2107
  %2111 = fadd x86_fp80 0xK3FFF8000000000000000, %2109
  %2112 = fdiv x86_fp80 %2106, %2111
  store x86_fp80 %2112, ptr %178, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #7
  store i8 0, ptr %179, align 1, !tbaa !11
  %2113 = load x86_fp80, ptr %176, align 16, !tbaa !17
  %2114 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2113)
          to label %2115 unwind label %2136

2115:                                             ; preds = %2110
  br i1 %2114, label %2116, label %2140

2116:                                             ; preds = %2115
  %2117 = load x86_fp80, ptr %177, align 16, !tbaa !17
  %2118 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2117)
          to label %2119 unwind label %2136

2119:                                             ; preds = %2116
  br i1 %2118, label %2120, label %2140

2120:                                             ; preds = %2119
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2170

2121:                                             ; preds = %2090, %2075, %2045
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #7
  br label %2122

2122:                                             ; preds = %2121, %2041
  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 %2123

2123:                                             ; preds = %2122, %2037
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  br label %2647

2124:                                             ; preds = %2094
  %2125 = landingpad { ptr, i32 }
          cleanup
  %2126 = extractvalue { ptr, i32 } %2125, 0
  store ptr %2126, ptr %4, align 8
  %2127 = extractvalue { ptr, i32 } %2125, 1
  store i32 %2127, 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 %2213

2128:                                             ; preds = %2097
  %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
  br label %2212

2132:                                             ; preds = %2107, %2102
  %2133 = landingpad { ptr, i32 }
          cleanup
  %2134 = extractvalue { ptr, i32 } %2133, 0
  store ptr %2134, ptr %4, align 8
  %2135 = extractvalue { ptr, i32 } %2133, 1
  store i32 %2135, ptr %5, align 4
  br label %2211

2136:                                             ; preds = %2173, %2157, %2144, %2140, %2116, %2110
  %2137 = landingpad { ptr, i32 }
          cleanup
  %2138 = extractvalue { ptr, i32 } %2137, 0
  store ptr %2138, ptr %4, align 8
  %2139 = extractvalue { ptr, i32 } %2137, 1
  store i32 %2139, ptr %5, align 4
  br label %2210

2140:                                             ; preds = %2119, %2115
  %2141 = load x86_fp80, ptr %176, align 16, !tbaa !17
  %2142 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2141)
          to label %2143 unwind label %2136

2143:                                             ; preds = %2140
  br i1 %2142, label %2153, label %2144

2144:                                             ; preds = %2143
  %2145 = load x86_fp80, ptr %176, align 16, !tbaa !17
  %2146 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2145)
          to label %2147 unwind label %2136

2147:                                             ; preds = %2144
  br i1 %2146, label %2148, label %2153

2148:                                             ; preds = %2147
  %2149 = load x86_fp80, ptr %176, align 16, !tbaa !17
  %2150 = load x86_fp80, ptr %177, align 16, !tbaa !17
  %2151 = fcmp oeq x86_fp80 %2149, %2150
  br i1 %2151, label %2152, label %2153

2152:                                             ; preds = %2148
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2169

2153:                                             ; preds = %2148, %2147, %2143
  %2154 = load x86_fp80, ptr %178, align 16, !tbaa !17
  %2155 = fcmp olt x86_fp80 %2154, 0xK3FD0B424DC35095CD800
  br i1 %2155, label %2156, label %2157

2156:                                             ; preds = %2153
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2168

2157:                                             ; preds = %2153
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %2158 unwind label %2136

2158:                                             ; preds = %2157
  %2159 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2160 = load x86_fp80, ptr %176, align 16, !tbaa !17
  %2161 = load x86_fp80, ptr %177, align 16, !tbaa !17
  %2162 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %180, i32 noundef %2159, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %2160, x86_fp80 noundef %2161, x86_fp80 noundef %2162)
          to label %2163 unwind label %2164

2163:                                             ; preds = %2158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %2168

2164:                                             ; preds = %2158
  %2165 = landingpad { ptr, i32 }
          cleanup
  %2166 = extractvalue { ptr, i32 } %2165, 0
  store ptr %2166, ptr %4, align 8
  %2167 = extractvalue { ptr, i32 } %2165, 1
  store i32 %2167, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %2210

2168:                                             ; preds = %2163, %2156
  br label %2169

2169:                                             ; preds = %2168, %2152
  br label %2170

2170:                                             ; preds = %2169, %2120
  %2171 = load i8, ptr %179, align 1, !tbaa !11, !range !13, !noundef !14
  %2172 = trunc i8 %2171 to i1
  br i1 %2172, label %2173, label %2183

2173:                                             ; preds = %2170
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %2174 unwind label %2136

2174:                                             ; preds = %2173
  %2175 = load x86_fp80, ptr %176, align 16, !tbaa !17
  %2176 = load x86_fp80, ptr %178, align 16, !tbaa !17
  %2177 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %181, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %2175, x86_fp80 noundef %2176, x86_fp80 noundef %2177)
          to label %2178 unwind label %2179

2178:                                             ; preds = %2174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %2183

2179:                                             ; preds = %2174
  %2180 = landingpad { ptr, i32 }
          cleanup
  %2181 = extractvalue { ptr, i32 } %2180, 0
  store ptr %2181, ptr %4, align 8
  %2182 = extractvalue { ptr, i32 } %2180, 1
  store i32 %2182, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %2210

2183:                                             ; preds = %2178, %2170
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %178) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2184 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2185 = add nsw i32 %2184, 1
  store i32 %2185, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %183)
          to label %2186 unwind label %2214

2186:                                             ; preds = %2183
  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 16, ptr %184) #7
  %2187 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %2188 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2187) #7
  store x86_fp80 %2188, ptr %184, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %185) #7
  %2189 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %2190 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %2189)
          to label %2191 unwind label %2218

2191:                                             ; preds = %2186
  store x86_fp80 %2190, ptr %185, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %186) #7
  %2192 = load x86_fp80, ptr %184, align 16, !tbaa !17
  %2193 = load x86_fp80, ptr %185, align 16, !tbaa !17
  %2194 = fsub x86_fp80 %2192, %2193
  %2195 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2194)
          to label %2196 unwind label %2222

2196:                                             ; preds = %2191
  %2197 = load x86_fp80, ptr %185, align 16, !tbaa !17
  %2198 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2197)
          to label %2199 unwind label %2222

2199:                                             ; preds = %2196
  %2200 = fadd x86_fp80 0xK3FFF8000000000000000, %2198
  %2201 = fdiv x86_fp80 %2195, %2200
  store x86_fp80 %2201, ptr %186, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #7
  store i8 0, ptr %187, align 1, !tbaa !11
  %2202 = load x86_fp80, ptr %184, align 16, !tbaa !17
  %2203 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2202)
          to label %2204 unwind label %2226

2204:                                             ; preds = %2199
  br i1 %2203, label %2205, label %2230

2205:                                             ; preds = %2204
  %2206 = load x86_fp80, ptr %185, align 16, !tbaa !17
  %2207 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2206)
          to label %2208 unwind label %2226

2208:                                             ; preds = %2205
  br i1 %2207, label %2209, label %2230

2209:                                             ; preds = %2208
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2260

2210:                                             ; preds = %2179, %2164, %2136
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #7
  br label %2211

2211:                                             ; preds = %2210, %2132
  call void @llvm.lifetime.end.p0(i64 16, ptr %178) #7
  br label %2212

2212:                                             ; preds = %2211, %2128
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %176) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #7
  br label %2213

2213:                                             ; preds = %2212, %2124
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #7
  br label %2647

2214:                                             ; preds = %2183
  %2215 = landingpad { ptr, i32 }
          cleanup
  %2216 = extractvalue { ptr, i32 } %2215, 0
  store ptr %2216, ptr %4, align 8
  %2217 = extractvalue { ptr, i32 } %2215, 1
  store i32 %2217, 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 %2303

2218:                                             ; preds = %2186
  %2219 = landingpad { ptr, i32 }
          cleanup
  %2220 = extractvalue { ptr, i32 } %2219, 0
  store ptr %2220, ptr %4, align 8
  %2221 = extractvalue { ptr, i32 } %2219, 1
  store i32 %2221, ptr %5, align 4
  br label %2302

2222:                                             ; preds = %2196, %2191
  %2223 = landingpad { ptr, i32 }
          cleanup
  %2224 = extractvalue { ptr, i32 } %2223, 0
  store ptr %2224, ptr %4, align 8
  %2225 = extractvalue { ptr, i32 } %2223, 1
  store i32 %2225, ptr %5, align 4
  br label %2301

2226:                                             ; preds = %2263, %2247, %2234, %2230, %2205, %2199
  %2227 = landingpad { ptr, i32 }
          cleanup
  %2228 = extractvalue { ptr, i32 } %2227, 0
  store ptr %2228, ptr %4, align 8
  %2229 = extractvalue { ptr, i32 } %2227, 1
  store i32 %2229, ptr %5, align 4
  br label %2300

2230:                                             ; preds = %2208, %2204
  %2231 = load x86_fp80, ptr %184, align 16, !tbaa !17
  %2232 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2231)
          to label %2233 unwind label %2226

2233:                                             ; preds = %2230
  br i1 %2232, label %2243, label %2234

2234:                                             ; preds = %2233
  %2235 = load x86_fp80, ptr %184, align 16, !tbaa !17
  %2236 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2235)
          to label %2237 unwind label %2226

2237:                                             ; preds = %2234
  br i1 %2236, label %2238, label %2243

2238:                                             ; preds = %2237
  %2239 = load x86_fp80, ptr %184, align 16, !tbaa !17
  %2240 = load x86_fp80, ptr %185, align 16, !tbaa !17
  %2241 = fcmp oeq x86_fp80 %2239, %2240
  br i1 %2241, label %2242, label %2243

2242:                                             ; preds = %2238
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2259

2243:                                             ; preds = %2238, %2237, %2233
  %2244 = load x86_fp80, ptr %186, align 16, !tbaa !17
  %2245 = fcmp olt x86_fp80 %2244, 0xK3FD0B424DC35095CD800
  br i1 %2245, label %2246, label %2247

2246:                                             ; preds = %2243
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2258

2247:                                             ; preds = %2243
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %2248 unwind label %2226

2248:                                             ; preds = %2247
  %2249 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2250 = load x86_fp80, ptr %184, align 16, !tbaa !17
  %2251 = load x86_fp80, ptr %185, align 16, !tbaa !17
  %2252 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %188, i32 noundef %2249, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %2250, x86_fp80 noundef %2251, x86_fp80 noundef %2252)
          to label %2253 unwind label %2254

2253:                                             ; preds = %2248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %2258

2254:                                             ; preds = %2248
  %2255 = landingpad { ptr, i32 }
          cleanup
  %2256 = extractvalue { ptr, i32 } %2255, 0
  store ptr %2256, ptr %4, align 8
  %2257 = extractvalue { ptr, i32 } %2255, 1
  store i32 %2257, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %2300

2258:                                             ; preds = %2253, %2246
  br label %2259

2259:                                             ; preds = %2258, %2242
  br label %2260

2260:                                             ; preds = %2259, %2209
  %2261 = load i8, ptr %187, align 1, !tbaa !11, !range !13, !noundef !14
  %2262 = trunc i8 %2261 to i1
  br i1 %2262, label %2263, label %2273

2263:                                             ; preds = %2260
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %2264 unwind label %2226

2264:                                             ; preds = %2263
  %2265 = load x86_fp80, ptr %184, align 16, !tbaa !17
  %2266 = load x86_fp80, ptr %186, align 16, !tbaa !17
  %2267 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %189, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %2265, x86_fp80 noundef %2266, x86_fp80 noundef %2267)
          to label %2268 unwind label %2269

2268:                                             ; preds = %2264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  br label %2273

2269:                                             ; preds = %2264
  %2270 = landingpad { ptr, i32 }
          cleanup
  %2271 = extractvalue { ptr, i32 } %2270, 0
  store ptr %2271, ptr %4, align 8
  %2272 = extractvalue { ptr, i32 } %2270, 1
  store i32 %2272, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  br label %2300

2273:                                             ; preds = %2268, %2260
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %186) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2274 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2275 = add nsw i32 %2274, 1
  store i32 %2275, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %2276 unwind label %2304

2276:                                             ; preds = %2273
  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 16, ptr %192) #7
  %2277 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %2278 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %2277) #7
  store x86_fp80 %2278, ptr %192, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %193) #7
  %2279 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %2280 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %2279)
          to label %2281 unwind label %2308

2281:                                             ; preds = %2276
  store x86_fp80 %2280, ptr %193, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 16, ptr %194) #7
  %2282 = load x86_fp80, ptr %192, align 16, !tbaa !17
  %2283 = load x86_fp80, ptr %193, align 16, !tbaa !17
  %2284 = fsub x86_fp80 %2282, %2283
  %2285 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2284)
          to label %2286 unwind label %2312

2286:                                             ; preds = %2281
  %2287 = load x86_fp80, ptr %193, align 16, !tbaa !17
  %2288 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2287)
          to label %2289 unwind label %2312

2289:                                             ; preds = %2286
  %2290 = fadd x86_fp80 0xK3FFF8000000000000000, %2288
  %2291 = fdiv x86_fp80 %2285, %2290
  store x86_fp80 %2291, ptr %194, align 16, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %195) #7
  store i8 0, ptr %195, align 1, !tbaa !11
  %2292 = load x86_fp80, ptr %192, align 16, !tbaa !17
  %2293 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2292)
          to label %2294 unwind label %2316

2294:                                             ; preds = %2289
  br i1 %2293, label %2295, label %2320

2295:                                             ; preds = %2294
  %2296 = load x86_fp80, ptr %193, align 16, !tbaa !17
  %2297 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2296)
          to label %2298 unwind label %2316

2298:                                             ; preds = %2295
  br i1 %2297, label %2299, label %2320

2299:                                             ; preds = %2298
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2350

2300:                                             ; preds = %2269, %2254, %2226
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #7
  br label %2301

2301:                                             ; preds = %2300, %2222
  call void @llvm.lifetime.end.p0(i64 16, ptr %186) #7
  br label %2302

2302:                                             ; preds = %2301, %2218
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %184) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #7
  br label %2303

2303:                                             ; preds = %2302, %2214
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #7
  br label %2647

2304:                                             ; preds = %2273
  %2305 = landingpad { ptr, i32 }
          cleanup
  %2306 = extractvalue { ptr, i32 } %2305, 0
  store ptr %2306, ptr %4, align 8
  %2307 = extractvalue { ptr, i32 } %2305, 1
  store i32 %2307, 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 %2394

2308:                                             ; preds = %2276
  %2309 = landingpad { ptr, i32 }
          cleanup
  %2310 = extractvalue { ptr, i32 } %2309, 0
  store ptr %2310, ptr %4, align 8
  %2311 = extractvalue { ptr, i32 } %2309, 1
  store i32 %2311, ptr %5, align 4
  br label %2393

2312:                                             ; preds = %2286, %2281
  %2313 = landingpad { ptr, i32 }
          cleanup
  %2314 = extractvalue { ptr, i32 } %2313, 0
  store ptr %2314, ptr %4, align 8
  %2315 = extractvalue { ptr, i32 } %2313, 1
  store i32 %2315, ptr %5, align 4
  br label %2392

2316:                                             ; preds = %2353, %2337, %2324, %2320, %2295, %2289
  %2317 = landingpad { ptr, i32 }
          cleanup
  %2318 = extractvalue { ptr, i32 } %2317, 0
  store ptr %2318, ptr %4, align 8
  %2319 = extractvalue { ptr, i32 } %2317, 1
  store i32 %2319, ptr %5, align 4
  br label %2391

2320:                                             ; preds = %2298, %2294
  %2321 = load x86_fp80, ptr %192, align 16, !tbaa !17
  %2322 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2321)
          to label %2323 unwind label %2316

2323:                                             ; preds = %2320
  br i1 %2322, label %2333, label %2324

2324:                                             ; preds = %2323
  %2325 = load x86_fp80, ptr %192, align 16, !tbaa !17
  %2326 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2325)
          to label %2327 unwind label %2316

2327:                                             ; preds = %2324
  br i1 %2326, label %2328, label %2333

2328:                                             ; preds = %2327
  %2329 = load x86_fp80, ptr %192, align 16, !tbaa !17
  %2330 = load x86_fp80, ptr %193, align 16, !tbaa !17
  %2331 = fcmp oeq x86_fp80 %2329, %2330
  br i1 %2331, label %2332, label %2333

2332:                                             ; preds = %2328
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2349

2333:                                             ; preds = %2328, %2327, %2323
  %2334 = load x86_fp80, ptr %194, align 16, !tbaa !17
  %2335 = fcmp olt x86_fp80 %2334, 0xK3FD0B424DC35095CD800
  br i1 %2335, label %2336, label %2337

2336:                                             ; preds = %2333
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2348

2337:                                             ; preds = %2333
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %190)
          to label %2338 unwind label %2316

2338:                                             ; preds = %2337
  %2339 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2340 = load x86_fp80, ptr %192, align 16, !tbaa !17
  %2341 = load x86_fp80, ptr %193, align 16, !tbaa !17
  %2342 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %196, i32 noundef %2339, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %2340, x86_fp80 noundef %2341, x86_fp80 noundef %2342)
          to label %2343 unwind label %2344

2343:                                             ; preds = %2338
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #7
  br label %2348

2344:                                             ; preds = %2338
  %2345 = landingpad { ptr, i32 }
          cleanup
  %2346 = extractvalue { ptr, i32 } %2345, 0
  store ptr %2346, ptr %4, align 8
  %2347 = extractvalue { ptr, i32 } %2345, 1
  store i32 %2347, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #7
  br label %2391

2348:                                             ; preds = %2343, %2336
  br label %2349

2349:                                             ; preds = %2348, %2332
  br label %2350

2350:                                             ; preds = %2349, %2299
  %2351 = load i8, ptr %195, align 1, !tbaa !11, !range !13, !noundef !14
  %2352 = trunc i8 %2351 to i1
  br i1 %2352, label %2353, label %2363

2353:                                             ; preds = %2350
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %190)
          to label %2354 unwind label %2316

2354:                                             ; preds = %2353
  %2355 = load x86_fp80, ptr %192, align 16, !tbaa !17
  %2356 = load x86_fp80, ptr %194, align 16, !tbaa !17
  %2357 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %197, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %2355, x86_fp80 noundef %2356, x86_fp80 noundef %2357)
          to label %2358 unwind label %2359

2358:                                             ; preds = %2354
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %2363

2359:                                             ; preds = %2354
  %2360 = landingpad { ptr, i32 }
          cleanup
  %2361 = extractvalue { ptr, i32 } %2360, 0
  store ptr %2361, ptr %4, align 8
  %2362 = extractvalue { ptr, i32 } %2360, 1
  store i32 %2362, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %2391

2363:                                             ; preds = %2358, %2350
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2364 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2365 = add nsw i32 %2364, 1
  store i32 %2365, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %2366 unwind label %2395

2366:                                             ; preds = %2363
  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
  %2367 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %2368 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %2367) #7
  store double %2368, ptr %200, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #7
  %2369 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %2370 = call double @llvm.fabs.f64(double %2369)
  store double %2370, ptr %201, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #7
  %2371 = load double, ptr %200, align 8, !tbaa !15
  %2372 = load double, ptr %201, align 8, !tbaa !15
  %2373 = fsub double %2371, %2372
  %2374 = invoke noundef double @_ZSt3absd(double noundef %2373)
          to label %2375 unwind label %2399

2375:                                             ; preds = %2366
  %2376 = load double, ptr %201, align 8, !tbaa !15
  %2377 = invoke noundef double @_ZSt3absd(double noundef %2376)
          to label %2378 unwind label %2399

2378:                                             ; preds = %2375
  %2379 = fadd double 1.000000e+00, %2377
  %2380 = fdiv double %2374, %2379
  store double %2380, ptr %202, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #7
  store i8 0, ptr %203, align 1, !tbaa !11
  %2381 = load double, ptr %200, align 8, !tbaa !15
  %2382 = fpext double %2381 to x86_fp80
  %2383 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2382)
          to label %2384 unwind label %2403

2384:                                             ; preds = %2378
  br i1 %2383, label %2385, label %2407

2385:                                             ; preds = %2384
  %2386 = load double, ptr %201, align 8, !tbaa !15
  %2387 = fpext double %2386 to x86_fp80
  %2388 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2387)
          to label %2389 unwind label %2403

2389:                                             ; preds = %2385
  br i1 %2388, label %2390, label %2407

2390:                                             ; preds = %2389
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2439

2391:                                             ; preds = %2359, %2344, %2316
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #7
  br label %2392

2392:                                             ; preds = %2391, %2312
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #7
  br label %2393

2393:                                             ; preds = %2392, %2308
  call void @llvm.lifetime.end.p0(i64 16, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %192) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #7
  br label %2394

2394:                                             ; preds = %2393, %2304
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #7
  br label %2647

2395:                                             ; preds = %2363
  %2396 = landingpad { ptr, i32 }
          cleanup
  %2397 = extractvalue { ptr, i32 } %2396, 0
  store ptr %2397, ptr %4, align 8
  %2398 = extractvalue { ptr, i32 } %2396, 1
  store i32 %2398, 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 %2484

2399:                                             ; preds = %2375, %2366
  %2400 = landingpad { ptr, i32 }
          cleanup
  %2401 = extractvalue { ptr, i32 } %2400, 0
  store ptr %2401, ptr %4, align 8
  %2402 = extractvalue { ptr, i32 } %2400, 1
  store i32 %2402, ptr %5, align 4
  br label %2483

2403:                                             ; preds = %2442, %2426, %2412, %2407, %2385, %2378
  %2404 = landingpad { ptr, i32 }
          cleanup
  %2405 = extractvalue { ptr, i32 } %2404, 0
  store ptr %2405, ptr %4, align 8
  %2406 = extractvalue { ptr, i32 } %2404, 1
  store i32 %2406, ptr %5, align 4
  br label %2482

2407:                                             ; preds = %2389, %2384
  %2408 = load double, ptr %200, align 8, !tbaa !15
  %2409 = fpext double %2408 to x86_fp80
  %2410 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2409)
          to label %2411 unwind label %2403

2411:                                             ; preds = %2407
  br i1 %2410, label %2422, label %2412

2412:                                             ; preds = %2411
  %2413 = load double, ptr %200, align 8, !tbaa !15
  %2414 = fpext double %2413 to x86_fp80
  %2415 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2414)
          to label %2416 unwind label %2403

2416:                                             ; preds = %2412
  br i1 %2415, label %2417, label %2422

2417:                                             ; preds = %2416
  %2418 = load double, ptr %200, align 8, !tbaa !15
  %2419 = load double, ptr %201, align 8, !tbaa !15
  %2420 = fcmp oeq double %2418, %2419
  br i1 %2420, label %2421, label %2422

2421:                                             ; preds = %2417
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2438

2422:                                             ; preds = %2417, %2416, %2411
  %2423 = load double, ptr %202, align 8, !tbaa !15
  %2424 = fcmp olt double %2423, 0x3D06849B86A12B9B
  br i1 %2424, label %2425, label %2426

2425:                                             ; preds = %2422
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2437

2426:                                             ; preds = %2422
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %2427 unwind label %2403

2427:                                             ; preds = %2426
  %2428 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2429 = load double, ptr %200, align 8, !tbaa !15
  %2430 = load double, ptr %201, align 8, !tbaa !15
  %2431 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %204, i32 noundef %2428, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2429, double noundef %2430, double noundef %2431)
          to label %2432 unwind label %2433

2432:                                             ; preds = %2427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %2437

2433:                                             ; preds = %2427
  %2434 = landingpad { ptr, i32 }
          cleanup
  %2435 = extractvalue { ptr, i32 } %2434, 0
  store ptr %2435, ptr %4, align 8
  %2436 = extractvalue { ptr, i32 } %2434, 1
  store i32 %2436, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %2482

2437:                                             ; preds = %2432, %2425
  br label %2438

2438:                                             ; preds = %2437, %2421
  br label %2439

2439:                                             ; preds = %2438, %2390
  %2440 = load i8, ptr %203, align 1, !tbaa !11, !range !13, !noundef !14
  %2441 = trunc i8 %2440 to i1
  br i1 %2441, label %2442, label %2452

2442:                                             ; preds = %2439
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %2443 unwind label %2403

2443:                                             ; preds = %2442
  %2444 = load double, ptr %200, align 8, !tbaa !15
  %2445 = load double, ptr %202, align 8, !tbaa !15
  %2446 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %205, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2444, double noundef %2445, double noundef %2446)
          to label %2447 unwind label %2448

2447:                                             ; preds = %2443
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %2452

2448:                                             ; preds = %2443
  %2449 = landingpad { ptr, i32 }
          cleanup
  %2450 = extractvalue { ptr, i32 } %2449, 0
  store ptr %2450, ptr %4, align 8
  %2451 = extractvalue { ptr, i32 } %2449, 1
  store i32 %2451, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %2482

2452:                                             ; preds = %2447, %2439
  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
  %2453 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2454 = add nsw i32 %2453, 1
  store i32 %2454, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %207)
          to label %2455 unwind label %2485

2455:                                             ; preds = %2452
  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
  %2456 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %2457 = fneg double %2456
  %2458 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %2457) #7
  store double %2458, ptr %208, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #7
  %2459 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %2460 = fneg double %2459
  %2461 = call double @llvm.fabs.f64(double %2460)
  store double %2461, ptr %209, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #7
  %2462 = load double, ptr %208, align 8, !tbaa !15
  %2463 = load double, ptr %209, align 8, !tbaa !15
  %2464 = fsub double %2462, %2463
  %2465 = invoke noundef double @_ZSt3absd(double noundef %2464)
          to label %2466 unwind label %2489

2466:                                             ; preds = %2455
  %2467 = load double, ptr %209, align 8, !tbaa !15
  %2468 = invoke noundef double @_ZSt3absd(double noundef %2467)
          to label %2469 unwind label %2489

2469:                                             ; preds = %2466
  %2470 = fadd double 1.000000e+00, %2468
  %2471 = fdiv double %2465, %2470
  store double %2471, ptr %210, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %211) #7
  store i8 0, ptr %211, align 1, !tbaa !11
  %2472 = load double, ptr %208, align 8, !tbaa !15
  %2473 = fpext double %2472 to x86_fp80
  %2474 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2473)
          to label %2475 unwind label %2493

2475:                                             ; preds = %2469
  br i1 %2474, label %2476, label %2497

2476:                                             ; preds = %2475
  %2477 = load double, ptr %209, align 8, !tbaa !15
  %2478 = fpext double %2477 to x86_fp80
  %2479 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2478)
          to label %2480 unwind label %2493

2480:                                             ; preds = %2476
  br i1 %2479, label %2481, label %2497

2481:                                             ; preds = %2480
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2530

2482:                                             ; preds = %2448, %2433, %2403
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  br label %2483

2483:                                             ; preds = %2482, %2399
  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 %2484

2484:                                             ; preds = %2483, %2395
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #7
  br label %2647

2485:                                             ; preds = %2452
  %2486 = landingpad { ptr, i32 }
          cleanup
  %2487 = extractvalue { ptr, i32 } %2486, 0
  store ptr %2487, ptr %4, align 8
  %2488 = extractvalue { ptr, i32 } %2486, 1
  store i32 %2488, 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 %2574

2489:                                             ; preds = %2466, %2455
  %2490 = landingpad { ptr, i32 }
          cleanup
  %2491 = extractvalue { ptr, i32 } %2490, 0
  store ptr %2491, ptr %4, align 8
  %2492 = extractvalue { ptr, i32 } %2490, 1
  store i32 %2492, ptr %5, align 4
  br label %2573

2493:                                             ; preds = %2533, %2516, %2502, %2497, %2476, %2469
  %2494 = landingpad { ptr, i32 }
          cleanup
  %2495 = extractvalue { ptr, i32 } %2494, 0
  store ptr %2495, ptr %4, align 8
  %2496 = extractvalue { ptr, i32 } %2494, 1
  store i32 %2496, ptr %5, align 4
  br label %2572

2497:                                             ; preds = %2480, %2475
  %2498 = load double, ptr %208, align 8, !tbaa !15
  %2499 = fpext double %2498 to x86_fp80
  %2500 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2499)
          to label %2501 unwind label %2493

2501:                                             ; preds = %2497
  br i1 %2500, label %2512, label %2502

2502:                                             ; preds = %2501
  %2503 = load double, ptr %208, align 8, !tbaa !15
  %2504 = fpext double %2503 to x86_fp80
  %2505 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2504)
          to label %2506 unwind label %2493

2506:                                             ; preds = %2502
  br i1 %2505, label %2507, label %2512

2507:                                             ; preds = %2506
  %2508 = load double, ptr %208, align 8, !tbaa !15
  %2509 = load double, ptr %209, align 8, !tbaa !15
  %2510 = fcmp oeq double %2508, %2509
  br i1 %2510, label %2511, label %2512

2511:                                             ; preds = %2507
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2529

2512:                                             ; preds = %2507, %2506, %2501
  %2513 = load double, ptr %210, align 8, !tbaa !15
  %2514 = fcmp olt double %2513, 0x3D06849B86A12B9B
  br i1 %2514, label %2515, label %2516

2515:                                             ; preds = %2512
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2528

2516:                                             ; preds = %2512
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %2517 unwind label %2493

2517:                                             ; preds = %2516
  %2518 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2519 = load double, ptr %208, align 8, !tbaa !15
  %2520 = load double, ptr %209, align 8, !tbaa !15
  %2521 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %2522 = fneg double %2521
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %212, i32 noundef %2518, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2519, double noundef %2520, double noundef %2522)
          to label %2523 unwind label %2524

2523:                                             ; preds = %2517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #7
  br label %2528

2524:                                             ; preds = %2517
  %2525 = landingpad { ptr, i32 }
          cleanup
  %2526 = extractvalue { ptr, i32 } %2525, 0
  store ptr %2526, ptr %4, align 8
  %2527 = extractvalue { ptr, i32 } %2525, 1
  store i32 %2527, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #7
  br label %2572

2528:                                             ; preds = %2523, %2515
  br label %2529

2529:                                             ; preds = %2528, %2511
  br label %2530

2530:                                             ; preds = %2529, %2481
  %2531 = load i8, ptr %211, align 1, !tbaa !11, !range !13, !noundef !14
  %2532 = trunc i8 %2531 to i1
  br i1 %2532, label %2533, label %2544

2533:                                             ; preds = %2530
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %2534 unwind label %2493

2534:                                             ; preds = %2533
  %2535 = load double, ptr %208, align 8, !tbaa !15
  %2536 = load double, ptr %210, align 8, !tbaa !15
  %2537 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %2538 = fneg double %2537
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %213, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2535, double noundef %2536, double noundef %2538)
          to label %2539 unwind label %2540

2539:                                             ; preds = %2534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %2544

2540:                                             ; preds = %2534
  %2541 = landingpad { ptr, i32 }
          cleanup
  %2542 = extractvalue { ptr, i32 } %2541, 0
  store ptr %2542, ptr %4, align 8
  %2543 = extractvalue { ptr, i32 } %2541, 1
  store i32 %2543, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %2572

2544:                                             ; preds = %2539, %2530
  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
  %2545 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2546 = add nsw i32 %2545, 1
  store i32 %2546, 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.1, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %2547 unwind label %2575

2547:                                             ; preds = %2544
  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 8, ptr %216) #7
  %2548 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %2549 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %2548) #7
  store double %2549, ptr %216, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #7
  %2550 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %2551 = call double @llvm.fabs.f64(double %2550)
  store double %2551, ptr %217, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #7
  %2552 = load double, ptr %216, align 8, !tbaa !15
  %2553 = load double, ptr %217, align 8, !tbaa !15
  %2554 = fsub double %2552, %2553
  %2555 = invoke noundef double @_ZSt3absd(double noundef %2554)
          to label %2556 unwind label %2579

2556:                                             ; preds = %2547
  %2557 = load double, ptr %217, align 8, !tbaa !15
  %2558 = invoke noundef double @_ZSt3absd(double noundef %2557)
          to label %2559 unwind label %2579

2559:                                             ; preds = %2556
  %2560 = fadd double 1.000000e+00, %2558
  %2561 = fdiv double %2555, %2560
  store double %2561, ptr %218, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #7
  store i8 0, ptr %219, align 1, !tbaa !11
  %2562 = load double, ptr %216, align 8, !tbaa !15
  %2563 = fpext double %2562 to x86_fp80
  %2564 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2563)
          to label %2565 unwind label %2583

2565:                                             ; preds = %2559
  br i1 %2564, label %2566, label %2587

2566:                                             ; preds = %2565
  %2567 = load double, ptr %217, align 8, !tbaa !15
  %2568 = fpext double %2567 to x86_fp80
  %2569 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2568)
          to label %2570 unwind label %2583

2570:                                             ; preds = %2566
  br i1 %2569, label %2571, label %2587

2571:                                             ; preds = %2570
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2619

2572:                                             ; preds = %2540, %2524, %2493
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #7
  br label %2573

2573:                                             ; preds = %2572, %2489
  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 %2574

2574:                                             ; preds = %2573, %2485
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #7
  br label %2647

2575:                                             ; preds = %2544
  %2576 = landingpad { ptr, i32 }
          cleanup
  %2577 = extractvalue { ptr, i32 } %2576, 0
  store ptr %2577, ptr %4, align 8
  %2578 = extractvalue { ptr, i32 } %2576, 1
  store i32 %2578, 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 %2637

2579:                                             ; preds = %2556, %2547
  %2580 = landingpad { ptr, i32 }
          cleanup
  %2581 = extractvalue { ptr, i32 } %2580, 0
  store ptr %2581, ptr %4, align 8
  %2582 = extractvalue { ptr, i32 } %2580, 1
  store i32 %2582, ptr %5, align 4
  br label %2636

2583:                                             ; preds = %2622, %2606, %2592, %2587, %2566, %2559
  %2584 = landingpad { ptr, i32 }
          cleanup
  %2585 = extractvalue { ptr, i32 } %2584, 0
  store ptr %2585, ptr %4, align 8
  %2586 = extractvalue { ptr, i32 } %2584, 1
  store i32 %2586, ptr %5, align 4
  br label %2635

2587:                                             ; preds = %2570, %2565
  %2588 = load double, ptr %216, align 8, !tbaa !15
  %2589 = fpext double %2588 to x86_fp80
  %2590 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2589)
          to label %2591 unwind label %2583

2591:                                             ; preds = %2587
  br i1 %2590, label %2602, label %2592

2592:                                             ; preds = %2591
  %2593 = load double, ptr %216, align 8, !tbaa !15
  %2594 = fpext double %2593 to x86_fp80
  %2595 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2594)
          to label %2596 unwind label %2583

2596:                                             ; preds = %2592
  br i1 %2595, label %2597, label %2602

2597:                                             ; preds = %2596
  %2598 = load double, ptr %216, align 8, !tbaa !15
  %2599 = load double, ptr %217, align 8, !tbaa !15
  %2600 = fcmp oeq double %2598, %2599
  br i1 %2600, label %2601, label %2602

2601:                                             ; preds = %2597
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2618

2602:                                             ; preds = %2597, %2596, %2591
  %2603 = load double, ptr %218, align 8, !tbaa !15
  %2604 = fcmp olt double %2603, 0x3D06849B86A12B9B
  br i1 %2604, label %2605, label %2606

2605:                                             ; preds = %2602
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2617

2606:                                             ; preds = %2602
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %2607 unwind label %2583

2607:                                             ; preds = %2606
  %2608 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2609 = load double, ptr %216, align 8, !tbaa !15
  %2610 = load double, ptr %217, align 8, !tbaa !15
  %2611 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %220, i32 noundef %2608, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2609, double noundef %2610, double noundef %2611)
          to label %2612 unwind label %2613

2612:                                             ; preds = %2607
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %2617

2613:                                             ; preds = %2607
  %2614 = landingpad { ptr, i32 }
          cleanup
  %2615 = extractvalue { ptr, i32 } %2614, 0
  store ptr %2615, ptr %4, align 8
  %2616 = extractvalue { ptr, i32 } %2614, 1
  store i32 %2616, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %2635

2617:                                             ; preds = %2612, %2605
  br label %2618

2618:                                             ; preds = %2617, %2601
  br label %2619

2619:                                             ; preds = %2618, %2571
  %2620 = load i8, ptr %219, align 1, !tbaa !11, !range !13, !noundef !14
  %2621 = trunc i8 %2620 to i1
  br i1 %2621, label %2622, label %2632

2622:                                             ; preds = %2619
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %2623 unwind label %2583

2623:                                             ; preds = %2622
  %2624 = load double, ptr %216, align 8, !tbaa !15
  %2625 = load double, ptr %218, align 8, !tbaa !15
  %2626 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %221, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %2624, double noundef %2625, double noundef %2626)
          to label %2627 unwind label %2628

2627:                                             ; preds = %2623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  br label %2632

2628:                                             ; preds = %2623
  %2629 = landingpad { ptr, i32 }
          cleanup
  %2630 = extractvalue { ptr, i32 } %2629, 0
  store ptr %2630, ptr %4, align 8
  %2631 = extractvalue { ptr, i32 } %2629, 1
  store i32 %2631, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  br label %2635

2632:                                             ; preds = %2627, %2619
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 8, 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
  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, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %2633 unwind label %2638

2633:                                             ; preds = %2632
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %222)
          to label %2634 unwind label %2642

2634:                                             ; preds = %2633
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  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
  ret i32 0

2635:                                             ; preds = %2628, %2613, %2583
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #7
  br label %2636

2636:                                             ; preds = %2635, %2579
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  br label %2637

2637:                                             ; preds = %2636, %2575
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #7
  br label %2647

2638:                                             ; preds = %2632
  %2639 = landingpad { ptr, i32 }
          cleanup
  %2640 = extractvalue { ptr, i32 } %2639, 0
  store ptr %2640, ptr %4, align 8
  %2641 = extractvalue { ptr, i32 } %2639, 1
  store i32 %2641, ptr %5, align 4
  br label %2646

2642:                                             ; preds = %2633
  %2643 = landingpad { ptr, i32 }
          cleanup
  %2644 = extractvalue { ptr, i32 } %2643, 0
  store ptr %2644, ptr %4, align 8
  %2645 = extractvalue { ptr, i32 } %2643, 1
  store i32 %2645, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  br label %2646

2646:                                             ; preds = %2642, %2638
  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 %2647

2647:                                             ; preds = %2646, %2637, %2574, %2484, %2394, %2303, %2213, %2123, %2036, %1948, %1860, %1766, %1671, %1576, %1486, %1400, %1314, %1228, %1140, %1050, %960, %875, %791, %707, %623, %533, %442, %351, %260
  %2648 = load ptr, ptr %4, align 8
  %2649 = load i32, ptr %5, align 4
  %2650 = insertvalue { ptr, i32 } poison, ptr %2648, 0
  %2651 = insertvalue { ptr, i32 } %2650, i32 %2649, 1
  resume { ptr, i32 } %2651
}

; 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 float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4fabsf(float noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3absf(float noundef) #5

; 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_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: 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_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 double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #5

; 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: 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 double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, i32 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, i32 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef) #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) #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 float @_ZNSt14numeric_limitsIfE6lowestEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE3minEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE3maxEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3minEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3maxEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #3 align 2

; 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 = { 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"float", !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 = !{!"double", !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 [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [11 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
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #7
  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 %113 unwind label %130

113:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %114 unwind label %132

114:                                              ; preds = %113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #7
  %115 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %116 = add nsw i32 %115, 1
  store i32 %116, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  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 %117 unwind label %135

117:                                              ; preds = %114
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  %118 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef 0.000000e+00) #7
  %119 = call noundef float @_ZSt4fabsf(float noundef 0.000000e+00)
  %120 = fsub float %118, %119
  %121 = call noundef float @_ZSt3absf(float noundef %120)
  %122 = call noundef float @_ZSt3absf(float noundef %119)
  %123 = fadd float %122, 1.000000e+00
  %124 = fdiv float %121, %123
  %125 = fpext float %118 to x86_fp80
  %126 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %125)
  br i1 %126, label %127, label %139

127:                                              ; preds = %117
  %128 = fpext float %119 to x86_fp80
  %129 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %128)
  br i1 %129, label %152, label %139

130:                                              ; preds = %0
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %134

132:                                              ; preds = %113
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #7
  br label %134

134:                                              ; preds = %132, %130
  %.pn = phi { ptr, i32 } [ %133, %132 ], [ %131, %130 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #7
  br label %1160

135:                                              ; preds = %114
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  br label %172

137:                                              ; preds = %152, %147
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %171

139:                                              ; preds = %127, %117
  %140 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %125)
  br i1 %140, label %146, label %141

141:                                              ; preds = %139
  %142 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %125)
  %143 = fcmp oeq float %118, %119
  %or.cond = and i1 %143, %142
  %144 = fpext float %124 to double
  %145 = fcmp olt double %144, 0x3D06849B86A12B9B
  %or.cond672 = or i1 %145, %or.cond
  br i1 %or.cond672, label %152, label %147

146:                                              ; preds = %139
  %.old = fpext float %124 to double
  %.old671 = fcmp olt double %.old, 0x3D06849B86A12B9B
  br i1 %.old671, label %152, label %147

147:                                              ; preds = %141, %146
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %148 unwind label %137

148:                                              ; preds = %147
  %149 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %5, i32 noundef %149, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %118, float noundef %119, float noundef 0.000000e+00)
          to label %.critedge unwind label %150

150:                                              ; preds = %148
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %171

152:                                              ; preds = %127, %141, %146
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %153 unwind label %137

153:                                              ; preds = %152
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %118, float noundef %124, float noundef 0.000000e+00)
          to label %.critedge unwind label %154

154:                                              ; preds = %153
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %171

.critedge:                                        ; preds = %153, %148
  %.sink = phi ptr [ %5, %148 ], [ %6, %153 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  %156 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  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 %158 unwind label %173

158:                                              ; preds = %.critedge
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  %159 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef -0.000000e+00) #7
  %160 = call noundef float @_ZSt4fabsf(float noundef -0.000000e+00)
  %161 = fsub float %159, %160
  %162 = call noundef float @_ZSt3absf(float noundef %161)
  %163 = call noundef float @_ZSt3absf(float noundef %160)
  %164 = fadd float %163, 1.000000e+00
  %165 = fdiv float %162, %164
  %166 = fpext float %159 to x86_fp80
  %167 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %166)
  br i1 %167, label %168, label %177

168:                                              ; preds = %158
  %169 = fpext float %160 to x86_fp80
  %170 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %169)
  br i1 %170, label %190, label %177

171:                                              ; preds = %154, %150, %137
  %.pn509 = phi { ptr, i32 } [ %155, %154 ], [ %138, %137 ], [ %151, %150 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %172

172:                                              ; preds = %171, %135
  %.pn509.pn = phi { ptr, i32 } [ %.pn509, %171 ], [ %136, %135 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %1160

173:                                              ; preds = %.critedge
  %174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  br label %210

175:                                              ; preds = %190, %185
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %209

177:                                              ; preds = %168, %158
  %178 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %166)
  br i1 %178, label %184, label %179

179:                                              ; preds = %177
  %180 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %166)
  %181 = fcmp oeq float %159, %160
  %or.cond593 = and i1 %181, %180
  %182 = fpext float %165 to double
  %183 = fcmp olt double %182, 0x3D06849B86A12B9B
  %or.cond675 = or i1 %183, %or.cond593
  br i1 %or.cond675, label %190, label %185

184:                                              ; preds = %177
  %.old673 = fpext float %165 to double
  %.old674 = fcmp olt double %.old673, 0x3D06849B86A12B9B
  br i1 %.old674, label %190, label %185

185:                                              ; preds = %179, %184
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %186 unwind label %175

186:                                              ; preds = %185
  %187 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %9, i32 noundef %187, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %159, float noundef %160, float noundef -0.000000e+00)
          to label %.critedge595 unwind label %188

188:                                              ; preds = %186
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %209

190:                                              ; preds = %168, %179, %184
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %191 unwind label %175

191:                                              ; preds = %190
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %159, float noundef %165, float noundef -0.000000e+00)
          to label %.critedge595 unwind label %192

192:                                              ; preds = %191
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %209

.critedge595:                                     ; preds = %191, %186
  %.sink731 = phi ptr [ %9, %186 ], [ %10, %191 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink731) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  %194 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %195 = add nsw i32 %194, 1
  store i32 %195, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  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 %196 unwind label %211

196:                                              ; preds = %.critedge595
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  %197 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef 1.000000e+00) #7
  %198 = call noundef float @_ZSt4fabsf(float noundef 1.000000e+00)
  %199 = fsub float %197, %198
  %200 = call noundef float @_ZSt3absf(float noundef %199)
  %201 = call noundef float @_ZSt3absf(float noundef %198)
  %202 = fadd float %201, 1.000000e+00
  %203 = fdiv float %200, %202
  %204 = fpext float %197 to x86_fp80
  %205 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %204)
  br i1 %205, label %206, label %215

206:                                              ; preds = %196
  %207 = fpext float %198 to x86_fp80
  %208 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %207)
  br i1 %208, label %228, label %215

209:                                              ; preds = %192, %188, %175
  %.pn512 = phi { ptr, i32 } [ %193, %192 ], [ %176, %175 ], [ %189, %188 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %210

210:                                              ; preds = %209, %173
  %.pn512.pn = phi { ptr, i32 } [ %.pn512, %209 ], [ %174, %173 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %1160

211:                                              ; preds = %.critedge595
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  br label %248

213:                                              ; preds = %228, %223
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %247

215:                                              ; preds = %206, %196
  %216 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %204)
  br i1 %216, label %222, label %217

217:                                              ; preds = %215
  %218 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %204)
  %219 = fcmp oeq float %197, %198
  %or.cond596 = and i1 %219, %218
  %220 = fpext float %203 to double
  %221 = fcmp olt double %220, 0x3D06849B86A12B9B
  %or.cond678 = or i1 %221, %or.cond596
  br i1 %or.cond678, label %228, label %223

222:                                              ; preds = %215
  %.old676 = fpext float %203 to double
  %.old677 = fcmp olt double %.old676, 0x3D06849B86A12B9B
  br i1 %.old677, label %228, label %223

223:                                              ; preds = %217, %222
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %224 unwind label %213

224:                                              ; preds = %223
  %225 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %13, i32 noundef %225, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %197, float noundef %198, float noundef 1.000000e+00)
          to label %.critedge598 unwind label %226

226:                                              ; preds = %224
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %247

228:                                              ; preds = %206, %217, %222
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %229 unwind label %213

229:                                              ; preds = %228
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %197, float noundef %203, float noundef 1.000000e+00)
          to label %.critedge598 unwind label %230

230:                                              ; preds = %229
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %247

.critedge598:                                     ; preds = %229, %224
  %.sink732 = phi ptr [ %13, %224 ], [ %14, %229 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink732) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  %232 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %233 = add nsw i32 %232, 1
  store i32 %233, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  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 %234 unwind label %249

234:                                              ; preds = %.critedge598
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  %235 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef -1.000000e+00) #7
  %236 = call noundef float @_ZSt4fabsf(float noundef -1.000000e+00)
  %237 = fsub float %235, %236
  %238 = call noundef float @_ZSt3absf(float noundef %237)
  %239 = call noundef float @_ZSt3absf(float noundef %236)
  %240 = fadd float %239, 1.000000e+00
  %241 = fdiv float %238, %240
  %242 = fpext float %235 to x86_fp80
  %243 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %242)
  br i1 %243, label %244, label %253

244:                                              ; preds = %234
  %245 = fpext float %236 to x86_fp80
  %246 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %245)
  br i1 %246, label %266, label %253

247:                                              ; preds = %230, %226, %213
  %.pn515 = phi { ptr, i32 } [ %231, %230 ], [ %214, %213 ], [ %227, %226 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %248

248:                                              ; preds = %247, %211
  %.pn515.pn = phi { ptr, i32 } [ %.pn515, %247 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  br label %1160

249:                                              ; preds = %.critedge598
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  br label %283

251:                                              ; preds = %266, %261
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %282

253:                                              ; preds = %244, %234
  %254 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %242)
  br i1 %254, label %260, label %255

255:                                              ; preds = %253
  %256 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %242)
  %257 = fcmp oeq float %235, %236
  %or.cond599 = and i1 %257, %256
  %258 = fpext float %241 to double
  %259 = fcmp olt double %258, 0x3D06849B86A12B9B
  %or.cond681 = or i1 %259, %or.cond599
  br i1 %or.cond681, label %266, label %261

260:                                              ; preds = %253
  %.old679 = fpext float %241 to double
  %.old680 = fcmp olt double %.old679, 0x3D06849B86A12B9B
  br i1 %.old680, label %266, label %261

261:                                              ; preds = %255, %260
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %262 unwind label %251

262:                                              ; preds = %261
  %263 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %17, i32 noundef %263, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %235, float noundef %236, float noundef -1.000000e+00)
          to label %.critedge601 unwind label %264

264:                                              ; preds = %262
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %282

266:                                              ; preds = %244, %255, %260
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %267 unwind label %251

267:                                              ; preds = %266
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %235, float noundef %241, float noundef -1.000000e+00)
          to label %.critedge601 unwind label %268

268:                                              ; preds = %267
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %282

.critedge601:                                     ; preds = %267, %262
  %.sink733 = phi ptr [ %17, %262 ], [ %18, %267 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink733) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  %270 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  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 %272 unwind label %284

272:                                              ; preds = %.critedge601
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  %273 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 0.000000e+00) #7
  %274 = call noundef double @_ZSt3absd(double noundef %273)
  %275 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %276 = fadd double %275, 1.000000e+00
  %277 = fdiv double %274, %276
  %278 = fpext double %273 to x86_fp80
  %279 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %278)
  br i1 %279, label %280, label %288

280:                                              ; preds = %272
  %281 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %281, label %300, label %288

282:                                              ; preds = %268, %264, %251
  %.pn518 = phi { ptr, i32 } [ %269, %268 ], [ %252, %251 ], [ %265, %264 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %283

283:                                              ; preds = %282, %249
  %.pn518.pn = phi { ptr, i32 } [ %.pn518, %282 ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %1160

284:                                              ; preds = %.critedge601
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  br label %317

286:                                              ; preds = %300, %295
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %316

288:                                              ; preds = %280, %272
  %289 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %278)
  br i1 %289, label %294, label %290

290:                                              ; preds = %288
  %291 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %278)
  %292 = fcmp oeq double %273, 0.000000e+00
  %or.cond602 = and i1 %292, %291
  %293 = fcmp olt double %277, 0x3D06849B86A12B9B
  %or.cond683 = or i1 %293, %or.cond602
  br i1 %or.cond683, label %300, label %295

294:                                              ; preds = %288
  %.old682 = fcmp olt double %277, 0x3D06849B86A12B9B
  br i1 %.old682, label %300, label %295

295:                                              ; preds = %290, %294
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %296 unwind label %286

296:                                              ; preds = %295
  %297 = 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 %297, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %273, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge604 unwind label %298

298:                                              ; preds = %296
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %316

300:                                              ; preds = %280, %290, %294
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %301 unwind label %286

301:                                              ; preds = %300
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %22, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %273, double noundef %277, double noundef 0.000000e+00)
          to label %.critedge604 unwind label %302

302:                                              ; preds = %301
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %316

.critedge604:                                     ; preds = %301, %296
  %.sink734 = phi ptr [ %21, %296 ], [ %22, %301 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink734) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  %304 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %305 = add nsw i32 %304, 1
  store i32 %305, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  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 %306 unwind label %318

306:                                              ; preds = %.critedge604
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  %307 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -0.000000e+00) #7
  %308 = call noundef double @_ZSt3absd(double noundef %307)
  %309 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %310 = fadd double %309, 1.000000e+00
  %311 = fdiv double %308, %310
  %312 = fpext double %307 to x86_fp80
  %313 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %312)
  br i1 %313, label %314, label %322

314:                                              ; preds = %306
  %315 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %315, label %334, label %322

316:                                              ; preds = %302, %298, %286
  %.pn521 = phi { ptr, i32 } [ %303, %302 ], [ %287, %286 ], [ %299, %298 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %317

317:                                              ; preds = %316, %284
  %.pn521.pn = phi { ptr, i32 } [ %.pn521, %316 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %1160

318:                                              ; preds = %.critedge604
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  br label %352

320:                                              ; preds = %334, %329
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %351

322:                                              ; preds = %314, %306
  %323 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %312)
  br i1 %323, label %328, label %324

324:                                              ; preds = %322
  %325 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %312)
  %326 = fcmp oeq double %307, 0.000000e+00
  %or.cond605 = and i1 %326, %325
  %327 = fcmp olt double %311, 0x3D06849B86A12B9B
  %or.cond685 = or i1 %327, %or.cond605
  br i1 %or.cond685, label %334, label %329

328:                                              ; preds = %322
  %.old684 = fcmp olt double %311, 0x3D06849B86A12B9B
  br i1 %.old684, label %334, label %329

329:                                              ; preds = %324, %328
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %330 unwind label %320

330:                                              ; preds = %329
  %331 = 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 %331, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %307, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge607 unwind label %332

332:                                              ; preds = %330
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %351

334:                                              ; preds = %314, %324, %328
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %335 unwind label %320

335:                                              ; preds = %334
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %26, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %307, double noundef %311, double noundef -0.000000e+00)
          to label %.critedge607 unwind label %336

336:                                              ; preds = %335
  %337 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %351

.critedge607:                                     ; preds = %335, %330
  %.sink735 = phi ptr [ %25, %330 ], [ %26, %335 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink735) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  %338 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %339 = add nsw i32 %338, 1
  store i32 %339, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  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 %340 unwind label %353

340:                                              ; preds = %.critedge607
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  %341 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 1.000000e+00) #7
  %342 = fadd double %341, -1.000000e+00
  %343 = call noundef double @_ZSt3absd(double noundef %342)
  %344 = call noundef double @_ZSt3absd(double noundef 1.000000e+00)
  %345 = fadd double %344, 1.000000e+00
  %346 = fdiv double %343, %345
  %347 = fpext double %341 to x86_fp80
  %348 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %347)
  br i1 %348, label %349, label %357

349:                                              ; preds = %340
  %350 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFF8000000000000000)
  br i1 %350, label %369, label %357

351:                                              ; preds = %336, %332, %320
  %.pn524 = phi { ptr, i32 } [ %337, %336 ], [ %321, %320 ], [ %333, %332 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %352

352:                                              ; preds = %351, %318
  %.pn524.pn = phi { ptr, i32 } [ %.pn524, %351 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %1160

353:                                              ; preds = %.critedge607
  %354 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  br label %387

355:                                              ; preds = %369, %364
  %356 = landingpad { ptr, i32 }
          cleanup
  br label %386

357:                                              ; preds = %349, %340
  %358 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %347)
  br i1 %358, label %363, label %359

359:                                              ; preds = %357
  %360 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %347)
  %361 = fcmp oeq double %341, 1.000000e+00
  %or.cond608 = and i1 %361, %360
  %362 = fcmp olt double %346, 0x3D06849B86A12B9B
  %or.cond687 = or i1 %362, %or.cond608
  br i1 %or.cond687, label %369, label %364

363:                                              ; preds = %357
  %.old686 = fcmp olt double %346, 0x3D06849B86A12B9B
  br i1 %.old686, label %369, label %364

364:                                              ; preds = %359, %363
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %365 unwind label %355

365:                                              ; preds = %364
  %366 = 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 %366, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %341, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %.critedge610 unwind label %367

367:                                              ; preds = %365
  %368 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %386

369:                                              ; preds = %349, %359, %363
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %370 unwind label %355

370:                                              ; preds = %369
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %341, double noundef %346, double noundef 1.000000e+00)
          to label %.critedge610 unwind label %371

371:                                              ; preds = %370
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %386

.critedge610:                                     ; preds = %370, %365
  %.sink736 = phi ptr [ %29, %365 ], [ %30, %370 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink736) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  %373 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  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 %375 unwind label %388

375:                                              ; preds = %.critedge610
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  %376 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -1.000000e+00) #7
  %377 = fadd double %376, -1.000000e+00
  %378 = call noundef double @_ZSt3absd(double noundef %377)
  %379 = call noundef double @_ZSt3absd(double noundef 1.000000e+00)
  %380 = fadd double %379, 1.000000e+00
  %381 = fdiv double %378, %380
  %382 = fpext double %376 to x86_fp80
  %383 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %382)
  br i1 %383, label %384, label %392

384:                                              ; preds = %375
  %385 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFF8000000000000000)
  br i1 %385, label %404, label %392

386:                                              ; preds = %371, %367, %355
  %.pn527 = phi { ptr, i32 } [ %372, %371 ], [ %356, %355 ], [ %368, %367 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %387

387:                                              ; preds = %386, %353
  %.pn527.pn = phi { ptr, i32 } [ %.pn527, %386 ], [ %354, %353 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %1160

388:                                              ; preds = %.critedge610
  %389 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  br label %424

390:                                              ; preds = %404, %399
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %423

392:                                              ; preds = %384, %375
  %393 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %382)
  br i1 %393, label %398, label %394

394:                                              ; preds = %392
  %395 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %382)
  %396 = fcmp oeq double %376, 1.000000e+00
  %or.cond611 = and i1 %396, %395
  %397 = fcmp olt double %381, 0x3D06849B86A12B9B
  %or.cond689 = or i1 %397, %or.cond611
  br i1 %or.cond689, label %404, label %399

398:                                              ; preds = %392
  %.old688 = fcmp olt double %381, 0x3D06849B86A12B9B
  br i1 %.old688, label %404, label %399

399:                                              ; preds = %394, %398
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %400 unwind label %390

400:                                              ; preds = %399
  %401 = 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 %401, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %376, double noundef 1.000000e+00, double noundef -1.000000e+00)
          to label %.critedge613 unwind label %402

402:                                              ; preds = %400
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %423

404:                                              ; preds = %384, %394, %398
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %405 unwind label %390

405:                                              ; preds = %404
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %34, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %376, double noundef %381, double noundef -1.000000e+00)
          to label %.critedge613 unwind label %406

406:                                              ; preds = %405
  %407 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %423

.critedge613:                                     ; preds = %405, %400
  %.sink737 = phi ptr [ %33, %400 ], [ %34, %405 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink737) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  %408 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  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 %410 unwind label %425

410:                                              ; preds = %.critedge613
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  %411 = call noundef double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef 0) #7
  %412 = call noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef 0)
  %413 = fsub double %411, %412
  %414 = call noundef double @_ZSt3absd(double noundef %413)
  %415 = call noundef double @_ZSt3absd(double noundef %412)
  %416 = fadd double %415, 1.000000e+00
  %417 = fdiv double %414, %416
  %418 = fpext double %411 to x86_fp80
  %419 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %418)
  br i1 %419, label %420, label %429

420:                                              ; preds = %410
  %421 = fpext double %412 to x86_fp80
  %422 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %421)
  br i1 %422, label %441, label %429

423:                                              ; preds = %406, %402, %390
  %.pn530 = phi { ptr, i32 } [ %407, %406 ], [ %391, %390 ], [ %403, %402 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %424

424:                                              ; preds = %423, %388
  %.pn530.pn = phi { ptr, i32 } [ %.pn530, %423 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %1160

425:                                              ; preds = %.critedge613
  %426 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  br label %461

427:                                              ; preds = %441, %436
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %460

429:                                              ; preds = %420, %410
  %430 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %418)
  br i1 %430, label %435, label %431

431:                                              ; preds = %429
  %432 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %418)
  %433 = fcmp oeq double %411, %412
  %or.cond614 = and i1 %433, %432
  %434 = fcmp olt double %417, 0x3D06849B86A12B9B
  %or.cond691 = or i1 %434, %or.cond614
  br i1 %or.cond691, label %441, label %436

435:                                              ; preds = %429
  %.old690 = fcmp olt double %417, 0x3D06849B86A12B9B
  br i1 %.old690, label %441, label %436

436:                                              ; preds = %431, %435
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %437 unwind label %427

437:                                              ; preds = %436
  %438 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %37, i32 noundef %438, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %411, double noundef %412, i32 noundef 0)
          to label %.critedge616 unwind label %439

439:                                              ; preds = %437
  %440 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %460

441:                                              ; preds = %420, %431, %435
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %442 unwind label %427

442:                                              ; preds = %441
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %411, double noundef %417, i32 noundef 0)
          to label %.critedge616 unwind label %443

443:                                              ; preds = %442
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %460

.critedge616:                                     ; preds = %442, %437
  %.sink738 = phi ptr [ %37, %437 ], [ %38, %442 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink738) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  %445 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  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 %447 unwind label %462

447:                                              ; preds = %.critedge616
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  %448 = call noundef double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef 1) #7
  %449 = call noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef 1)
  %450 = fsub double %448, %449
  %451 = call noundef double @_ZSt3absd(double noundef %450)
  %452 = call noundef double @_ZSt3absd(double noundef %449)
  %453 = fadd double %452, 1.000000e+00
  %454 = fdiv double %451, %453
  %455 = fpext double %448 to x86_fp80
  %456 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %455)
  br i1 %456, label %457, label %466

457:                                              ; preds = %447
  %458 = fpext double %449 to x86_fp80
  %459 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %458)
  br i1 %459, label %478, label %466

460:                                              ; preds = %443, %439, %427
  %.pn533 = phi { ptr, i32 } [ %444, %443 ], [ %428, %427 ], [ %440, %439 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %461

461:                                              ; preds = %460, %425
  %.pn533.pn = phi { ptr, i32 } [ %.pn533, %460 ], [ %426, %425 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %1160

462:                                              ; preds = %.critedge616
  %463 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  br label %498

464:                                              ; preds = %478, %473
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %497

466:                                              ; preds = %457, %447
  %467 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %455)
  br i1 %467, label %472, label %468

468:                                              ; preds = %466
  %469 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %455)
  %470 = fcmp oeq double %448, %449
  %or.cond617 = and i1 %470, %469
  %471 = fcmp olt double %454, 0x3D06849B86A12B9B
  %or.cond693 = or i1 %471, %or.cond617
  br i1 %or.cond693, label %478, label %473

472:                                              ; preds = %466
  %.old692 = fcmp olt double %454, 0x3D06849B86A12B9B
  br i1 %.old692, label %478, label %473

473:                                              ; preds = %468, %472
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %474 unwind label %464

474:                                              ; preds = %473
  %475 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %41, i32 noundef %475, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %448, double noundef %449, i32 noundef 1)
          to label %.critedge619 unwind label %476

476:                                              ; preds = %474
  %477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %497

478:                                              ; preds = %457, %468, %472
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %479 unwind label %464

479:                                              ; preds = %478
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %42, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %448, double noundef %454, i32 noundef 1)
          to label %.critedge619 unwind label %480

480:                                              ; preds = %479
  %481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %497

.critedge619:                                     ; preds = %479, %474
  %.sink739 = phi ptr [ %41, %474 ], [ %42, %479 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink739) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  %482 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %483 = add nsw i32 %482, 1
  store i32 %483, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  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 %484 unwind label %499

484:                                              ; preds = %.critedge619
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #7
  %485 = call noundef double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef -1) #7
  %486 = call noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef -1)
  %487 = fsub double %485, %486
  %488 = call noundef double @_ZSt3absd(double noundef %487)
  %489 = call noundef double @_ZSt3absd(double noundef %486)
  %490 = fadd double %489, 1.000000e+00
  %491 = fdiv double %488, %490
  %492 = fpext double %485 to x86_fp80
  %493 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %492)
  br i1 %493, label %494, label %503

494:                                              ; preds = %484
  %495 = fpext double %486 to x86_fp80
  %496 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %495)
  br i1 %496, label %515, label %503

497:                                              ; preds = %480, %476, %464
  %.pn536 = phi { ptr, i32 } [ %481, %480 ], [ %465, %464 ], [ %477, %476 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %498

498:                                              ; preds = %497, %462
  %.pn536.pn = phi { ptr, i32 } [ %.pn536, %497 ], [ %463, %462 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  br label %1160

499:                                              ; preds = %.critedge619
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #7
  br label %533

501:                                              ; preds = %515, %510
  %502 = landingpad { ptr, i32 }
          cleanup
  br label %532

503:                                              ; preds = %494, %484
  %504 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %492)
  br i1 %504, label %509, label %505

505:                                              ; preds = %503
  %506 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %492)
  %507 = fcmp oeq double %485, %486
  %or.cond620 = and i1 %507, %506
  %508 = fcmp olt double %491, 0x3D06849B86A12B9B
  %or.cond695 = or i1 %508, %or.cond620
  br i1 %or.cond695, label %515, label %510

509:                                              ; preds = %503
  %.old694 = fcmp olt double %491, 0x3D06849B86A12B9B
  br i1 %.old694, label %515, label %510

510:                                              ; preds = %505, %509
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %511 unwind label %501

511:                                              ; preds = %510
  %512 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %45, i32 noundef %512, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %485, double noundef %486, i32 noundef -1)
          to label %.critedge622 unwind label %513

513:                                              ; preds = %511
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %532

515:                                              ; preds = %494, %505, %509
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %516 unwind label %501

516:                                              ; preds = %515
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %46, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %485, double noundef %491, i32 noundef -1)
          to label %.critedge622 unwind label %517

517:                                              ; preds = %516
  %518 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %532

.critedge622:                                     ; preds = %516, %511
  %.sink740 = phi ptr [ %45, %511 ], [ %46, %516 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink740) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  %519 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  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 %521 unwind label %534

521:                                              ; preds = %.critedge622
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  %522 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #7
  %523 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK00000000000000000000)
  %524 = fsub x86_fp80 %522, %523
  %525 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %524)
  %526 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %523)
  %527 = fadd x86_fp80 %526, 0xK3FFF8000000000000000
  %528 = fdiv x86_fp80 %525, %527
  %529 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %522)
  br i1 %529, label %530, label %538

530:                                              ; preds = %521
  %531 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %523)
  br i1 %531, label %550, label %538

532:                                              ; preds = %517, %513, %501
  %.pn539 = phi { ptr, i32 } [ %518, %517 ], [ %502, %501 ], [ %514, %513 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %533

533:                                              ; preds = %532, %499
  %.pn539.pn = phi { ptr, i32 } [ %.pn539, %532 ], [ %500, %499 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  br label %1160

534:                                              ; preds = %.critedge622
  %535 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  br label %568

536:                                              ; preds = %550, %545
  %537 = landingpad { ptr, i32 }
          cleanup
  br label %567

538:                                              ; preds = %530, %521
  %539 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %522)
  br i1 %539, label %544, label %540

540:                                              ; preds = %538
  %541 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %522)
  %542 = fcmp oeq x86_fp80 %522, %523
  %or.cond623 = and i1 %542, %541
  %543 = fcmp olt x86_fp80 %528, 0xK3FD0B424DC35095CD800
  %or.cond697 = or i1 %543, %or.cond623
  br i1 %or.cond697, label %550, label %545

544:                                              ; preds = %538
  %.old696 = fcmp olt x86_fp80 %528, 0xK3FD0B424DC35095CD800
  br i1 %.old696, label %550, label %545

545:                                              ; preds = %540, %544
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %546 unwind label %536

546:                                              ; preds = %545
  %547 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %49, i32 noundef %547, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %522, x86_fp80 noundef %523, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge625 unwind label %548

548:                                              ; preds = %546
  %549 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %567

550:                                              ; preds = %530, %540, %544
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %551 unwind label %536

551:                                              ; preds = %550
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %50, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %522, x86_fp80 noundef %528, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge625 unwind label %552

552:                                              ; preds = %551
  %553 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %567

.critedge625:                                     ; preds = %551, %546
  %.sink741 = phi ptr [ %49, %546 ], [ %50, %551 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink741) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  %554 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  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 %556 unwind label %569

556:                                              ; preds = %.critedge625
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #7
  %557 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK80000000000000000000) #7
  %558 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK80000000000000000000)
  %559 = fsub x86_fp80 %557, %558
  %560 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %559)
  %561 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %558)
  %562 = fadd x86_fp80 %561, 0xK3FFF8000000000000000
  %563 = fdiv x86_fp80 %560, %562
  %564 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %557)
  br i1 %564, label %565, label %573

565:                                              ; preds = %556
  %566 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %558)
  br i1 %566, label %585, label %573

567:                                              ; preds = %552, %548, %536
  %.pn542 = phi { ptr, i32 } [ %553, %552 ], [ %537, %536 ], [ %549, %548 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %568

568:                                              ; preds = %567, %534
  %.pn542.pn = phi { ptr, i32 } [ %.pn542, %567 ], [ %535, %534 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  br label %1160

569:                                              ; preds = %.critedge625
  %570 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #7
  br label %603

571:                                              ; preds = %585, %580
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %602

573:                                              ; preds = %565, %556
  %574 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %557)
  br i1 %574, label %579, label %575

575:                                              ; preds = %573
  %576 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %557)
  %577 = fcmp oeq x86_fp80 %557, %558
  %or.cond626 = and i1 %577, %576
  %578 = fcmp olt x86_fp80 %563, 0xK3FD0B424DC35095CD800
  %or.cond699 = or i1 %578, %or.cond626
  br i1 %or.cond699, label %585, label %580

579:                                              ; preds = %573
  %.old698 = fcmp olt x86_fp80 %563, 0xK3FD0B424DC35095CD800
  br i1 %.old698, label %585, label %580

580:                                              ; preds = %575, %579
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %581 unwind label %571

581:                                              ; preds = %580
  %582 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %53, i32 noundef %582, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %557, x86_fp80 noundef %558, x86_fp80 noundef 0xK80000000000000000000)
          to label %.critedge628 unwind label %583

583:                                              ; preds = %581
  %584 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %602

585:                                              ; preds = %565, %575, %579
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %586 unwind label %571

586:                                              ; preds = %585
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %54, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %557, x86_fp80 noundef %563, x86_fp80 noundef 0xK80000000000000000000)
          to label %.critedge628 unwind label %587

587:                                              ; preds = %586
  %588 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %602

.critedge628:                                     ; preds = %586, %581
  %.sink742 = phi ptr [ %53, %581 ], [ %54, %586 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink742) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  %589 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  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 %591 unwind label %604

591:                                              ; preds = %.critedge628
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #7
  %592 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8000000000000000) #7
  %593 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK3FFF8000000000000000)
  %594 = fsub x86_fp80 %592, %593
  %595 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %594)
  %596 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %593)
  %597 = fadd x86_fp80 %596, 0xK3FFF8000000000000000
  %598 = fdiv x86_fp80 %595, %597
  %599 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %592)
  br i1 %599, label %600, label %608

600:                                              ; preds = %591
  %601 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %593)
  br i1 %601, label %620, label %608

602:                                              ; preds = %587, %583, %571
  %.pn545 = phi { ptr, i32 } [ %588, %587 ], [ %572, %571 ], [ %584, %583 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %603

603:                                              ; preds = %602, %569
  %.pn545.pn = phi { ptr, i32 } [ %.pn545, %602 ], [ %570, %569 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  br label %1160

604:                                              ; preds = %.critedge628
  %605 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #7
  br label %638

606:                                              ; preds = %620, %615
  %607 = landingpad { ptr, i32 }
          cleanup
  br label %637

608:                                              ; preds = %600, %591
  %609 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %592)
  br i1 %609, label %614, label %610

610:                                              ; preds = %608
  %611 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %592)
  %612 = fcmp oeq x86_fp80 %592, %593
  %or.cond629 = and i1 %612, %611
  %613 = fcmp olt x86_fp80 %598, 0xK3FD0B424DC35095CD800
  %or.cond701 = or i1 %613, %or.cond629
  br i1 %or.cond701, label %620, label %615

614:                                              ; preds = %608
  %.old700 = fcmp olt x86_fp80 %598, 0xK3FD0B424DC35095CD800
  br i1 %.old700, label %620, label %615

615:                                              ; preds = %610, %614
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %616 unwind label %606

616:                                              ; preds = %615
  %617 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %57, i32 noundef %617, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %592, x86_fp80 noundef %593, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %.critedge631 unwind label %618

618:                                              ; preds = %616
  %619 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %637

620:                                              ; preds = %600, %610, %614
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %621 unwind label %606

621:                                              ; preds = %620
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %58, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %592, x86_fp80 noundef %598, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %.critedge631 unwind label %622

622:                                              ; preds = %621
  %623 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %637

.critedge631:                                     ; preds = %621, %616
  %.sink743 = phi ptr [ %57, %616 ], [ %58, %621 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink743) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  %624 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  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 %626 unwind label %639

626:                                              ; preds = %.critedge631
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #7
  %627 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFF8000000000000000) #7
  %628 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xKBFFF8000000000000000)
  %629 = fsub x86_fp80 %627, %628
  %630 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %629)
  %631 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %628)
  %632 = fadd x86_fp80 %631, 0xK3FFF8000000000000000
  %633 = fdiv x86_fp80 %630, %632
  %634 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %627)
  br i1 %634, label %635, label %643

635:                                              ; preds = %626
  %636 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %628)
  br i1 %636, label %655, label %643

637:                                              ; preds = %622, %618, %606
  %.pn548 = phi { ptr, i32 } [ %623, %622 ], [ %607, %606 ], [ %619, %618 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %638

638:                                              ; preds = %637, %604
  %.pn548.pn = phi { ptr, i32 } [ %.pn548, %637 ], [ %605, %604 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  br label %1160

639:                                              ; preds = %.critedge631
  %640 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #7
  br label %677

641:                                              ; preds = %655, %650
  %642 = landingpad { ptr, i32 }
          cleanup
  br label %676

643:                                              ; preds = %635, %626
  %644 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %627)
  br i1 %644, label %649, label %645

645:                                              ; preds = %643
  %646 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %627)
  %647 = fcmp oeq x86_fp80 %627, %628
  %or.cond632 = and i1 %647, %646
  %648 = fcmp olt x86_fp80 %633, 0xK3FD0B424DC35095CD800
  %or.cond703 = or i1 %648, %or.cond632
  br i1 %or.cond703, label %655, label %650

649:                                              ; preds = %643
  %.old702 = fcmp olt x86_fp80 %633, 0xK3FD0B424DC35095CD800
  br i1 %.old702, label %655, label %650

650:                                              ; preds = %645, %649
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %651 unwind label %641

651:                                              ; preds = %650
  %652 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %61, i32 noundef %652, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %627, x86_fp80 noundef %628, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %.critedge634 unwind label %653

653:                                              ; preds = %651
  %654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %676

655:                                              ; preds = %635, %645, %649
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %656 unwind label %641

656:                                              ; preds = %655
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %62, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %627, x86_fp80 noundef %633, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %.critedge634 unwind label %657

657:                                              ; preds = %656
  %658 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %676

.critedge634:                                     ; preds = %656, %651
  %.sink744 = phi ptr [ %61, %651 ], [ %62, %656 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink744) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  %659 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %660 = add nsw i32 %659, 1
  store i32 %660, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %661 unwind label %678

661:                                              ; preds = %.critedge634
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #7
  %662 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  %663 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %662) #7
  %664 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  %665 = call noundef float @_ZSt4fabsf(float noundef %664)
  %666 = fsub float %663, %665
  %667 = call noundef float @_ZSt3absf(float noundef %666)
  %668 = call noundef float @_ZSt3absf(float noundef %665)
  %669 = fadd float %668, 1.000000e+00
  %670 = fdiv float %667, %669
  %671 = fpext float %663 to x86_fp80
  %672 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %671)
  br i1 %672, label %673, label %682

673:                                              ; preds = %661
  %674 = fpext float %665 to x86_fp80
  %675 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %674)
  br i1 %675, label %696, label %682

676:                                              ; preds = %657, %653, %641
  %.pn551 = phi { ptr, i32 } [ %658, %657 ], [ %642, %641 ], [ %654, %653 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %677

677:                                              ; preds = %676, %639
  %.pn551.pn = phi { ptr, i32 } [ %.pn551, %676 ], [ %640, %639 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  br label %1160

678:                                              ; preds = %.critedge634
  %679 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #7
  br label %719

680:                                              ; preds = %696, %690
  %681 = landingpad { ptr, i32 }
          cleanup
  br label %718

682:                                              ; preds = %673, %661
  %683 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %671)
  br i1 %683, label %689, label %684

684:                                              ; preds = %682
  %685 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %671)
  %686 = fcmp oeq float %663, %665
  %or.cond635 = and i1 %686, %685
  %687 = fpext float %670 to double
  %688 = fcmp olt double %687, 0x3D06849B86A12B9B
  %or.cond706 = or i1 %688, %or.cond635
  br i1 %or.cond706, label %696, label %690

689:                                              ; preds = %682
  %.old704 = fpext float %670 to double
  %.old705 = fcmp olt double %.old704, 0x3D06849B86A12B9B
  br i1 %.old705, label %696, label %690

690:                                              ; preds = %684, %689
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %691 unwind label %680

691:                                              ; preds = %690
  %692 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %693 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %65, i32 noundef %692, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %663, float noundef %665, float noundef %693)
          to label %.critedge637 unwind label %694

694:                                              ; preds = %691
  %695 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %718

696:                                              ; preds = %673, %684, %689
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %697 unwind label %680

697:                                              ; preds = %696
  %698 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %66, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %663, float noundef %670, float noundef %698)
          to label %.critedge637 unwind label %699

699:                                              ; preds = %697
  %700 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %718

.critedge637:                                     ; preds = %697, %691
  %.sink745 = phi ptr [ %65, %691 ], [ %66, %697 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink745) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  %701 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %702 = add nsw i32 %701, 1
  store i32 %702, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %703 unwind label %720

703:                                              ; preds = %.critedge637
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #7
  %704 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  %705 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %704) #7
  %706 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  %707 = call noundef float @_ZSt4fabsf(float noundef %706)
  %708 = fsub float %705, %707
  %709 = call noundef float @_ZSt3absf(float noundef %708)
  %710 = call noundef float @_ZSt3absf(float noundef %707)
  %711 = fadd float %710, 1.000000e+00
  %712 = fdiv float %709, %711
  %713 = fpext float %705 to x86_fp80
  %714 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %713)
  br i1 %714, label %715, label %724

715:                                              ; preds = %703
  %716 = fpext float %707 to x86_fp80
  %717 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %716)
  br i1 %717, label %738, label %724

718:                                              ; preds = %699, %694, %680
  %.pn554 = phi { ptr, i32 } [ %700, %699 ], [ %681, %680 ], [ %695, %694 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %719

719:                                              ; preds = %718, %678
  %.pn554.pn = phi { ptr, i32 } [ %.pn554, %718 ], [ %679, %678 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  br label %1160

720:                                              ; preds = %.critedge637
  %721 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #7
  br label %761

722:                                              ; preds = %738, %732
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %760

724:                                              ; preds = %715, %703
  %725 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %713)
  br i1 %725, label %731, label %726

726:                                              ; preds = %724
  %727 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %713)
  %728 = fcmp oeq float %705, %707
  %or.cond638 = and i1 %728, %727
  %729 = fpext float %712 to double
  %730 = fcmp olt double %729, 0x3D06849B86A12B9B
  %or.cond709 = or i1 %730, %or.cond638
  br i1 %or.cond709, label %738, label %732

731:                                              ; preds = %724
  %.old707 = fpext float %712 to double
  %.old708 = fcmp olt double %.old707, 0x3D06849B86A12B9B
  br i1 %.old708, label %738, label %732

732:                                              ; preds = %726, %731
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %733 unwind label %722

733:                                              ; preds = %732
  %734 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %735 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %69, i32 noundef %734, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %705, float noundef %707, float noundef %735)
          to label %.critedge640 unwind label %736

736:                                              ; preds = %733
  %737 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %760

738:                                              ; preds = %715, %726, %731
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %739 unwind label %722

739:                                              ; preds = %738
  %740 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %70, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %705, float noundef %712, float noundef %740)
          to label %.critedge640 unwind label %741

741:                                              ; preds = %739
  %742 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %760

.critedge640:                                     ; preds = %739, %733
  %.sink746 = phi ptr [ %69, %733 ], [ %70, %739 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink746) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  %743 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %744 = add nsw i32 %743, 1
  store i32 %744, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %745 unwind label %762

745:                                              ; preds = %.critedge640
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #7
  %746 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %747 = call noundef float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef %746) #7
  %748 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  %749 = call noundef float @_ZSt4fabsf(float noundef %748)
  %750 = fsub float %747, %749
  %751 = call noundef float @_ZSt3absf(float noundef %750)
  %752 = call noundef float @_ZSt3absf(float noundef %749)
  %753 = fadd float %752, 1.000000e+00
  %754 = fdiv float %751, %753
  %755 = fpext float %747 to x86_fp80
  %756 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %755)
  br i1 %756, label %757, label %766

757:                                              ; preds = %745
  %758 = fpext float %749 to x86_fp80
  %759 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %758)
  br i1 %759, label %780, label %766

760:                                              ; preds = %741, %736, %722
  %.pn557 = phi { ptr, i32 } [ %742, %741 ], [ %723, %722 ], [ %737, %736 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %761

761:                                              ; preds = %760, %720
  %.pn557.pn = phi { ptr, i32 } [ %.pn557, %760 ], [ %721, %720 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  br label %1160

762:                                              ; preds = %.critedge640
  %763 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #7
  br label %803

764:                                              ; preds = %780, %774
  %765 = landingpad { ptr, i32 }
          cleanup
  br label %802

766:                                              ; preds = %757, %745
  %767 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %755)
  br i1 %767, label %773, label %768

768:                                              ; preds = %766
  %769 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %755)
  %770 = fcmp oeq float %747, %749
  %or.cond641 = and i1 %770, %769
  %771 = fpext float %754 to double
  %772 = fcmp olt double %771, 0x3D06849B86A12B9B
  %or.cond712 = or i1 %772, %or.cond641
  br i1 %or.cond712, label %780, label %774

773:                                              ; preds = %766
  %.old710 = fpext float %754 to double
  %.old711 = fcmp olt double %.old710, 0x3D06849B86A12B9B
  br i1 %.old711, label %780, label %774

774:                                              ; preds = %768, %773
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %775 unwind label %764

775:                                              ; preds = %774
  %776 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %777 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %73, i32 noundef %776, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %747, float noundef %749, float noundef %777)
          to label %.critedge643 unwind label %778

778:                                              ; preds = %775
  %779 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %802

780:                                              ; preds = %757, %768, %773
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %781 unwind label %764

781:                                              ; preds = %780
  %782 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #7
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %74, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %747, float noundef %754, float noundef %782)
          to label %.critedge643 unwind label %783

783:                                              ; preds = %781
  %784 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %802

.critedge643:                                     ; preds = %781, %775
  %.sink747 = phi ptr [ %73, %775 ], [ %74, %781 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink747) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  %785 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %787 unwind label %804

787:                                              ; preds = %.critedge643
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #7
  %788 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %789 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %788) #7
  %790 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %791 = call double @llvm.fabs.f64(double %790)
  %792 = fsub double %789, %791
  %793 = call noundef double @_ZSt3absd(double noundef %792)
  %794 = call noundef double @_ZSt3absd(double noundef %791)
  %795 = fadd double %794, 1.000000e+00
  %796 = fdiv double %793, %795
  %797 = fpext double %789 to x86_fp80
  %798 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %797)
  br i1 %798, label %799, label %808

799:                                              ; preds = %787
  %800 = fpext double %791 to x86_fp80
  %801 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %800)
  br i1 %801, label %821, label %808

802:                                              ; preds = %783, %778, %764
  %.pn560 = phi { ptr, i32 } [ %784, %783 ], [ %765, %764 ], [ %779, %778 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %803

803:                                              ; preds = %802, %762
  %.pn560.pn = phi { ptr, i32 } [ %.pn560, %802 ], [ %763, %762 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  br label %1160

804:                                              ; preds = %.critedge643
  %805 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #7
  br label %844

806:                                              ; preds = %821, %815
  %807 = landingpad { ptr, i32 }
          cleanup
  br label %843

808:                                              ; preds = %799, %787
  %809 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %797)
  br i1 %809, label %814, label %810

810:                                              ; preds = %808
  %811 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %797)
  %812 = fcmp oeq double %789, %791
  %or.cond644 = and i1 %812, %811
  %813 = fcmp olt double %796, 0x3D06849B86A12B9B
  %or.cond714 = or i1 %813, %or.cond644
  br i1 %or.cond714, label %821, label %815

814:                                              ; preds = %808
  %.old713 = fcmp olt double %796, 0x3D06849B86A12B9B
  br i1 %.old713, label %821, label %815

815:                                              ; preds = %810, %814
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %816 unwind label %806

816:                                              ; preds = %815
  %817 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %818 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %77, i32 noundef %817, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %789, double noundef %791, double noundef %818)
          to label %.critedge646 unwind label %819

819:                                              ; preds = %816
  %820 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %843

821:                                              ; preds = %799, %810, %814
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %822 unwind label %806

822:                                              ; preds = %821
  %823 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %78, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %789, double noundef %796, double noundef %823)
          to label %.critedge646 unwind label %824

824:                                              ; preds = %822
  %825 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %843

.critedge646:                                     ; preds = %822, %816
  %.sink748 = phi ptr [ %77, %816 ], [ %78, %822 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink748) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  %826 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %827 = add nsw i32 %826, 1
  store i32 %827, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %828 unwind label %845

828:                                              ; preds = %.critedge646
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #7
  %829 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %830 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %829) #7
  %831 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %832 = call double @llvm.fabs.f64(double %831)
  %833 = fsub double %830, %832
  %834 = call noundef double @_ZSt3absd(double noundef %833)
  %835 = call noundef double @_ZSt3absd(double noundef %832)
  %836 = fadd double %835, 1.000000e+00
  %837 = fdiv double %834, %836
  %838 = fpext double %830 to x86_fp80
  %839 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %838)
  br i1 %839, label %840, label %849

840:                                              ; preds = %828
  %841 = fpext double %832 to x86_fp80
  %842 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %841)
  br i1 %842, label %862, label %849

843:                                              ; preds = %824, %819, %806
  %.pn563 = phi { ptr, i32 } [ %825, %824 ], [ %807, %806 ], [ %820, %819 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %844

844:                                              ; preds = %843, %804
  %.pn563.pn = phi { ptr, i32 } [ %.pn563, %843 ], [ %805, %804 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  br label %1160

845:                                              ; preds = %.critedge646
  %846 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #7
  br label %885

847:                                              ; preds = %862, %856
  %848 = landingpad { ptr, i32 }
          cleanup
  br label %884

849:                                              ; preds = %840, %828
  %850 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %838)
  br i1 %850, label %855, label %851

851:                                              ; preds = %849
  %852 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %838)
  %853 = fcmp oeq double %830, %832
  %or.cond647 = and i1 %853, %852
  %854 = fcmp olt double %837, 0x3D06849B86A12B9B
  %or.cond716 = or i1 %854, %or.cond647
  br i1 %or.cond716, label %862, label %856

855:                                              ; preds = %849
  %.old715 = fcmp olt double %837, 0x3D06849B86A12B9B
  br i1 %.old715, label %862, label %856

856:                                              ; preds = %851, %855
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %857 unwind label %847

857:                                              ; preds = %856
  %858 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %859 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %81, i32 noundef %858, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %830, double noundef %832, double noundef %859)
          to label %.critedge649 unwind label %860

860:                                              ; preds = %857
  %861 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %884

862:                                              ; preds = %840, %851, %855
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %863 unwind label %847

863:                                              ; preds = %862
  %864 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %82, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %830, double noundef %837, double noundef %864)
          to label %.critedge649 unwind label %865

865:                                              ; preds = %863
  %866 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %884

.critedge649:                                     ; preds = %863, %857
  %.sink749 = phi ptr [ %81, %857 ], [ %82, %863 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink749) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  %867 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %869 unwind label %886

869:                                              ; preds = %.critedge649
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #7
  %870 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %871 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %870) #7
  %872 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %873 = call double @llvm.fabs.f64(double %872)
  %874 = fsub double %871, %873
  %875 = call noundef double @_ZSt3absd(double noundef %874)
  %876 = call noundef double @_ZSt3absd(double noundef %873)
  %877 = fadd double %876, 1.000000e+00
  %878 = fdiv double %875, %877
  %879 = fpext double %871 to x86_fp80
  %880 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %879)
  br i1 %880, label %881, label %890

881:                                              ; preds = %869
  %882 = fpext double %873 to x86_fp80
  %883 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %882)
  br i1 %883, label %903, label %890

884:                                              ; preds = %865, %860, %847
  %.pn566 = phi { ptr, i32 } [ %866, %865 ], [ %848, %847 ], [ %861, %860 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %885

885:                                              ; preds = %884, %845
  %.pn566.pn = phi { ptr, i32 } [ %.pn566, %884 ], [ %846, %845 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  br label %1160

886:                                              ; preds = %.critedge649
  %887 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #7
  br label %924

888:                                              ; preds = %903, %897
  %889 = landingpad { ptr, i32 }
          cleanup
  br label %923

890:                                              ; preds = %881, %869
  %891 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %879)
  br i1 %891, label %896, label %892

892:                                              ; preds = %890
  %893 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %879)
  %894 = fcmp oeq double %871, %873
  %or.cond650 = and i1 %894, %893
  %895 = fcmp olt double %878, 0x3D06849B86A12B9B
  %or.cond718 = or i1 %895, %or.cond650
  br i1 %or.cond718, label %903, label %897

896:                                              ; preds = %890
  %.old717 = fcmp olt double %878, 0x3D06849B86A12B9B
  br i1 %.old717, label %903, label %897

897:                                              ; preds = %892, %896
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %898 unwind label %888

898:                                              ; preds = %897
  %899 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %900 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %85, i32 noundef %899, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %871, double noundef %873, double noundef %900)
          to label %.critedge652 unwind label %901

901:                                              ; preds = %898
  %902 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %923

903:                                              ; preds = %881, %892, %896
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %904 unwind label %888

904:                                              ; preds = %903
  %905 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %86, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %871, double noundef %878, double noundef %905)
          to label %.critedge652 unwind label %906

906:                                              ; preds = %904
  %907 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %923

.critedge652:                                     ; preds = %904, %898
  %.sink750 = phi ptr [ %85, %898 ], [ %86, %904 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink750) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  %908 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %909 = add nsw i32 %908, 1
  store i32 %909, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %88) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %910 unwind label %925

910:                                              ; preds = %.critedge652
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #7
  %911 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %912 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %911) #7
  %913 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %914 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %913)
  %915 = fsub x86_fp80 %912, %914
  %916 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %915)
  %917 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %914)
  %918 = fadd x86_fp80 %917, 0xK3FFF8000000000000000
  %919 = fdiv x86_fp80 %916, %918
  %920 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %912)
  br i1 %920, label %921, label %929

921:                                              ; preds = %910
  %922 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %914)
  br i1 %922, label %942, label %929

923:                                              ; preds = %906, %901, %888
  %.pn569 = phi { ptr, i32 } [ %907, %906 ], [ %889, %888 ], [ %902, %901 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %924

924:                                              ; preds = %923, %886
  %.pn569.pn = phi { ptr, i32 } [ %.pn569, %923 ], [ %887, %886 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  br label %1160

925:                                              ; preds = %.critedge652
  %926 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #7
  br label %963

927:                                              ; preds = %942, %936
  %928 = landingpad { ptr, i32 }
          cleanup
  br label %962

929:                                              ; preds = %921, %910
  %930 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %912)
  br i1 %930, label %935, label %931

931:                                              ; preds = %929
  %932 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %912)
  %933 = fcmp oeq x86_fp80 %912, %914
  %or.cond653 = and i1 %933, %932
  %934 = fcmp olt x86_fp80 %919, 0xK3FD0B424DC35095CD800
  %or.cond720 = or i1 %934, %or.cond653
  br i1 %or.cond720, label %942, label %936

935:                                              ; preds = %929
  %.old719 = fcmp olt x86_fp80 %919, 0xK3FD0B424DC35095CD800
  br i1 %.old719, label %942, label %936

936:                                              ; preds = %931, %935
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %937 unwind label %927

937:                                              ; preds = %936
  %938 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %939 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %89, i32 noundef %938, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %912, x86_fp80 noundef %914, x86_fp80 noundef %939)
          to label %.critedge655 unwind label %940

940:                                              ; preds = %937
  %941 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  br label %962

942:                                              ; preds = %921, %931, %935
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %943 unwind label %927

943:                                              ; preds = %942
  %944 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %90, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %912, x86_fp80 noundef %919, x86_fp80 noundef %944)
          to label %.critedge655 unwind label %945

945:                                              ; preds = %943
  %946 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %962

.critedge655:                                     ; preds = %943, %937
  %.sink751 = phi ptr [ %89, %937 ], [ %90, %943 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink751) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #7
  %947 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %948 = add nsw i32 %947, 1
  store i32 %948, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %949 unwind label %964

949:                                              ; preds = %.critedge655
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #7
  %950 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %951 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %950) #7
  %952 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %953 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %952)
  %954 = fsub x86_fp80 %951, %953
  %955 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %954)
  %956 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %953)
  %957 = fadd x86_fp80 %956, 0xK3FFF8000000000000000
  %958 = fdiv x86_fp80 %955, %957
  %959 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %951)
  br i1 %959, label %960, label %968

960:                                              ; preds = %949
  %961 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %953)
  br i1 %961, label %981, label %968

962:                                              ; preds = %945, %940, %927
  %.pn572 = phi { ptr, i32 } [ %946, %945 ], [ %928, %927 ], [ %941, %940 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #7
  br label %963

963:                                              ; preds = %962, %925
  %.pn572.pn = phi { ptr, i32 } [ %.pn572, %962 ], [ %926, %925 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #7
  br label %1160

964:                                              ; preds = %.critedge655
  %965 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #7
  br label %1002

966:                                              ; preds = %981, %975
  %967 = landingpad { ptr, i32 }
          cleanup
  br label %1001

968:                                              ; preds = %960, %949
  %969 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %951)
  br i1 %969, label %974, label %970

970:                                              ; preds = %968
  %971 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %951)
  %972 = fcmp oeq x86_fp80 %951, %953
  %or.cond656 = and i1 %972, %971
  %973 = fcmp olt x86_fp80 %958, 0xK3FD0B424DC35095CD800
  %or.cond722 = or i1 %973, %or.cond656
  br i1 %or.cond722, label %981, label %975

974:                                              ; preds = %968
  %.old721 = fcmp olt x86_fp80 %958, 0xK3FD0B424DC35095CD800
  br i1 %.old721, label %981, label %975

975:                                              ; preds = %970, %974
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %976 unwind label %966

976:                                              ; preds = %975
  %977 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %978 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %93, i32 noundef %977, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %951, x86_fp80 noundef %953, x86_fp80 noundef %978)
          to label %.critedge658 unwind label %979

979:                                              ; preds = %976
  %980 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1001

981:                                              ; preds = %960, %970, %974
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %982 unwind label %966

982:                                              ; preds = %981
  %983 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %94, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %951, x86_fp80 noundef %958, x86_fp80 noundef %983)
          to label %.critedge658 unwind label %984

984:                                              ; preds = %982
  %985 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %1001

.critedge658:                                     ; preds = %982, %976
  %.sink752 = phi ptr [ %93, %976 ], [ %94, %982 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink752) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  %986 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %987 = add nsw i32 %986, 1
  store i32 %987, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %988 unwind label %1003

988:                                              ; preds = %.critedge658
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #7
  %989 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %990 = call noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef %989) #7
  %991 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %992 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %991)
  %993 = fsub x86_fp80 %990, %992
  %994 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %993)
  %995 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %992)
  %996 = fadd x86_fp80 %995, 0xK3FFF8000000000000000
  %997 = fdiv x86_fp80 %994, %996
  %998 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %990)
  br i1 %998, label %999, label %1007

999:                                              ; preds = %988
  %1000 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %992)
  br i1 %1000, label %1020, label %1007

1001:                                             ; preds = %984, %979, %966
  %.pn575 = phi { ptr, i32 } [ %985, %984 ], [ %967, %966 ], [ %980, %979 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %1002

1002:                                             ; preds = %1001, %964
  %.pn575.pn = phi { ptr, i32 } [ %.pn575, %1001 ], [ %965, %964 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  br label %1160

1003:                                             ; preds = %.critedge658
  %1004 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #7
  br label %1043

1005:                                             ; preds = %1020, %1014
  %1006 = landingpad { ptr, i32 }
          cleanup
  br label %1042

1007:                                             ; preds = %999, %988
  %1008 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %990)
  br i1 %1008, label %1013, label %1009

1009:                                             ; preds = %1007
  %1010 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %990)
  %1011 = fcmp oeq x86_fp80 %990, %992
  %or.cond659 = and i1 %1011, %1010
  %1012 = fcmp olt x86_fp80 %997, 0xK3FD0B424DC35095CD800
  %or.cond724 = or i1 %1012, %or.cond659
  br i1 %or.cond724, label %1020, label %1014

1013:                                             ; preds = %1007
  %.old723 = fcmp olt x86_fp80 %997, 0xK3FD0B424DC35095CD800
  br i1 %.old723, label %1020, label %1014

1014:                                             ; preds = %1009, %1013
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1015 unwind label %1005

1015:                                             ; preds = %1014
  %1016 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1017 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %97, i32 noundef %1016, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %990, x86_fp80 noundef %992, x86_fp80 noundef %1017)
          to label %.critedge661 unwind label %1018

1018:                                             ; preds = %1015
  %1019 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %1042

1020:                                             ; preds = %999, %1009, %1013
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1021 unwind label %1005

1021:                                             ; preds = %1020
  %1022 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %98, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %990, x86_fp80 noundef %997, x86_fp80 noundef %1022)
          to label %.critedge661 unwind label %1023

1023:                                             ; preds = %1021
  %1024 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %1042

.critedge661:                                     ; preds = %1021, %1015
  %.sink753 = phi ptr [ %97, %1015 ], [ %98, %1021 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink753) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  %1025 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %100) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %1027 unwind label %1044

1027:                                             ; preds = %.critedge661
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #7
  %1028 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %1029 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %1028) #7
  %1030 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %1031 = call double @llvm.fabs.f64(double %1030)
  %1032 = fsub double %1029, %1031
  %1033 = call noundef double @_ZSt3absd(double noundef %1032)
  %1034 = call noundef double @_ZSt3absd(double noundef %1031)
  %1035 = fadd double %1034, 1.000000e+00
  %1036 = fdiv double %1033, %1035
  %1037 = fpext double %1029 to x86_fp80
  %1038 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1037)
  br i1 %1038, label %1039, label %1048

1039:                                             ; preds = %1027
  %1040 = fpext double %1031 to x86_fp80
  %1041 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1040)
  br i1 %1041, label %1061, label %1048

1042:                                             ; preds = %1023, %1018, %1005
  %.pn578 = phi { ptr, i32 } [ %1024, %1023 ], [ %1006, %1005 ], [ %1019, %1018 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %1043

1043:                                             ; preds = %1042, %1003
  %.pn578.pn = phi { ptr, i32 } [ %.pn578, %1042 ], [ %1004, %1003 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  br label %1160

1044:                                             ; preds = %.critedge661
  %1045 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #7
  br label %1085

1046:                                             ; preds = %1061, %1055
  %1047 = landingpad { ptr, i32 }
          cleanup
  br label %1084

1048:                                             ; preds = %1039, %1027
  %1049 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1037)
  br i1 %1049, label %1054, label %1050

1050:                                             ; preds = %1048
  %1051 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1037)
  %1052 = fcmp oeq double %1029, %1031
  %or.cond662 = and i1 %1052, %1051
  %1053 = fcmp olt double %1036, 0x3D06849B86A12B9B
  %or.cond726 = or i1 %1053, %or.cond662
  br i1 %or.cond726, label %1061, label %1055

1054:                                             ; preds = %1048
  %.old725 = fcmp olt double %1036, 0x3D06849B86A12B9B
  br i1 %.old725, label %1061, label %1055

1055:                                             ; preds = %1050, %1054
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1056 unwind label %1046

1056:                                             ; preds = %1055
  %1057 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1058 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %101, i32 noundef %1057, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1029, double noundef %1031, double noundef %1058)
          to label %.critedge664 unwind label %1059

1059:                                             ; preds = %1056
  %1060 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1084

1061:                                             ; preds = %1039, %1050, %1054
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1062 unwind label %1046

1062:                                             ; preds = %1061
  %1063 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %102, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1029, double noundef %1036, double noundef %1063)
          to label %.critedge664 unwind label %1064

1064:                                             ; preds = %1062
  %1065 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %1084

.critedge664:                                     ; preds = %1062, %1056
  %.sink754 = phi ptr [ %101, %1056 ], [ %102, %1062 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink754) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #7
  %1066 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %104) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %1068 unwind label %1086

1068:                                             ; preds = %.critedge664
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #7
  %1069 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1070 = fneg double %1069
  %1071 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %1070) #7
  %1072 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1073 = call double @llvm.fabs.f64(double %1072)
  %1074 = fsub double %1071, %1073
  %1075 = call noundef double @_ZSt3absd(double noundef %1074)
  %1076 = call noundef double @_ZSt3absd(double noundef %1073)
  %1077 = fadd double %1076, 1.000000e+00
  %1078 = fdiv double %1075, %1077
  %1079 = fpext double %1071 to x86_fp80
  %1080 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1079)
  br i1 %1080, label %1081, label %1090

1081:                                             ; preds = %1068
  %1082 = fpext double %1073 to x86_fp80
  %1083 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1082)
  br i1 %1083, label %1104, label %1090

1084:                                             ; preds = %1064, %1059, %1046
  %.pn581 = phi { ptr, i32 } [ %1065, %1064 ], [ %1047, %1046 ], [ %1060, %1059 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %1085

1085:                                             ; preds = %1084, %1044
  %.pn581.pn = phi { ptr, i32 } [ %.pn581, %1084 ], [ %1045, %1044 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #7
  br label %1160

1086:                                             ; preds = %.critedge664
  %1087 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #7
  br label %1128

1088:                                             ; preds = %1104, %1097
  %1089 = landingpad { ptr, i32 }
          cleanup
  br label %1127

1090:                                             ; preds = %1081, %1068
  %1091 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1079)
  br i1 %1091, label %1096, label %1092

1092:                                             ; preds = %1090
  %1093 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1079)
  %1094 = fcmp oeq double %1071, %1073
  %or.cond665 = and i1 %1094, %1093
  %1095 = fcmp olt double %1078, 0x3D06849B86A12B9B
  %or.cond728 = or i1 %1095, %or.cond665
  br i1 %or.cond728, label %1104, label %1097

1096:                                             ; preds = %1090
  %.old727 = fcmp olt double %1078, 0x3D06849B86A12B9B
  br i1 %.old727, label %1104, label %1097

1097:                                             ; preds = %1092, %1096
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1098 unwind label %1088

1098:                                             ; preds = %1097
  %1099 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1100 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1101 = fneg double %1100
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %105, i32 noundef %1099, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1071, double noundef %1073, double noundef %1101)
          to label %.critedge667 unwind label %1102

1102:                                             ; preds = %1098
  %1103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  br label %1127

1104:                                             ; preds = %1081, %1092, %1096
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1105 unwind label %1088

1105:                                             ; preds = %1104
  %1106 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1107 = fneg double %1106
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %106, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1071, double noundef %1078, double noundef %1107)
          to label %.critedge667 unwind label %1108

1108:                                             ; preds = %1105
  %1109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %1127

.critedge667:                                     ; preds = %1105, %1098
  %.sink755 = phi ptr [ %105, %1098 ], [ %106, %1105 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink755) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  %1110 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1111 = add nsw i32 %1110, 1
  store i32 %1111, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %1112 unwind label %1129

1112:                                             ; preds = %.critedge667
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #7
  %1113 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1114 = call noundef double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %1113) #7
  %1115 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1116 = call double @llvm.fabs.f64(double %1115)
  %1117 = fsub double %1114, %1116
  %1118 = call noundef double @_ZSt3absd(double noundef %1117)
  %1119 = call noundef double @_ZSt3absd(double noundef %1116)
  %1120 = fadd double %1119, 1.000000e+00
  %1121 = fdiv double %1118, %1120
  %1122 = fpext double %1114 to x86_fp80
  %1123 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1122)
  br i1 %1123, label %1124, label %1133

1124:                                             ; preds = %1112
  %1125 = fpext double %1116 to x86_fp80
  %1126 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1125)
  br i1 %1126, label %1146, label %1133

1127:                                             ; preds = %1108, %1102, %1088
  %.pn584 = phi { ptr, i32 } [ %1109, %1108 ], [ %1089, %1088 ], [ %1103, %1102 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  br label %1128

1128:                                             ; preds = %1127, %1086
  %.pn584.pn = phi { ptr, i32 } [ %.pn584, %1127 ], [ %1087, %1086 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  br label %1160

1129:                                             ; preds = %.critedge667
  %1130 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #7
  br label %1154

1131:                                             ; preds = %1146, %1140
  %1132 = landingpad { ptr, i32 }
          cleanup
  br label %1153

1133:                                             ; preds = %1124, %1112
  %1134 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1122)
  br i1 %1134, label %1139, label %1135

1135:                                             ; preds = %1133
  %1136 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1122)
  %1137 = fcmp oeq double %1114, %1116
  %or.cond668 = and i1 %1137, %1136
  %1138 = fcmp olt double %1121, 0x3D06849B86A12B9B
  %or.cond730 = or i1 %1138, %or.cond668
  br i1 %or.cond730, label %1146, label %1140

1139:                                             ; preds = %1133
  %.old729 = fcmp olt double %1121, 0x3D06849B86A12B9B
  br i1 %.old729, label %1146, label %1140

1140:                                             ; preds = %1135, %1139
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1141 unwind label %1131

1141:                                             ; preds = %1140
  %1142 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1143 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %109, i32 noundef %1142, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1114, double noundef %1116, double noundef %1143)
          to label %.critedge670 unwind label %1144

1144:                                             ; preds = %1141
  %1145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1153

1146:                                             ; preds = %1124, %1135, %1139
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1147 unwind label %1131

1147:                                             ; preds = %1146
  %1148 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %110, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1114, double noundef %1121, double noundef %1148)
          to label %.critedge670 unwind label %1149

1149:                                             ; preds = %1147
  %1150 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %1153

.critedge670:                                     ; preds = %1147, %1141
  %.sink756 = phi ptr [ %109, %1141 ], [ %110, %1147 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink756) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %112) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %1151 unwind label %1155

1151:                                             ; preds = %.critedge670
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %111)
          to label %1152 unwind label %1157

1152:                                             ; preds = %1151
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #7
  ret i32 0

1153:                                             ; preds = %1149, %1144, %1131
  %.pn587 = phi { ptr, i32 } [ %1150, %1149 ], [ %1132, %1131 ], [ %1145, %1144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  br label %1154

1154:                                             ; preds = %1153, %1129
  %.pn587.pn = phi { ptr, i32 } [ %.pn587, %1153 ], [ %1130, %1129 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  br label %1160

1155:                                             ; preds = %.critedge670
  %1156 = landingpad { ptr, i32 }
          cleanup
  br label %1159

1157:                                             ; preds = %1151
  %1158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  br label %1159

1159:                                             ; preds = %1157, %1155
  %.pn590 = phi { ptr, i32 } [ %1158, %1157 ], [ %1156, %1155 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #7
  br label %1160

1160:                                             ; preds = %1159, %1154, %1128, %1085, %1043, %1002, %963, %924, %885, %844, %803, %761, %719, %677, %638, %603, %568, %533, %498, %461, %424, %387, %352, %317, %283, %248, %210, %172, %134
  %.pn590.pn = phi { ptr, i32 } [ %.pn590, %1159 ], [ %.pn587.pn, %1154 ], [ %.pn584.pn, %1128 ], [ %.pn581.pn, %1085 ], [ %.pn578.pn, %1043 ], [ %.pn575.pn, %1002 ], [ %.pn572.pn, %963 ], [ %.pn569.pn, %924 ], [ %.pn566.pn, %885 ], [ %.pn563.pn, %844 ], [ %.pn560.pn, %803 ], [ %.pn557.pn, %761 ], [ %.pn554.pn, %719 ], [ %.pn551.pn, %677 ], [ %.pn548.pn, %638 ], [ %.pn545.pn, %603 ], [ %.pn542.pn, %568 ], [ %.pn539.pn, %533 ], [ %.pn536.pn, %498 ], [ %.pn533.pn, %461 ], [ %.pn530.pn, %424 ], [ %.pn527.pn, %387 ], [ %.pn524.pn, %352 ], [ %.pn521.pn, %317 ], [ %.pn518.pn, %283 ], [ %.pn515.pn, %248 ], [ %.pn512.pn, %210 ], [ %.pn509.pn, %172 ], [ %.pn, %134 ]
  resume { ptr, i32 } %.pn590.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 float @_ZN4gcem4fabsIfEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(float noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4fabsf(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: 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_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: 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_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 double @_ZN4gcem4fabsIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #5

; 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: 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 double @_ZN4gcem4fabsIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt4fabsIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4fabsIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4fabse(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 float @_ZNSt14numeric_limitsIfE6lowestEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE3minEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE3maxEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE6lowestEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3minEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3maxEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE8infinityEv() local_unnamed_addr #3 align 2

; 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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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"}


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