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

; 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 double, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca i8, align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca i8, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca i8, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca i8, align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca i8, align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca i8, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca i8, align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca i8, align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca i8, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca i8, align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca i8, align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca 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 x86_fp80, align 16
  %129 = alloca x86_fp80, align 16
  %130 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %137 = alloca x86_fp80, align 16
  %138 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %145 = alloca x86_fp80, align 16
  %146 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %153 = alloca x86_fp80, align 16
  %154 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %161 = alloca x86_fp80, align 16
  %162 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %169 = alloca x86_fp80, align 16
  %170 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %201 = alloca x86_fp80, align 16
  %202 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %209 = alloca x86_fp80, align 16
  %210 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %217 = alloca x86_fp80, align 16
  %218 = alloca x86_fp80, align 16
  %219 = alloca i8, align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::allocator", align 1
  %224 = alloca x86_fp80, align 16
  %225 = alloca x86_fp80, align 16
  %226 = alloca x86_fp80, align 16
  %227 = alloca i8, align 1
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca x86_fp80, align 16
  %233 = alloca x86_fp80, align 16
  %234 = alloca x86_fp80, align 16
  %235 = alloca i8, align 1
  %236 = alloca %"class.std::__cxx11::basic_string", align 8
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::allocator", align 1
  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 %240 unwind label %267

240:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2)
          to label %241 unwind label %271

241:                                              ; preds = %240
  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
  %242 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %243 = add nsw i32 %242, 1
  store i32 %243, 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 %244 unwind label %276

244:                                              ; preds = %241
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %245 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  store double %245, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %246 = call double @fmod(double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  store double %246, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %247 = load double, ptr %8, align 8, !tbaa !9
  %248 = load double, ptr %9, align 8, !tbaa !9
  %249 = fsub double %247, %248
  %250 = invoke noundef double @_ZSt3absd(double noundef %249)
          to label %251 unwind label %280

251:                                              ; preds = %244
  %252 = load double, ptr %9, align 8, !tbaa !9
  %253 = invoke noundef double @_ZSt3absd(double noundef %252)
          to label %254 unwind label %280

254:                                              ; preds = %251
  %255 = fadd double 1.000000e+00, %253
  %256 = fdiv double %250, %255
  store double %256, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  store i8 0, ptr %11, align 1, !tbaa !11
  %257 = load double, ptr %8, align 8, !tbaa !9
  %258 = fpext double %257 to x86_fp80
  %259 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %258)
          to label %260 unwind label %284

260:                                              ; preds = %254
  br i1 %259, label %261, label %288

261:                                              ; preds = %260
  %262 = load double, ptr %9, align 8, !tbaa !9
  %263 = fpext double %262 to x86_fp80
  %264 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %263)
          to label %265 unwind label %284

265:                                              ; preds = %261
  br i1 %264, label %266, label %288

266:                                              ; preds = %265
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %319

267:                                              ; preds = %0
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %4, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %5, align 4
  br label %275

271:                                              ; preds = %240
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %4, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  br label %275

275:                                              ; preds = %271, %267
  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 %2878

276:                                              ; preds = %241
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %4, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, 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 %359

280:                                              ; preds = %251, %244
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %4, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %5, align 4
  br label %358

284:                                              ; preds = %322, %307, %293, %288, %261, %254
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %4, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %5, align 4
  br label %357

288:                                              ; preds = %265, %260
  %289 = load double, ptr %8, align 8, !tbaa !9
  %290 = fpext double %289 to x86_fp80
  %291 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %290)
          to label %292 unwind label %284

292:                                              ; preds = %288
  br i1 %291, label %303, label %293

293:                                              ; preds = %292
  %294 = load double, ptr %8, align 8, !tbaa !9
  %295 = fpext double %294 to x86_fp80
  %296 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %295)
          to label %297 unwind label %284

297:                                              ; preds = %293
  br i1 %296, label %298, label %303

298:                                              ; preds = %297
  %299 = load double, ptr %8, align 8, !tbaa !9
  %300 = load double, ptr %9, align 8, !tbaa !9
  %301 = fcmp oeq double %299, %300
  br i1 %301, label %302, label %303

302:                                              ; preds = %298
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %318

303:                                              ; preds = %298, %297, %292
  %304 = load double, ptr %10, align 8, !tbaa !9
  %305 = fcmp olt double %304, 0x3D06849B86A12B9B
  br i1 %305, label %306, label %307

306:                                              ; preds = %303
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %317

307:                                              ; preds = %303
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %308 unwind label %284

308:                                              ; preds = %307
  %309 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %310 = load double, ptr %8, align 8, !tbaa !9
  %311 = load double, ptr %9, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %12, i32 noundef %309, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %310, double noundef %311, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %312 unwind label %313

312:                                              ; preds = %308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %317

313:                                              ; preds = %308
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %4, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %357

317:                                              ; preds = %312, %306
  br label %318

318:                                              ; preds = %317, %302
  br label %319

319:                                              ; preds = %318, %266
  %320 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %321 = trunc i8 %320 to i1
  br i1 %321, label %322, label %331

322:                                              ; preds = %319
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %323 unwind label %284

323:                                              ; preds = %322
  %324 = load double, ptr %8, align 8, !tbaa !9
  %325 = load double, ptr %10, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %13, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %324, double noundef %325, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %326 unwind label %327

326:                                              ; preds = %323
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %331

327:                                              ; preds = %323
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %4, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %357

331:                                              ; preds = %326, %319
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  %332 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %333 = add nsw i32 %332, 1
  store i32 %333, 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 %334 unwind label %360

334:                                              ; preds = %331
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %335 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -0.000000e+00, double noundef 0.000000e+00) #7
  store double %335, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %336 = call double @fmod(double noundef -0.000000e+00, double noundef 0.000000e+00) #7
  store double %336, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %337 = load double, ptr %16, align 8, !tbaa !9
  %338 = load double, ptr %17, align 8, !tbaa !9
  %339 = fsub double %337, %338
  %340 = invoke noundef double @_ZSt3absd(double noundef %339)
          to label %341 unwind label %364

341:                                              ; preds = %334
  %342 = load double, ptr %17, align 8, !tbaa !9
  %343 = invoke noundef double @_ZSt3absd(double noundef %342)
          to label %344 unwind label %364

344:                                              ; preds = %341
  %345 = fadd double 1.000000e+00, %343
  %346 = fdiv double %340, %345
  store double %346, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  store i8 0, ptr %19, align 1, !tbaa !11
  %347 = load double, ptr %16, align 8, !tbaa !9
  %348 = fpext double %347 to x86_fp80
  %349 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %348)
          to label %350 unwind label %368

350:                                              ; preds = %344
  br i1 %349, label %351, label %372

351:                                              ; preds = %350
  %352 = load double, ptr %17, align 8, !tbaa !9
  %353 = fpext double %352 to x86_fp80
  %354 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %353)
          to label %355 unwind label %368

355:                                              ; preds = %351
  br i1 %354, label %356, label %372

356:                                              ; preds = %355
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %403

357:                                              ; preds = %327, %313, %284
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %358

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

359:                                              ; preds = %358, %276
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %2878

360:                                              ; preds = %331
  %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
  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 %443

364:                                              ; preds = %341, %334
  %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 %442

368:                                              ; preds = %406, %391, %377, %372, %351, %344
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %4, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %5, align 4
  br label %441

372:                                              ; preds = %355, %350
  %373 = load double, ptr %16, align 8, !tbaa !9
  %374 = fpext double %373 to x86_fp80
  %375 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %374)
          to label %376 unwind label %368

376:                                              ; preds = %372
  br i1 %375, label %387, label %377

377:                                              ; preds = %376
  %378 = load double, ptr %16, align 8, !tbaa !9
  %379 = fpext double %378 to x86_fp80
  %380 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %379)
          to label %381 unwind label %368

381:                                              ; preds = %377
  br i1 %380, label %382, label %387

382:                                              ; preds = %381
  %383 = load double, ptr %16, align 8, !tbaa !9
  %384 = load double, ptr %17, align 8, !tbaa !9
  %385 = fcmp oeq double %383, %384
  br i1 %385, label %386, label %387

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

387:                                              ; preds = %382, %381, %376
  %388 = load double, ptr %18, align 8, !tbaa !9
  %389 = fcmp olt double %388, 0x3D06849B86A12B9B
  br i1 %389, label %390, label %391

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

391:                                              ; preds = %387
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %392 unwind label %368

392:                                              ; preds = %391
  %393 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %394 = load double, ptr %16, align 8, !tbaa !9
  %395 = load double, ptr %17, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %20, i32 noundef %393, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %394, double noundef %395, double noundef -0.000000e+00, double noundef 0.000000e+00)
          to label %396 unwind label %397

396:                                              ; preds = %392
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %401

397:                                              ; preds = %392
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %4, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %441

401:                                              ; preds = %396, %390
  br label %402

402:                                              ; preds = %401, %386
  br label %403

403:                                              ; preds = %402, %356
  %404 = load i8, ptr %19, align 1, !tbaa !11, !range !13, !noundef !14
  %405 = trunc i8 %404 to i1
  br i1 %405, label %406, label %415

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

407:                                              ; preds = %406
  %408 = load double, ptr %16, align 8, !tbaa !9
  %409 = load double, ptr %18, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %21, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %408, double noundef %409, double noundef -0.000000e+00, double noundef 0.000000e+00)
          to label %410 unwind label %411

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

411:                                              ; preds = %407
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %4, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %441

415:                                              ; preds = %410, %403
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  %416 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, 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 %418 unwind label %444

418:                                              ; preds = %415
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %419 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 0.000000e+00, double noundef -0.000000e+00) #7
  store double %419, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %420 = call double @fmod(double noundef 0.000000e+00, double noundef -0.000000e+00) #7
  store double %420, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %421 = load double, ptr %24, align 8, !tbaa !9
  %422 = load double, ptr %25, align 8, !tbaa !9
  %423 = fsub double %421, %422
  %424 = invoke noundef double @_ZSt3absd(double noundef %423)
          to label %425 unwind label %448

425:                                              ; preds = %418
  %426 = load double, ptr %25, align 8, !tbaa !9
  %427 = invoke noundef double @_ZSt3absd(double noundef %426)
          to label %428 unwind label %448

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

434:                                              ; preds = %428
  br i1 %433, label %435, label %456

435:                                              ; preds = %434
  %436 = load double, ptr %25, align 8, !tbaa !9
  %437 = fpext double %436 to x86_fp80
  %438 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %437)
          to label %439 unwind label %452

439:                                              ; preds = %435
  br i1 %438, label %440, label %456

440:                                              ; preds = %439
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %487

441:                                              ; preds = %411, %397, %368
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %442

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

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

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

448:                                              ; preds = %425, %418
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %4, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %5, align 4
  br label %526

452:                                              ; preds = %490, %475, %461, %456, %435, %428
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %4, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %5, align 4
  br label %525

456:                                              ; preds = %439, %434
  %457 = load double, ptr %24, align 8, !tbaa !9
  %458 = fpext double %457 to x86_fp80
  %459 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %458)
          to label %460 unwind label %452

460:                                              ; preds = %456
  br i1 %459, label %471, label %461

461:                                              ; preds = %460
  %462 = load double, ptr %24, align 8, !tbaa !9
  %463 = fpext double %462 to x86_fp80
  %464 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %463)
          to label %465 unwind label %452

465:                                              ; preds = %461
  br i1 %464, label %466, label %471

466:                                              ; preds = %465
  %467 = load double, ptr %24, align 8, !tbaa !9
  %468 = load double, ptr %25, align 8, !tbaa !9
  %469 = fcmp oeq double %467, %468
  br i1 %469, label %470, label %471

470:                                              ; preds = %466
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %486

471:                                              ; preds = %466, %465, %460
  %472 = load double, ptr %26, align 8, !tbaa !9
  %473 = fcmp olt double %472, 0x3D06849B86A12B9B
  br i1 %473, label %474, label %475

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

475:                                              ; preds = %471
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %476 unwind label %452

476:                                              ; preds = %475
  %477 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %478 = load double, ptr %24, align 8, !tbaa !9
  %479 = load double, ptr %25, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %28, i32 noundef %477, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %478, double noundef %479, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %480 unwind label %481

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

481:                                              ; preds = %476
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %4, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %525

485:                                              ; preds = %480, %474
  br label %486

486:                                              ; preds = %485, %470
  br label %487

487:                                              ; preds = %486, %440
  %488 = load i8, ptr %27, align 1, !tbaa !11, !range !13, !noundef !14
  %489 = trunc i8 %488 to i1
  br i1 %489, label %490, label %499

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

491:                                              ; preds = %490
  %492 = load double, ptr %24, align 8, !tbaa !9
  %493 = load double, ptr %26, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %29, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %492, double noundef %493, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %494 unwind label %495

494:                                              ; preds = %491
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %499

495:                                              ; preds = %491
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %4, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %525

499:                                              ; preds = %494, %487
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  %500 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %501 = add nsw i32 %500, 1
  store i32 %501, 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 %502 unwind label %528

502:                                              ; preds = %499
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %503 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 5.300000e+00, double noundef 2.000000e+00) #7
  store double %503, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %504 = call double @fmod(double noundef 5.300000e+00, double noundef 2.000000e+00) #7
  store double %504, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %505 = load double, ptr %32, align 8, !tbaa !9
  %506 = load double, ptr %33, align 8, !tbaa !9
  %507 = fsub double %505, %506
  %508 = invoke noundef double @_ZSt3absd(double noundef %507)
          to label %509 unwind label %532

509:                                              ; preds = %502
  %510 = load double, ptr %33, align 8, !tbaa !9
  %511 = invoke noundef double @_ZSt3absd(double noundef %510)
          to label %512 unwind label %532

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

518:                                              ; preds = %512
  br i1 %517, label %519, label %540

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

523:                                              ; preds = %519
  br i1 %522, label %524, label %540

524:                                              ; preds = %523
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %571

525:                                              ; preds = %495, %481, %452
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  br label %526

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

527:                                              ; preds = %526, %444
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %2878

528:                                              ; preds = %499
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %4, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, 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 %611

532:                                              ; preds = %509, %502
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %4, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %5, align 4
  br label %610

536:                                              ; preds = %574, %559, %545, %540, %519, %512
  %537 = landingpad { ptr, i32 }
          cleanup
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %4, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %5, align 4
  br label %609

540:                                              ; preds = %523, %518
  %541 = load double, ptr %32, align 8, !tbaa !9
  %542 = fpext double %541 to x86_fp80
  %543 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %542)
          to label %544 unwind label %536

544:                                              ; preds = %540
  br i1 %543, label %555, label %545

545:                                              ; preds = %544
  %546 = load double, ptr %32, align 8, !tbaa !9
  %547 = fpext double %546 to x86_fp80
  %548 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %547)
          to label %549 unwind label %536

549:                                              ; preds = %545
  br i1 %548, label %550, label %555

550:                                              ; preds = %549
  %551 = load double, ptr %32, align 8, !tbaa !9
  %552 = load double, ptr %33, align 8, !tbaa !9
  %553 = fcmp oeq double %551, %552
  br i1 %553, label %554, label %555

554:                                              ; preds = %550
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %570

555:                                              ; preds = %550, %549, %544
  %556 = load double, ptr %34, align 8, !tbaa !9
  %557 = fcmp olt double %556, 0x3D06849B86A12B9B
  br i1 %557, label %558, label %559

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

559:                                              ; preds = %555
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %560 unwind label %536

560:                                              ; preds = %559
  %561 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %562 = load double, ptr %32, align 8, !tbaa !9
  %563 = load double, ptr %33, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %36, i32 noundef %561, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %562, double noundef %563, double noundef 5.300000e+00, double noundef 2.000000e+00)
          to label %564 unwind label %565

564:                                              ; preds = %560
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %569

565:                                              ; preds = %560
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %4, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %609

569:                                              ; preds = %564, %558
  br label %570

570:                                              ; preds = %569, %554
  br label %571

571:                                              ; preds = %570, %524
  %572 = load i8, ptr %35, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc i8 %572 to i1
  br i1 %573, label %574, label %583

574:                                              ; preds = %571
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %575 unwind label %536

575:                                              ; preds = %574
  %576 = load double, ptr %32, align 8, !tbaa !9
  %577 = load double, ptr %34, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %37, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %576, double noundef %577, double noundef 5.300000e+00, double noundef 2.000000e+00)
          to label %578 unwind label %579

578:                                              ; preds = %575
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %583

579:                                              ; preds = %575
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %4, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %609

583:                                              ; preds = %578, %571
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  %584 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, 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 %586 unwind label %612

586:                                              ; preds = %583
  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
  %587 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -5.300000e+00, double noundef 2.000000e+00) #7
  store double %587, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %588 = call double @fmod(double noundef -5.300000e+00, double noundef 2.000000e+00) #7
  store double %588, ptr %41, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %589 = load double, ptr %40, align 8, !tbaa !9
  %590 = load double, ptr %41, align 8, !tbaa !9
  %591 = fsub double %589, %590
  %592 = invoke noundef double @_ZSt3absd(double noundef %591)
          to label %593 unwind label %616

593:                                              ; preds = %586
  %594 = load double, ptr %41, align 8, !tbaa !9
  %595 = invoke noundef double @_ZSt3absd(double noundef %594)
          to label %596 unwind label %616

596:                                              ; preds = %593
  %597 = fadd double 1.000000e+00, %595
  %598 = fdiv double %592, %597
  store double %598, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  store i8 0, ptr %43, align 1, !tbaa !11
  %599 = load double, ptr %40, align 8, !tbaa !9
  %600 = fpext double %599 to x86_fp80
  %601 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %600)
          to label %602 unwind label %620

602:                                              ; preds = %596
  br i1 %601, label %603, label %624

603:                                              ; preds = %602
  %604 = load double, ptr %41, align 8, !tbaa !9
  %605 = fpext double %604 to x86_fp80
  %606 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %605)
          to label %607 unwind label %620

607:                                              ; preds = %603
  br i1 %606, label %608, label %624

608:                                              ; preds = %607
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %655

609:                                              ; preds = %579, %565, %536
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %610

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

611:                                              ; preds = %610, %528
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %2878

612:                                              ; preds = %583
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %4, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, 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 %695

616:                                              ; preds = %593, %586
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %4, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %5, align 4
  br label %694

620:                                              ; preds = %658, %643, %629, %624, %603, %596
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %4, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %5, align 4
  br label %693

624:                                              ; preds = %607, %602
  %625 = load double, ptr %40, align 8, !tbaa !9
  %626 = fpext double %625 to x86_fp80
  %627 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %626)
          to label %628 unwind label %620

628:                                              ; preds = %624
  br i1 %627, label %639, label %629

629:                                              ; preds = %628
  %630 = load double, ptr %40, align 8, !tbaa !9
  %631 = fpext double %630 to x86_fp80
  %632 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %631)
          to label %633 unwind label %620

633:                                              ; preds = %629
  br i1 %632, label %634, label %639

634:                                              ; preds = %633
  %635 = load double, ptr %40, align 8, !tbaa !9
  %636 = load double, ptr %41, align 8, !tbaa !9
  %637 = fcmp oeq double %635, %636
  br i1 %637, label %638, label %639

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

639:                                              ; preds = %634, %633, %628
  %640 = load double, ptr %42, align 8, !tbaa !9
  %641 = fcmp olt double %640, 0x3D06849B86A12B9B
  br i1 %641, label %642, label %643

642:                                              ; preds = %639
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %653

643:                                              ; preds = %639
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %644 unwind label %620

644:                                              ; preds = %643
  %645 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %646 = load double, ptr %40, align 8, !tbaa !9
  %647 = load double, ptr %41, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %44, i32 noundef %645, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %646, double noundef %647, double noundef -5.300000e+00, double noundef 2.000000e+00)
          to label %648 unwind label %649

648:                                              ; preds = %644
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %653

649:                                              ; preds = %644
  %650 = landingpad { ptr, i32 }
          cleanup
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %4, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %693

653:                                              ; preds = %648, %642
  br label %654

654:                                              ; preds = %653, %638
  br label %655

655:                                              ; preds = %654, %608
  %656 = load i8, ptr %43, align 1, !tbaa !11, !range !13, !noundef !14
  %657 = trunc i8 %656 to i1
  br i1 %657, label %658, label %667

658:                                              ; preds = %655
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %659 unwind label %620

659:                                              ; preds = %658
  %660 = load double, ptr %40, align 8, !tbaa !9
  %661 = load double, ptr %42, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %45, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %660, double noundef %661, double noundef -5.300000e+00, double noundef 2.000000e+00)
          to label %662 unwind label %663

662:                                              ; preds = %659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %667

663:                                              ; preds = %659
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %4, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %693

667:                                              ; preds = %662, %655
  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
  %668 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, 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 %670 unwind label %696

670:                                              ; preds = %667
  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
  %671 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 5.300000e+00, double noundef -2.000000e+00) #7
  store double %671, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %672 = call double @fmod(double noundef 5.300000e+00, double noundef -2.000000e+00) #7
  store double %672, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %673 = load double, ptr %48, align 8, !tbaa !9
  %674 = load double, ptr %49, align 8, !tbaa !9
  %675 = fsub double %673, %674
  %676 = invoke noundef double @_ZSt3absd(double noundef %675)
          to label %677 unwind label %700

677:                                              ; preds = %670
  %678 = load double, ptr %49, align 8, !tbaa !9
  %679 = invoke noundef double @_ZSt3absd(double noundef %678)
          to label %680 unwind label %700

680:                                              ; preds = %677
  %681 = fadd double 1.000000e+00, %679
  %682 = fdiv double %676, %681
  store double %682, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #7
  store i8 0, ptr %51, align 1, !tbaa !11
  %683 = load double, ptr %48, align 8, !tbaa !9
  %684 = fpext double %683 to x86_fp80
  %685 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %684)
          to label %686 unwind label %704

686:                                              ; preds = %680
  br i1 %685, label %687, label %708

687:                                              ; preds = %686
  %688 = load double, ptr %49, align 8, !tbaa !9
  %689 = fpext double %688 to x86_fp80
  %690 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %689)
          to label %691 unwind label %704

691:                                              ; preds = %687
  br i1 %690, label %692, label %708

692:                                              ; preds = %691
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %739

693:                                              ; preds = %663, %649, %620
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %694

694:                                              ; preds = %693, %616
  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 %695

695:                                              ; preds = %694, %612
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %2878

696:                                              ; preds = %667
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %4, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, 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 %779

700:                                              ; preds = %677, %670
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %4, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %5, align 4
  br label %778

704:                                              ; preds = %742, %727, %713, %708, %687, %680
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %4, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %5, align 4
  br label %777

708:                                              ; preds = %691, %686
  %709 = load double, ptr %48, align 8, !tbaa !9
  %710 = fpext double %709 to x86_fp80
  %711 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %710)
          to label %712 unwind label %704

712:                                              ; preds = %708
  br i1 %711, label %723, label %713

713:                                              ; preds = %712
  %714 = load double, ptr %48, align 8, !tbaa !9
  %715 = fpext double %714 to x86_fp80
  %716 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %715)
          to label %717 unwind label %704

717:                                              ; preds = %713
  br i1 %716, label %718, label %723

718:                                              ; preds = %717
  %719 = load double, ptr %48, align 8, !tbaa !9
  %720 = load double, ptr %49, align 8, !tbaa !9
  %721 = fcmp oeq double %719, %720
  br i1 %721, label %722, label %723

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

723:                                              ; preds = %718, %717, %712
  %724 = load double, ptr %50, align 8, !tbaa !9
  %725 = fcmp olt double %724, 0x3D06849B86A12B9B
  br i1 %725, label %726, label %727

726:                                              ; preds = %723
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %737

727:                                              ; preds = %723
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %728 unwind label %704

728:                                              ; preds = %727
  %729 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %730 = load double, ptr %48, align 8, !tbaa !9
  %731 = load double, ptr %49, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %52, i32 noundef %729, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %730, double noundef %731, double noundef 5.300000e+00, double noundef -2.000000e+00)
          to label %732 unwind label %733

732:                                              ; preds = %728
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %737

733:                                              ; preds = %728
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %4, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %777

737:                                              ; preds = %732, %726
  br label %738

738:                                              ; preds = %737, %722
  br label %739

739:                                              ; preds = %738, %692
  %740 = load i8, ptr %51, align 1, !tbaa !11, !range !13, !noundef !14
  %741 = trunc i8 %740 to i1
  br i1 %741, label %742, label %751

742:                                              ; preds = %739
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %743 unwind label %704

743:                                              ; preds = %742
  %744 = load double, ptr %48, align 8, !tbaa !9
  %745 = load double, ptr %50, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %53, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %744, double noundef %745, double noundef 5.300000e+00, double noundef -2.000000e+00)
          to label %746 unwind label %747

746:                                              ; preds = %743
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %751

747:                                              ; preds = %743
  %748 = landingpad { ptr, i32 }
          cleanup
  %749 = extractvalue { ptr, i32 } %748, 0
  store ptr %749, ptr %4, align 8
  %750 = extractvalue { ptr, i32 } %748, 1
  store i32 %750, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %777

751:                                              ; preds = %746, %739
  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
  %752 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, 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 %754 unwind label %780

754:                                              ; preds = %751
  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
  %755 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -5.300000e+00, double noundef -2.000000e+00) #7
  store double %755, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %756 = call double @fmod(double noundef -5.300000e+00, double noundef -2.000000e+00) #7
  store double %756, ptr %57, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %757 = load double, ptr %56, align 8, !tbaa !9
  %758 = load double, ptr %57, align 8, !tbaa !9
  %759 = fsub double %757, %758
  %760 = invoke noundef double @_ZSt3absd(double noundef %759)
          to label %761 unwind label %784

761:                                              ; preds = %754
  %762 = load double, ptr %57, align 8, !tbaa !9
  %763 = invoke noundef double @_ZSt3absd(double noundef %762)
          to label %764 unwind label %784

764:                                              ; preds = %761
  %765 = fadd double 1.000000e+00, %763
  %766 = fdiv double %760, %765
  store double %766, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  store i8 0, ptr %59, align 1, !tbaa !11
  %767 = load double, ptr %56, align 8, !tbaa !9
  %768 = fpext double %767 to x86_fp80
  %769 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %768)
          to label %770 unwind label %788

770:                                              ; preds = %764
  br i1 %769, label %771, label %792

771:                                              ; preds = %770
  %772 = load double, ptr %57, align 8, !tbaa !9
  %773 = fpext double %772 to x86_fp80
  %774 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %773)
          to label %775 unwind label %788

775:                                              ; preds = %771
  br i1 %774, label %776, label %792

776:                                              ; preds = %775
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %823

777:                                              ; preds = %747, %733, %704
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  br label %778

778:                                              ; preds = %777, %700
  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 %779

779:                                              ; preds = %778, %696
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %2878

780:                                              ; preds = %751
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %4, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, 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 %863

784:                                              ; preds = %761, %754
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %4, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %5, align 4
  br label %862

788:                                              ; preds = %826, %811, %797, %792, %771, %764
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %4, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %5, align 4
  br label %861

792:                                              ; preds = %775, %770
  %793 = load double, ptr %56, align 8, !tbaa !9
  %794 = fpext double %793 to x86_fp80
  %795 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %794)
          to label %796 unwind label %788

796:                                              ; preds = %792
  br i1 %795, label %807, label %797

797:                                              ; preds = %796
  %798 = load double, ptr %56, align 8, !tbaa !9
  %799 = fpext double %798 to x86_fp80
  %800 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %799)
          to label %801 unwind label %788

801:                                              ; preds = %797
  br i1 %800, label %802, label %807

802:                                              ; preds = %801
  %803 = load double, ptr %56, align 8, !tbaa !9
  %804 = load double, ptr %57, align 8, !tbaa !9
  %805 = fcmp oeq double %803, %804
  br i1 %805, label %806, label %807

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

807:                                              ; preds = %802, %801, %796
  %808 = load double, ptr %58, align 8, !tbaa !9
  %809 = fcmp olt double %808, 0x3D06849B86A12B9B
  br i1 %809, label %810, label %811

810:                                              ; preds = %807
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %821

811:                                              ; preds = %807
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %812 unwind label %788

812:                                              ; preds = %811
  %813 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %814 = load double, ptr %56, align 8, !tbaa !9
  %815 = load double, ptr %57, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %60, i32 noundef %813, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %814, double noundef %815, double noundef -5.300000e+00, double noundef -2.000000e+00)
          to label %816 unwind label %817

816:                                              ; preds = %812
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %821

817:                                              ; preds = %812
  %818 = landingpad { ptr, i32 }
          cleanup
  %819 = extractvalue { ptr, i32 } %818, 0
  store ptr %819, ptr %4, align 8
  %820 = extractvalue { ptr, i32 } %818, 1
  store i32 %820, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %861

821:                                              ; preds = %816, %810
  br label %822

822:                                              ; preds = %821, %806
  br label %823

823:                                              ; preds = %822, %776
  %824 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %825 = trunc i8 %824 to i1
  br i1 %825, label %826, label %835

826:                                              ; preds = %823
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %827 unwind label %788

827:                                              ; preds = %826
  %828 = load double, ptr %56, align 8, !tbaa !9
  %829 = load double, ptr %58, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %61, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %828, double noundef %829, double noundef -5.300000e+00, double noundef -2.000000e+00)
          to label %830 unwind label %831

830:                                              ; preds = %827
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %835

831:                                              ; preds = %827
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %4, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %861

835:                                              ; preds = %830, %823
  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
  %836 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %837 = add nsw i32 %836, 1
  store i32 %837, 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 %838 unwind label %864

838:                                              ; preds = %835
  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
  %839 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 1.850000e+01, double noundef 4.200000e+00) #7
  store double %839, ptr %64, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %840 = call double @fmod(double noundef 1.850000e+01, double noundef 4.200000e+00) #7
  store double %840, ptr %65, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %841 = load double, ptr %64, align 8, !tbaa !9
  %842 = load double, ptr %65, align 8, !tbaa !9
  %843 = fsub double %841, %842
  %844 = invoke noundef double @_ZSt3absd(double noundef %843)
          to label %845 unwind label %868

845:                                              ; preds = %838
  %846 = load double, ptr %65, align 8, !tbaa !9
  %847 = invoke noundef double @_ZSt3absd(double noundef %846)
          to label %848 unwind label %868

848:                                              ; preds = %845
  %849 = fadd double 1.000000e+00, %847
  %850 = fdiv double %844, %849
  store double %850, ptr %66, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  store i8 0, ptr %67, align 1, !tbaa !11
  %851 = load double, ptr %64, align 8, !tbaa !9
  %852 = fpext double %851 to x86_fp80
  %853 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %852)
          to label %854 unwind label %872

854:                                              ; preds = %848
  br i1 %853, label %855, label %876

855:                                              ; preds = %854
  %856 = load double, ptr %65, align 8, !tbaa !9
  %857 = fpext double %856 to x86_fp80
  %858 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %857)
          to label %859 unwind label %872

859:                                              ; preds = %855
  br i1 %858, label %860, label %876

860:                                              ; preds = %859
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %907

861:                                              ; preds = %831, %817, %788
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  br label %862

862:                                              ; preds = %861, %784
  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 %863

863:                                              ; preds = %862, %780
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %2878

864:                                              ; preds = %835
  %865 = landingpad { ptr, i32 }
          cleanup
  %866 = extractvalue { ptr, i32 } %865, 0
  store ptr %866, ptr %4, align 8
  %867 = extractvalue { ptr, i32 } %865, 1
  store i32 %867, 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 %947

868:                                              ; preds = %845, %838
  %869 = landingpad { ptr, i32 }
          cleanup
  %870 = extractvalue { ptr, i32 } %869, 0
  store ptr %870, ptr %4, align 8
  %871 = extractvalue { ptr, i32 } %869, 1
  store i32 %871, ptr %5, align 4
  br label %946

872:                                              ; preds = %910, %895, %881, %876, %855, %848
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %4, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %5, align 4
  br label %945

876:                                              ; preds = %859, %854
  %877 = load double, ptr %64, align 8, !tbaa !9
  %878 = fpext double %877 to x86_fp80
  %879 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %878)
          to label %880 unwind label %872

880:                                              ; preds = %876
  br i1 %879, label %891, label %881

881:                                              ; preds = %880
  %882 = load double, ptr %64, align 8, !tbaa !9
  %883 = fpext double %882 to x86_fp80
  %884 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %883)
          to label %885 unwind label %872

885:                                              ; preds = %881
  br i1 %884, label %886, label %891

886:                                              ; preds = %885
  %887 = load double, ptr %64, align 8, !tbaa !9
  %888 = load double, ptr %65, align 8, !tbaa !9
  %889 = fcmp oeq double %887, %888
  br i1 %889, label %890, label %891

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

891:                                              ; preds = %886, %885, %880
  %892 = load double, ptr %66, align 8, !tbaa !9
  %893 = fcmp olt double %892, 0x3D06849B86A12B9B
  br i1 %893, label %894, label %895

894:                                              ; preds = %891
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %905

895:                                              ; preds = %891
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %896 unwind label %872

896:                                              ; preds = %895
  %897 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %898 = load double, ptr %64, align 8, !tbaa !9
  %899 = load double, ptr %65, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %68, i32 noundef %897, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %898, double noundef %899, double noundef 1.850000e+01, double noundef 4.200000e+00)
          to label %900 unwind label %901

900:                                              ; preds = %896
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %905

901:                                              ; preds = %896
  %902 = landingpad { ptr, i32 }
          cleanup
  %903 = extractvalue { ptr, i32 } %902, 0
  store ptr %903, ptr %4, align 8
  %904 = extractvalue { ptr, i32 } %902, 1
  store i32 %904, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %945

905:                                              ; preds = %900, %894
  br label %906

906:                                              ; preds = %905, %890
  br label %907

907:                                              ; preds = %906, %860
  %908 = load i8, ptr %67, align 1, !tbaa !11, !range !13, !noundef !14
  %909 = trunc i8 %908 to i1
  br i1 %909, label %910, label %919

910:                                              ; preds = %907
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %911 unwind label %872

911:                                              ; preds = %910
  %912 = load double, ptr %64, align 8, !tbaa !9
  %913 = load double, ptr %66, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %69, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %912, double noundef %913, double noundef 1.850000e+01, double noundef 4.200000e+00)
          to label %914 unwind label %915

914:                                              ; preds = %911
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %919

915:                                              ; preds = %911
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %4, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %945

919:                                              ; preds = %914, %907
  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
  %920 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, 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 %922 unwind label %948

922:                                              ; preds = %919
  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
  %923 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -1.850000e+01, double noundef 4.200000e+00) #7
  store double %923, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %924 = call double @fmod(double noundef -1.850000e+01, double noundef 4.200000e+00) #7
  store double %924, ptr %73, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %925 = load double, ptr %72, align 8, !tbaa !9
  %926 = load double, ptr %73, align 8, !tbaa !9
  %927 = fsub double %925, %926
  %928 = invoke noundef double @_ZSt3absd(double noundef %927)
          to label %929 unwind label %952

929:                                              ; preds = %922
  %930 = load double, ptr %73, align 8, !tbaa !9
  %931 = invoke noundef double @_ZSt3absd(double noundef %930)
          to label %932 unwind label %952

932:                                              ; preds = %929
  %933 = fadd double 1.000000e+00, %931
  %934 = fdiv double %928, %933
  store double %934, ptr %74, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #7
  store i8 0, ptr %75, align 1, !tbaa !11
  %935 = load double, ptr %72, align 8, !tbaa !9
  %936 = fpext double %935 to x86_fp80
  %937 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %936)
          to label %938 unwind label %956

938:                                              ; preds = %932
  br i1 %937, label %939, label %960

939:                                              ; preds = %938
  %940 = load double, ptr %73, align 8, !tbaa !9
  %941 = fpext double %940 to x86_fp80
  %942 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %941)
          to label %943 unwind label %956

943:                                              ; preds = %939
  br i1 %942, label %944, label %960

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

945:                                              ; preds = %915, %901, %872
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  br label %946

946:                                              ; preds = %945, %868
  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 %947

947:                                              ; preds = %946, %864
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %2878

948:                                              ; preds = %919
  %949 = landingpad { ptr, i32 }
          cleanup
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %4, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, 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 %1031

952:                                              ; preds = %929, %922
  %953 = landingpad { ptr, i32 }
          cleanup
  %954 = extractvalue { ptr, i32 } %953, 0
  store ptr %954, ptr %4, align 8
  %955 = extractvalue { ptr, i32 } %953, 1
  store i32 %955, ptr %5, align 4
  br label %1030

956:                                              ; preds = %994, %979, %965, %960, %939, %932
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %4, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %5, align 4
  br label %1029

960:                                              ; preds = %943, %938
  %961 = load double, ptr %72, align 8, !tbaa !9
  %962 = fpext double %961 to x86_fp80
  %963 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %962)
          to label %964 unwind label %956

964:                                              ; preds = %960
  br i1 %963, label %975, label %965

965:                                              ; preds = %964
  %966 = load double, ptr %72, align 8, !tbaa !9
  %967 = fpext double %966 to x86_fp80
  %968 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %967)
          to label %969 unwind label %956

969:                                              ; preds = %965
  br i1 %968, label %970, label %975

970:                                              ; preds = %969
  %971 = load double, ptr %72, align 8, !tbaa !9
  %972 = load double, ptr %73, align 8, !tbaa !9
  %973 = fcmp oeq double %971, %972
  br i1 %973, label %974, label %975

974:                                              ; preds = %970
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %990

975:                                              ; preds = %970, %969, %964
  %976 = load double, ptr %74, align 8, !tbaa !9
  %977 = fcmp olt double %976, 0x3D06849B86A12B9B
  br i1 %977, label %978, label %979

978:                                              ; preds = %975
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %989

979:                                              ; preds = %975
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %980 unwind label %956

980:                                              ; preds = %979
  %981 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %982 = load double, ptr %72, align 8, !tbaa !9
  %983 = load double, ptr %73, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %76, i32 noundef %981, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %982, double noundef %983, double noundef -1.850000e+01, double noundef 4.200000e+00)
          to label %984 unwind label %985

984:                                              ; preds = %980
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %989

985:                                              ; preds = %980
  %986 = landingpad { ptr, i32 }
          cleanup
  %987 = extractvalue { ptr, i32 } %986, 0
  store ptr %987, ptr %4, align 8
  %988 = extractvalue { ptr, i32 } %986, 1
  store i32 %988, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %1029

989:                                              ; preds = %984, %978
  br label %990

990:                                              ; preds = %989, %974
  br label %991

991:                                              ; preds = %990, %944
  %992 = load i8, ptr %75, align 1, !tbaa !11, !range !13, !noundef !14
  %993 = trunc i8 %992 to i1
  br i1 %993, label %994, label %1003

994:                                              ; preds = %991
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %995 unwind label %956

995:                                              ; preds = %994
  %996 = load double, ptr %72, align 8, !tbaa !9
  %997 = load double, ptr %74, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %77, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %996, double noundef %997, double noundef -1.850000e+01, double noundef 4.200000e+00)
          to label %998 unwind label %999

998:                                              ; preds = %995
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %1003

999:                                              ; preds = %995
  %1000 = landingpad { ptr, i32 }
          cleanup
  %1001 = extractvalue { ptr, i32 } %1000, 0
  store ptr %1001, ptr %4, align 8
  %1002 = extractvalue { ptr, i32 } %1000, 1
  store i32 %1002, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %1029

1003:                                             ; preds = %998, %991
  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
  %1004 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, 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 %1006 unwind label %1032

1006:                                             ; preds = %1003
  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
  %1007 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 1.850000e+01, double noundef -4.200000e+00) #7
  store double %1007, ptr %80, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %1008 = call double @fmod(double noundef 1.850000e+01, double noundef -4.200000e+00) #7
  store double %1008, ptr %81, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %1009 = load double, ptr %80, align 8, !tbaa !9
  %1010 = load double, ptr %81, align 8, !tbaa !9
  %1011 = fsub double %1009, %1010
  %1012 = invoke noundef double @_ZSt3absd(double noundef %1011)
          to label %1013 unwind label %1036

1013:                                             ; preds = %1006
  %1014 = load double, ptr %81, align 8, !tbaa !9
  %1015 = invoke noundef double @_ZSt3absd(double noundef %1014)
          to label %1016 unwind label %1036

1016:                                             ; preds = %1013
  %1017 = fadd double 1.000000e+00, %1015
  %1018 = fdiv double %1012, %1017
  store double %1018, ptr %82, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #7
  store i8 0, ptr %83, align 1, !tbaa !11
  %1019 = load double, ptr %80, align 8, !tbaa !9
  %1020 = fpext double %1019 to x86_fp80
  %1021 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1020)
          to label %1022 unwind label %1040

1022:                                             ; preds = %1016
  br i1 %1021, label %1023, label %1044

1023:                                             ; preds = %1022
  %1024 = load double, ptr %81, align 8, !tbaa !9
  %1025 = fpext double %1024 to x86_fp80
  %1026 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1025)
          to label %1027 unwind label %1040

1027:                                             ; preds = %1023
  br i1 %1026, label %1028, label %1044

1028:                                             ; preds = %1027
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1075

1029:                                             ; preds = %999, %985, %956
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  br label %1030

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

1031:                                             ; preds = %1030, %948
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %2878

1032:                                             ; preds = %1003
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %4, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, 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 %1115

1036:                                             ; preds = %1013, %1006
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %4, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %5, align 4
  br label %1114

1040:                                             ; preds = %1078, %1063, %1049, %1044, %1023, %1016
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %4, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %5, align 4
  br label %1113

1044:                                             ; preds = %1027, %1022
  %1045 = load double, ptr %80, align 8, !tbaa !9
  %1046 = fpext double %1045 to x86_fp80
  %1047 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1046)
          to label %1048 unwind label %1040

1048:                                             ; preds = %1044
  br i1 %1047, label %1059, label %1049

1049:                                             ; preds = %1048
  %1050 = load double, ptr %80, align 8, !tbaa !9
  %1051 = fpext double %1050 to x86_fp80
  %1052 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1051)
          to label %1053 unwind label %1040

1053:                                             ; preds = %1049
  br i1 %1052, label %1054, label %1059

1054:                                             ; preds = %1053
  %1055 = load double, ptr %80, align 8, !tbaa !9
  %1056 = load double, ptr %81, align 8, !tbaa !9
  %1057 = fcmp oeq double %1055, %1056
  br i1 %1057, label %1058, label %1059

1058:                                             ; preds = %1054
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1074

1059:                                             ; preds = %1054, %1053, %1048
  %1060 = load double, ptr %82, align 8, !tbaa !9
  %1061 = fcmp olt double %1060, 0x3D06849B86A12B9B
  br i1 %1061, label %1062, label %1063

1062:                                             ; preds = %1059
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1073

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

1064:                                             ; preds = %1063
  %1065 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1066 = load double, ptr %80, align 8, !tbaa !9
  %1067 = load double, ptr %81, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %84, i32 noundef %1065, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1066, double noundef %1067, double noundef 1.850000e+01, double noundef -4.200000e+00)
          to label %1068 unwind label %1069

1068:                                             ; preds = %1064
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1073

1069:                                             ; preds = %1064
  %1070 = landingpad { ptr, i32 }
          cleanup
  %1071 = extractvalue { ptr, i32 } %1070, 0
  store ptr %1071, ptr %4, align 8
  %1072 = extractvalue { ptr, i32 } %1070, 1
  store i32 %1072, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1113

1073:                                             ; preds = %1068, %1062
  br label %1074

1074:                                             ; preds = %1073, %1058
  br label %1075

1075:                                             ; preds = %1074, %1028
  %1076 = load i8, ptr %83, align 1, !tbaa !11, !range !13, !noundef !14
  %1077 = trunc i8 %1076 to i1
  br i1 %1077, label %1078, label %1087

1078:                                             ; preds = %1075
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1079 unwind label %1040

1079:                                             ; preds = %1078
  %1080 = load double, ptr %80, align 8, !tbaa !9
  %1081 = load double, ptr %82, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %85, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1080, double noundef %1081, double noundef 1.850000e+01, double noundef -4.200000e+00)
          to label %1082 unwind label %1083

1082:                                             ; preds = %1079
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1087

1083:                                             ; preds = %1079
  %1084 = landingpad { ptr, i32 }
          cleanup
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %4, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1113

1087:                                             ; preds = %1082, %1075
  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
  %1088 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, 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 %1090 unwind label %1116

1090:                                             ; preds = %1087
  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
  %1091 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -1.850000e+01, double noundef -4.200000e+00) #7
  store double %1091, ptr %88, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  %1092 = call double @fmod(double noundef -1.850000e+01, double noundef -4.200000e+00) #7
  store double %1092, ptr %89, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %1093 = load double, ptr %88, align 8, !tbaa !9
  %1094 = load double, ptr %89, align 8, !tbaa !9
  %1095 = fsub double %1093, %1094
  %1096 = invoke noundef double @_ZSt3absd(double noundef %1095)
          to label %1097 unwind label %1120

1097:                                             ; preds = %1090
  %1098 = load double, ptr %89, align 8, !tbaa !9
  %1099 = invoke noundef double @_ZSt3absd(double noundef %1098)
          to label %1100 unwind label %1120

1100:                                             ; preds = %1097
  %1101 = fadd double 1.000000e+00, %1099
  %1102 = fdiv double %1096, %1101
  store double %1102, ptr %90, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #7
  store i8 0, ptr %91, align 1, !tbaa !11
  %1103 = load double, ptr %88, align 8, !tbaa !9
  %1104 = fpext double %1103 to x86_fp80
  %1105 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1104)
          to label %1106 unwind label %1124

1106:                                             ; preds = %1100
  br i1 %1105, label %1107, label %1128

1107:                                             ; preds = %1106
  %1108 = load double, ptr %89, align 8, !tbaa !9
  %1109 = fpext double %1108 to x86_fp80
  %1110 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1109)
          to label %1111 unwind label %1124

1111:                                             ; preds = %1107
  br i1 %1110, label %1112, label %1128

1112:                                             ; preds = %1111
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1159

1113:                                             ; preds = %1083, %1069, %1040
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  br label %1114

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

1115:                                             ; preds = %1114, %1032
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  br label %2878

1116:                                             ; preds = %1087
  %1117 = landingpad { ptr, i32 }
          cleanup
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %4, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, 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 %1202

1120:                                             ; preds = %1097, %1090
  %1121 = landingpad { ptr, i32 }
          cleanup
  %1122 = extractvalue { ptr, i32 } %1121, 0
  store ptr %1122, ptr %4, align 8
  %1123 = extractvalue { ptr, i32 } %1121, 1
  store i32 %1123, ptr %5, align 4
  br label %1201

1124:                                             ; preds = %1162, %1147, %1133, %1128, %1107, %1100
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %4, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %5, align 4
  br label %1200

1128:                                             ; preds = %1111, %1106
  %1129 = load double, ptr %88, align 8, !tbaa !9
  %1130 = fpext double %1129 to x86_fp80
  %1131 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1130)
          to label %1132 unwind label %1124

1132:                                             ; preds = %1128
  br i1 %1131, label %1143, label %1133

1133:                                             ; preds = %1132
  %1134 = load double, ptr %88, align 8, !tbaa !9
  %1135 = fpext double %1134 to x86_fp80
  %1136 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1135)
          to label %1137 unwind label %1124

1137:                                             ; preds = %1133
  br i1 %1136, label %1138, label %1143

1138:                                             ; preds = %1137
  %1139 = load double, ptr %88, align 8, !tbaa !9
  %1140 = load double, ptr %89, align 8, !tbaa !9
  %1141 = fcmp oeq double %1139, %1140
  br i1 %1141, label %1142, label %1143

1142:                                             ; preds = %1138
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1158

1143:                                             ; preds = %1138, %1137, %1132
  %1144 = load double, ptr %90, align 8, !tbaa !9
  %1145 = fcmp olt double %1144, 0x3D06849B86A12B9B
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1143
  store i8 1, ptr %91, align 1, !tbaa !11
  br label %1157

1147:                                             ; preds = %1143
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1148 unwind label %1124

1148:                                             ; preds = %1147
  %1149 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1150 = load double, ptr %88, align 8, !tbaa !9
  %1151 = load double, ptr %89, align 8, !tbaa !9
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %92, i32 noundef %1149, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1150, double noundef %1151, double noundef -1.850000e+01, double noundef -4.200000e+00)
          to label %1152 unwind label %1153

1152:                                             ; preds = %1148
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1157

1153:                                             ; preds = %1148
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1200

1157:                                             ; preds = %1152, %1146
  br label %1158

1158:                                             ; preds = %1157, %1142
  br label %1159

1159:                                             ; preds = %1158, %1112
  %1160 = load i8, ptr %91, align 1, !tbaa !11, !range !13, !noundef !14
  %1161 = trunc i8 %1160 to i1
  br i1 %1161, label %1162, label %1171

1162:                                             ; preds = %1159
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1163 unwind label %1124

1163:                                             ; preds = %1162
  %1164 = load double, ptr %88, align 8, !tbaa !9
  %1165 = load double, ptr %90, align 8, !tbaa !9
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %93, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %1164, double noundef %1165, double noundef -1.850000e+01, double noundef -4.200000e+00)
          to label %1166 unwind label %1167

1166:                                             ; preds = %1163
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1171

1167:                                             ; preds = %1163
  %1168 = landingpad { ptr, i32 }
          cleanup
  %1169 = extractvalue { ptr, i32 } %1168, 0
  store ptr %1169, ptr %4, align 8
  %1170 = extractvalue { ptr, i32 } %1168, 1
  store i32 %1170, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1200

1171:                                             ; preds = %1166, %1159
  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
  %1172 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1173 = add nsw i32 %1172, 1
  store i32 %1173, 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 %1174 unwind label %1203

1174:                                             ; preds = %1171
  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
  %1175 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1176 = fneg x86_fp80 %1175
  %1177 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1176, double noundef 0.000000e+00) #7
  store x86_fp80 %1177, ptr %96, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #7
  %1178 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1179 = fneg x86_fp80 %1178
  %1180 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1179, double noundef 0.000000e+00)
          to label %1181 unwind label %1207

1181:                                             ; preds = %1174
  store x86_fp80 %1180, ptr %97, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #7
  %1182 = load x86_fp80, ptr %96, align 16, !tbaa !15
  %1183 = load x86_fp80, ptr %97, align 16, !tbaa !15
  %1184 = fsub x86_fp80 %1182, %1183
  %1185 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1184)
          to label %1186 unwind label %1211

1186:                                             ; preds = %1181
  %1187 = load x86_fp80, ptr %97, align 16, !tbaa !15
  %1188 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1187)
          to label %1189 unwind label %1211

1189:                                             ; preds = %1186
  %1190 = fadd x86_fp80 0xK3FFF8000000000000000, %1188
  %1191 = fdiv x86_fp80 %1185, %1190
  store x86_fp80 %1191, ptr %98, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #7
  store i8 0, ptr %99, align 1, !tbaa !11
  %1192 = load x86_fp80, ptr %96, align 16, !tbaa !15
  %1193 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1192)
          to label %1194 unwind label %1215

1194:                                             ; preds = %1189
  br i1 %1193, label %1195, label %1219

1195:                                             ; preds = %1194
  %1196 = load x86_fp80, ptr %97, align 16, !tbaa !15
  %1197 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1196)
          to label %1198 unwind label %1215

1198:                                             ; preds = %1195
  br i1 %1197, label %1199, label %1219

1199:                                             ; preds = %1198
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1250

1200:                                             ; preds = %1167, %1153, %1124
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  br label %1201

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

1202:                                             ; preds = %1201, %1116
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  br label %2878

1203:                                             ; preds = %1171
  %1204 = landingpad { ptr, i32 }
          cleanup
  %1205 = extractvalue { ptr, i32 } %1204, 0
  store ptr %1205, ptr %4, align 8
  %1206 = extractvalue { ptr, i32 } %1204, 1
  store i32 %1206, 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 %1296

1207:                                             ; preds = %1174
  %1208 = landingpad { ptr, i32 }
          cleanup
  %1209 = extractvalue { ptr, i32 } %1208, 0
  store ptr %1209, ptr %4, align 8
  %1210 = extractvalue { ptr, i32 } %1208, 1
  store i32 %1210, ptr %5, align 4
  br label %1295

1211:                                             ; preds = %1186, %1181
  %1212 = landingpad { ptr, i32 }
          cleanup
  %1213 = extractvalue { ptr, i32 } %1212, 0
  store ptr %1213, ptr %4, align 8
  %1214 = extractvalue { ptr, i32 } %1212, 1
  store i32 %1214, ptr %5, align 4
  br label %1294

1215:                                             ; preds = %1253, %1236, %1223, %1219, %1195, %1189
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %4, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %5, align 4
  br label %1293

1219:                                             ; preds = %1198, %1194
  %1220 = load x86_fp80, ptr %96, align 16, !tbaa !15
  %1221 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1220)
          to label %1222 unwind label %1215

1222:                                             ; preds = %1219
  br i1 %1221, label %1232, label %1223

1223:                                             ; preds = %1222
  %1224 = load x86_fp80, ptr %96, align 16, !tbaa !15
  %1225 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1224)
          to label %1226 unwind label %1215

1226:                                             ; preds = %1223
  br i1 %1225, label %1227, label %1232

1227:                                             ; preds = %1226
  %1228 = load x86_fp80, ptr %96, align 16, !tbaa !15
  %1229 = load x86_fp80, ptr %97, align 16, !tbaa !15
  %1230 = fcmp oeq x86_fp80 %1228, %1229
  br i1 %1230, label %1231, label %1232

1231:                                             ; preds = %1227
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1249

1232:                                             ; preds = %1227, %1226, %1222
  %1233 = load x86_fp80, ptr %98, align 16, !tbaa !15
  %1234 = fcmp olt x86_fp80 %1233, 0xK3FD0B424DC35095CD800
  br i1 %1234, label %1235, label %1236

1235:                                             ; preds = %1232
  store i8 1, ptr %99, align 1, !tbaa !11
  br label %1248

1236:                                             ; preds = %1232
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1237 unwind label %1215

1237:                                             ; preds = %1236
  %1238 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1239 = load x86_fp80, ptr %96, align 16, !tbaa !15
  %1240 = load x86_fp80, ptr %97, align 16, !tbaa !15
  %1241 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1242 = fneg x86_fp80 %1241
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %100, i32 noundef %1238, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1239, x86_fp80 noundef %1240, x86_fp80 noundef %1242, double noundef 0.000000e+00)
          to label %1243 unwind label %1244

1243:                                             ; preds = %1237
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1248

1244:                                             ; preds = %1237
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %4, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1293

1248:                                             ; preds = %1243, %1235
  br label %1249

1249:                                             ; preds = %1248, %1231
  br label %1250

1250:                                             ; preds = %1249, %1199
  %1251 = load i8, ptr %99, align 1, !tbaa !11, !range !13, !noundef !14
  %1252 = trunc i8 %1251 to i1
  br i1 %1252, label %1253, label %1264

1253:                                             ; preds = %1250
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1254 unwind label %1215

1254:                                             ; preds = %1253
  %1255 = load x86_fp80, ptr %96, align 16, !tbaa !15
  %1256 = load x86_fp80, ptr %98, align 16, !tbaa !15
  %1257 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1258 = fneg x86_fp80 %1257
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %101, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1255, x86_fp80 noundef %1256, x86_fp80 noundef %1258, double noundef 0.000000e+00)
          to label %1259 unwind label %1260

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

1260:                                             ; preds = %1254
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %4, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1293

1264:                                             ; preds = %1259, %1250
  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
  %1265 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1266 = add nsw i32 %1265, 1
  store i32 %1266, 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 %1267 unwind label %1297

1267:                                             ; preds = %1264
  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
  %1268 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1269 = fneg x86_fp80 %1268
  %1270 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1269, double noundef -1.000000e+00) #7
  store x86_fp80 %1270, ptr %104, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #7
  %1271 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1272 = fneg x86_fp80 %1271
  %1273 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1272, double noundef -1.000000e+00)
          to label %1274 unwind label %1301

1274:                                             ; preds = %1267
  store x86_fp80 %1273, ptr %105, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #7
  %1275 = load x86_fp80, ptr %104, align 16, !tbaa !15
  %1276 = load x86_fp80, ptr %105, align 16, !tbaa !15
  %1277 = fsub x86_fp80 %1275, %1276
  %1278 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1277)
          to label %1279 unwind label %1305

1279:                                             ; preds = %1274
  %1280 = load x86_fp80, ptr %105, align 16, !tbaa !15
  %1281 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1280)
          to label %1282 unwind label %1305

1282:                                             ; preds = %1279
  %1283 = fadd x86_fp80 0xK3FFF8000000000000000, %1281
  %1284 = fdiv x86_fp80 %1278, %1283
  store x86_fp80 %1284, ptr %106, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #7
  store i8 0, ptr %107, align 1, !tbaa !11
  %1285 = load x86_fp80, ptr %104, align 16, !tbaa !15
  %1286 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1285)
          to label %1287 unwind label %1309

1287:                                             ; preds = %1282
  br i1 %1286, label %1288, label %1313

1288:                                             ; preds = %1287
  %1289 = load x86_fp80, ptr %105, align 16, !tbaa !15
  %1290 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1289)
          to label %1291 unwind label %1309

1291:                                             ; preds = %1288
  br i1 %1290, label %1292, label %1313

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

1293:                                             ; preds = %1260, %1244, %1215
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #7
  br label %1294

1294:                                             ; preds = %1293, %1211
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #7
  br label %1295

1295:                                             ; preds = %1294, %1207
  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 %1296

1296:                                             ; preds = %1295, %1203
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  br label %2878

1297:                                             ; preds = %1264
  %1298 = landingpad { ptr, i32 }
          cleanup
  %1299 = extractvalue { ptr, i32 } %1298, 0
  store ptr %1299, ptr %4, align 8
  %1300 = extractvalue { ptr, i32 } %1298, 1
  store i32 %1300, 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 %1390

1301:                                             ; preds = %1267
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %4, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %5, align 4
  br label %1389

1305:                                             ; preds = %1279, %1274
  %1306 = landingpad { ptr, i32 }
          cleanup
  %1307 = extractvalue { ptr, i32 } %1306, 0
  store ptr %1307, ptr %4, align 8
  %1308 = extractvalue { ptr, i32 } %1306, 1
  store i32 %1308, ptr %5, align 4
  br label %1388

1309:                                             ; preds = %1347, %1330, %1317, %1313, %1288, %1282
  %1310 = landingpad { ptr, i32 }
          cleanup
  %1311 = extractvalue { ptr, i32 } %1310, 0
  store ptr %1311, ptr %4, align 8
  %1312 = extractvalue { ptr, i32 } %1310, 1
  store i32 %1312, ptr %5, align 4
  br label %1387

1313:                                             ; preds = %1291, %1287
  %1314 = load x86_fp80, ptr %104, align 16, !tbaa !15
  %1315 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1314)
          to label %1316 unwind label %1309

1316:                                             ; preds = %1313
  br i1 %1315, label %1326, label %1317

1317:                                             ; preds = %1316
  %1318 = load x86_fp80, ptr %104, align 16, !tbaa !15
  %1319 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1318)
          to label %1320 unwind label %1309

1320:                                             ; preds = %1317
  br i1 %1319, label %1321, label %1326

1321:                                             ; preds = %1320
  %1322 = load x86_fp80, ptr %104, align 16, !tbaa !15
  %1323 = load x86_fp80, ptr %105, align 16, !tbaa !15
  %1324 = fcmp oeq x86_fp80 %1322, %1323
  br i1 %1324, label %1325, label %1326

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

1326:                                             ; preds = %1321, %1320, %1316
  %1327 = load x86_fp80, ptr %106, align 16, !tbaa !15
  %1328 = fcmp olt x86_fp80 %1327, 0xK3FD0B424DC35095CD800
  br i1 %1328, label %1329, label %1330

1329:                                             ; preds = %1326
  store i8 1, ptr %107, align 1, !tbaa !11
  br label %1342

1330:                                             ; preds = %1326
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1331 unwind label %1309

1331:                                             ; preds = %1330
  %1332 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1333 = load x86_fp80, ptr %104, align 16, !tbaa !15
  %1334 = load x86_fp80, ptr %105, align 16, !tbaa !15
  %1335 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1336 = fneg x86_fp80 %1335
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %108, i32 noundef %1332, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1333, x86_fp80 noundef %1334, x86_fp80 noundef %1336, double noundef -1.000000e+00)
          to label %1337 unwind label %1338

1337:                                             ; preds = %1331
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1342

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

1342:                                             ; preds = %1337, %1329
  br label %1343

1343:                                             ; preds = %1342, %1325
  br label %1344

1344:                                             ; preds = %1343, %1292
  %1345 = load i8, ptr %107, align 1, !tbaa !11, !range !13, !noundef !14
  %1346 = trunc i8 %1345 to i1
  br i1 %1346, label %1347, label %1358

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

1348:                                             ; preds = %1347
  %1349 = load x86_fp80, ptr %104, align 16, !tbaa !15
  %1350 = load x86_fp80, ptr %106, align 16, !tbaa !15
  %1351 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1352 = fneg x86_fp80 %1351
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %109, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1349, x86_fp80 noundef %1350, x86_fp80 noundef %1352, double noundef -1.000000e+00)
          to label %1353 unwind label %1354

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

1354:                                             ; preds = %1348
  %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) %109) #7
  br label %1387

1358:                                             ; preds = %1353, %1344
  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
  %1359 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1360 = add nsw i32 %1359, 1
  store i32 %1360, 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 %1361 unwind label %1391

1361:                                             ; preds = %1358
  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
  %1362 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1363 = fneg x86_fp80 %1362
  %1364 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1363, double noundef 1.000000e+00) #7
  store x86_fp80 %1364, ptr %112, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #7
  %1365 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1366 = fneg x86_fp80 %1365
  %1367 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1366, double noundef 1.000000e+00)
          to label %1368 unwind label %1395

1368:                                             ; preds = %1361
  store x86_fp80 %1367, ptr %113, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #7
  %1369 = load x86_fp80, ptr %112, align 16, !tbaa !15
  %1370 = load x86_fp80, ptr %113, align 16, !tbaa !15
  %1371 = fsub x86_fp80 %1369, %1370
  %1372 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1371)
          to label %1373 unwind label %1399

1373:                                             ; preds = %1368
  %1374 = load x86_fp80, ptr %113, align 16, !tbaa !15
  %1375 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1374)
          to label %1376 unwind label %1399

1376:                                             ; preds = %1373
  %1377 = fadd x86_fp80 0xK3FFF8000000000000000, %1375
  %1378 = fdiv x86_fp80 %1372, %1377
  store x86_fp80 %1378, ptr %114, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #7
  store i8 0, ptr %115, align 1, !tbaa !11
  %1379 = load x86_fp80, ptr %112, align 16, !tbaa !15
  %1380 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1379)
          to label %1381 unwind label %1403

1381:                                             ; preds = %1376
  br i1 %1380, label %1382, label %1407

1382:                                             ; preds = %1381
  %1383 = load x86_fp80, ptr %113, align 16, !tbaa !15
  %1384 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1383)
          to label %1385 unwind label %1403

1385:                                             ; preds = %1382
  br i1 %1384, label %1386, label %1407

1386:                                             ; preds = %1385
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1438

1387:                                             ; preds = %1354, %1338, %1309
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #7
  br label %1388

1388:                                             ; preds = %1387, %1305
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #7
  br label %1389

1389:                                             ; preds = %1388, %1301
  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 %1390

1390:                                             ; preds = %1389, %1297
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %2878

1391:                                             ; preds = %1358
  %1392 = landingpad { ptr, i32 }
          cleanup
  %1393 = extractvalue { ptr, i32 } %1392, 0
  store ptr %1393, ptr %4, align 8
  %1394 = extractvalue { ptr, i32 } %1392, 1
  store i32 %1394, 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

1395:                                             ; preds = %1361
  %1396 = landingpad { ptr, i32 }
          cleanup
  %1397 = extractvalue { ptr, i32 } %1396, 0
  store ptr %1397, ptr %4, align 8
  %1398 = extractvalue { ptr, i32 } %1396, 1
  store i32 %1398, ptr %5, align 4
  br label %1485

1399:                                             ; preds = %1373, %1368
  %1400 = landingpad { ptr, i32 }
          cleanup
  %1401 = extractvalue { ptr, i32 } %1400, 0
  store ptr %1401, ptr %4, align 8
  %1402 = extractvalue { ptr, i32 } %1400, 1
  store i32 %1402, ptr %5, align 4
  br label %1484

1403:                                             ; preds = %1441, %1424, %1411, %1407, %1382, %1376
  %1404 = landingpad { ptr, i32 }
          cleanup
  %1405 = extractvalue { ptr, i32 } %1404, 0
  store ptr %1405, ptr %4, align 8
  %1406 = extractvalue { ptr, i32 } %1404, 1
  store i32 %1406, ptr %5, align 4
  br label %1483

1407:                                             ; preds = %1385, %1381
  %1408 = load x86_fp80, ptr %112, align 16, !tbaa !15
  %1409 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1408)
          to label %1410 unwind label %1403

1410:                                             ; preds = %1407
  br i1 %1409, label %1420, label %1411

1411:                                             ; preds = %1410
  %1412 = load x86_fp80, ptr %112, align 16, !tbaa !15
  %1413 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1412)
          to label %1414 unwind label %1403

1414:                                             ; preds = %1411
  br i1 %1413, label %1415, label %1420

1415:                                             ; preds = %1414
  %1416 = load x86_fp80, ptr %112, align 16, !tbaa !15
  %1417 = load x86_fp80, ptr %113, align 16, !tbaa !15
  %1418 = fcmp oeq x86_fp80 %1416, %1417
  br i1 %1418, label %1419, label %1420

1419:                                             ; preds = %1415
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1437

1420:                                             ; preds = %1415, %1414, %1410
  %1421 = load x86_fp80, ptr %114, align 16, !tbaa !15
  %1422 = fcmp olt x86_fp80 %1421, 0xK3FD0B424DC35095CD800
  br i1 %1422, label %1423, label %1424

1423:                                             ; preds = %1420
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1436

1424:                                             ; preds = %1420
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1425 unwind label %1403

1425:                                             ; preds = %1424
  %1426 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1427 = load x86_fp80, ptr %112, align 16, !tbaa !15
  %1428 = load x86_fp80, ptr %113, align 16, !tbaa !15
  %1429 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1430 = fneg x86_fp80 %1429
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %116, i32 noundef %1426, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1427, x86_fp80 noundef %1428, x86_fp80 noundef %1430, double noundef 1.000000e+00)
          to label %1431 unwind label %1432

1431:                                             ; preds = %1425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1436

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

1436:                                             ; preds = %1431, %1423
  br label %1437

1437:                                             ; preds = %1436, %1419
  br label %1438

1438:                                             ; preds = %1437, %1386
  %1439 = load i8, ptr %115, align 1, !tbaa !11, !range !13, !noundef !14
  %1440 = trunc i8 %1439 to i1
  br i1 %1440, label %1441, label %1452

1441:                                             ; preds = %1438
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1442 unwind label %1403

1442:                                             ; preds = %1441
  %1443 = load x86_fp80, ptr %112, align 16, !tbaa !15
  %1444 = load x86_fp80, ptr %114, align 16, !tbaa !15
  %1445 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1446 = fneg x86_fp80 %1445
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %117, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1443, x86_fp80 noundef %1444, x86_fp80 noundef %1446, double noundef 1.000000e+00)
          to label %1447 unwind label %1448

1447:                                             ; preds = %1442
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1452

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

1452:                                             ; preds = %1447, %1438
  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
  %1453 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1454 = add nsw i32 %1453, 1
  store i32 %1454, 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 %1455 unwind label %1487

1455:                                             ; preds = %1452
  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
  %1456 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1457 = fneg x86_fp80 %1456
  %1458 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1459 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1457, x86_fp80 noundef %1458) #7
  store x86_fp80 %1459, ptr %120, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #7
  %1460 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1461 = fneg x86_fp80 %1460
  %1462 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1463 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %1461, x86_fp80 noundef %1462)
          to label %1464 unwind label %1491

1464:                                             ; preds = %1455
  store x86_fp80 %1463, ptr %121, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #7
  %1465 = load x86_fp80, ptr %120, align 16, !tbaa !15
  %1466 = load x86_fp80, ptr %121, align 16, !tbaa !15
  %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 !15
  %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 !15
  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 !15
  %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 !15
  %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 %1535

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

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

1485:                                             ; preds = %1484, %1395
  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, %1391
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  br label %2878

1487:                                             ; preds = %1452
  %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 %1586

1491:                                             ; preds = %1455
  %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 %1585

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 %1584

1499:                                             ; preds = %1538, %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 %1583

1503:                                             ; preds = %1481, %1477
  %1504 = load x86_fp80, ptr %120, align 16, !tbaa !15
  %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 !15
  %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 !15
  %1513 = load x86_fp80, ptr %121, align 16, !tbaa !15
  %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 %1534

1516:                                             ; preds = %1511, %1510, %1506
  %1517 = load x86_fp80, ptr %122, align 16, !tbaa !15
  %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 %1533

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 !15
  %1524 = load x86_fp80, ptr %121, align 16, !tbaa !15
  %1525 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1526 = fneg x86_fp80 %1525
  %1527 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %124, i32 noundef %1522, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1523, x86_fp80 noundef %1524, x86_fp80 noundef %1526, x86_fp80 noundef %1527)
          to label %1528 unwind label %1529

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

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

1533:                                             ; preds = %1528, %1519
  br label %1534

1534:                                             ; preds = %1533, %1515
  br label %1535

1535:                                             ; preds = %1534, %1482
  %1536 = load i8, ptr %123, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc i8 %1536 to i1
  br i1 %1537, label %1538, label %1550

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

1539:                                             ; preds = %1538
  %1540 = load x86_fp80, ptr %120, align 16, !tbaa !15
  %1541 = load x86_fp80, ptr %122, align 16, !tbaa !15
  %1542 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1543 = fneg x86_fp80 %1542
  %1544 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %125, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1540, x86_fp80 noundef %1541, x86_fp80 noundef %1543, x86_fp80 noundef %1544)
          to label %1545 unwind label %1546

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

1546:                                             ; preds = %1539
  %1547 = landingpad { ptr, i32 }
          cleanup
  %1548 = extractvalue { ptr, i32 } %1547, 0
  store ptr %1548, ptr %4, align 8
  %1549 = extractvalue { ptr, i32 } %1547, 1
  store i32 %1549, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1583

1550:                                             ; preds = %1545, %1535
  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
  %1551 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1552 = add nsw i32 %1551, 1
  store i32 %1552, 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 %1553 unwind label %1587

1553:                                             ; preds = %1550
  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 16, ptr %128) #7
  %1554 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1555 = fneg x86_fp80 %1554
  %1556 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1557 = fneg x86_fp80 %1556
  %1558 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1555, x86_fp80 noundef %1557) #7
  store x86_fp80 %1558, ptr %128, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #7
  %1559 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1560 = fneg x86_fp80 %1559
  %1561 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1562 = fneg x86_fp80 %1561
  %1563 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %1560, x86_fp80 noundef %1562)
          to label %1564 unwind label %1591

1564:                                             ; preds = %1553
  store x86_fp80 %1563, ptr %129, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #7
  %1565 = load x86_fp80, ptr %128, align 16, !tbaa !15
  %1566 = load x86_fp80, ptr %129, align 16, !tbaa !15
  %1567 = fsub x86_fp80 %1565, %1566
  %1568 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1567)
          to label %1569 unwind label %1595

1569:                                             ; preds = %1564
  %1570 = load x86_fp80, ptr %129, align 16, !tbaa !15
  %1571 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1570)
          to label %1572 unwind label %1595

1572:                                             ; preds = %1569
  %1573 = fadd x86_fp80 0xK3FFF8000000000000000, %1571
  %1574 = fdiv x86_fp80 %1568, %1573
  store x86_fp80 %1574, ptr %130, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #7
  store i8 0, ptr %131, align 1, !tbaa !11
  %1575 = load x86_fp80, ptr %128, align 16, !tbaa !15
  %1576 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1575)
          to label %1577 unwind label %1599

1577:                                             ; preds = %1572
  br i1 %1576, label %1578, label %1603

1578:                                             ; preds = %1577
  %1579 = load x86_fp80, ptr %129, align 16, !tbaa !15
  %1580 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1579)
          to label %1581 unwind label %1599

1581:                                             ; preds = %1578
  br i1 %1580, label %1582, label %1603

1582:                                             ; preds = %1581
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1636

1583:                                             ; preds = %1546, %1529, %1499
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #7
  br label %1584

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

1585:                                             ; preds = %1584, %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 %1586

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

1587:                                             ; preds = %1550
  %1588 = landingpad { ptr, i32 }
          cleanup
  %1589 = extractvalue { ptr, i32 } %1588, 0
  store ptr %1589, ptr %4, align 8
  %1590 = extractvalue { ptr, i32 } %1588, 1
  store i32 %1590, 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 %1686

1591:                                             ; preds = %1553
  %1592 = landingpad { ptr, i32 }
          cleanup
  %1593 = extractvalue { ptr, i32 } %1592, 0
  store ptr %1593, ptr %4, align 8
  %1594 = extractvalue { ptr, i32 } %1592, 1
  store i32 %1594, ptr %5, align 4
  br label %1685

1595:                                             ; preds = %1569, %1564
  %1596 = landingpad { ptr, i32 }
          cleanup
  %1597 = extractvalue { ptr, i32 } %1596, 0
  store ptr %1597, ptr %4, align 8
  %1598 = extractvalue { ptr, i32 } %1596, 1
  store i32 %1598, ptr %5, align 4
  br label %1684

1599:                                             ; preds = %1639, %1620, %1607, %1603, %1578, %1572
  %1600 = landingpad { ptr, i32 }
          cleanup
  %1601 = extractvalue { ptr, i32 } %1600, 0
  store ptr %1601, ptr %4, align 8
  %1602 = extractvalue { ptr, i32 } %1600, 1
  store i32 %1602, ptr %5, align 4
  br label %1683

1603:                                             ; preds = %1581, %1577
  %1604 = load x86_fp80, ptr %128, align 16, !tbaa !15
  %1605 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1604)
          to label %1606 unwind label %1599

1606:                                             ; preds = %1603
  br i1 %1605, label %1616, label %1607

1607:                                             ; preds = %1606
  %1608 = load x86_fp80, ptr %128, align 16, !tbaa !15
  %1609 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1608)
          to label %1610 unwind label %1599

1610:                                             ; preds = %1607
  br i1 %1609, label %1611, label %1616

1611:                                             ; preds = %1610
  %1612 = load x86_fp80, ptr %128, align 16, !tbaa !15
  %1613 = load x86_fp80, ptr %129, align 16, !tbaa !15
  %1614 = fcmp oeq x86_fp80 %1612, %1613
  br i1 %1614, label %1615, label %1616

1615:                                             ; preds = %1611
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1635

1616:                                             ; preds = %1611, %1610, %1606
  %1617 = load x86_fp80, ptr %130, align 16, !tbaa !15
  %1618 = fcmp olt x86_fp80 %1617, 0xK3FD0B424DC35095CD800
  br i1 %1618, label %1619, label %1620

1619:                                             ; preds = %1616
  store i8 1, ptr %131, align 1, !tbaa !11
  br label %1634

1620:                                             ; preds = %1616
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1621 unwind label %1599

1621:                                             ; preds = %1620
  %1622 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1623 = load x86_fp80, ptr %128, align 16, !tbaa !15
  %1624 = load x86_fp80, ptr %129, align 16, !tbaa !15
  %1625 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1626 = fneg x86_fp80 %1625
  %1627 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1628 = fneg x86_fp80 %1627
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %132, i32 noundef %1622, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1623, x86_fp80 noundef %1624, x86_fp80 noundef %1626, x86_fp80 noundef %1628)
          to label %1629 unwind label %1630

1629:                                             ; preds = %1621
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1634

1630:                                             ; preds = %1621
  %1631 = landingpad { ptr, i32 }
          cleanup
  %1632 = extractvalue { ptr, i32 } %1631, 0
  store ptr %1632, ptr %4, align 8
  %1633 = extractvalue { ptr, i32 } %1631, 1
  store i32 %1633, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1683

1634:                                             ; preds = %1629, %1619
  br label %1635

1635:                                             ; preds = %1634, %1615
  br label %1636

1636:                                             ; preds = %1635, %1582
  %1637 = load i8, ptr %131, align 1, !tbaa !11, !range !13, !noundef !14
  %1638 = trunc i8 %1637 to i1
  br i1 %1638, label %1639, label %1652

1639:                                             ; preds = %1636
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1640 unwind label %1599

1640:                                             ; preds = %1639
  %1641 = load x86_fp80, ptr %128, align 16, !tbaa !15
  %1642 = load x86_fp80, ptr %130, align 16, !tbaa !15
  %1643 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1644 = fneg x86_fp80 %1643
  %1645 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1646 = fneg x86_fp80 %1645
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %133, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1641, x86_fp80 noundef %1642, x86_fp80 noundef %1644, x86_fp80 noundef %1646)
          to label %1647 unwind label %1648

1647:                                             ; preds = %1640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1652

1648:                                             ; preds = %1640
  %1649 = landingpad { ptr, i32 }
          cleanup
  %1650 = extractvalue { ptr, i32 } %1649, 0
  store ptr %1650, ptr %4, align 8
  %1651 = extractvalue { ptr, i32 } %1649, 1
  store i32 %1651, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1683

1652:                                             ; preds = %1647, %1636
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %1653 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1654 = add nsw i32 %1653, 1
  store i32 %1654, 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 %1655 unwind label %1687

1655:                                             ; preds = %1652
  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 16, ptr %136) #7
  %1656 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1657 = fneg x86_fp80 %1656
  %1658 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1659 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1657, x86_fp80 noundef %1658) #7
  store x86_fp80 %1659, ptr %136, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %137) #7
  %1660 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1661 = fneg x86_fp80 %1660
  %1662 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1663 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %1661, x86_fp80 noundef %1662)
          to label %1664 unwind label %1691

1664:                                             ; preds = %1655
  store x86_fp80 %1663, ptr %137, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %138) #7
  %1665 = load x86_fp80, ptr %136, align 16, !tbaa !15
  %1666 = load x86_fp80, ptr %137, align 16, !tbaa !15
  %1667 = fsub x86_fp80 %1665, %1666
  %1668 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1667)
          to label %1669 unwind label %1695

1669:                                             ; preds = %1664
  %1670 = load x86_fp80, ptr %137, align 16, !tbaa !15
  %1671 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1670)
          to label %1672 unwind label %1695

1672:                                             ; preds = %1669
  %1673 = fadd x86_fp80 0xK3FFF8000000000000000, %1671
  %1674 = fdiv x86_fp80 %1668, %1673
  store x86_fp80 %1674, ptr %138, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #7
  store i8 0, ptr %139, align 1, !tbaa !11
  %1675 = load x86_fp80, ptr %136, align 16, !tbaa !15
  %1676 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1675)
          to label %1677 unwind label %1699

1677:                                             ; preds = %1672
  br i1 %1676, label %1678, label %1703

1678:                                             ; preds = %1677
  %1679 = load x86_fp80, ptr %137, align 16, !tbaa !15
  %1680 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1679)
          to label %1681 unwind label %1699

1681:                                             ; preds = %1678
  br i1 %1680, label %1682, label %1703

1682:                                             ; preds = %1681
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1735

1683:                                             ; preds = %1648, %1630, %1599
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #7
  br label %1684

1684:                                             ; preds = %1683, %1595
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #7
  br label %1685

1685:                                             ; preds = %1684, %1591
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %1686

1686:                                             ; preds = %1685, %1587
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  br label %2878

1687:                                             ; preds = %1652
  %1688 = landingpad { ptr, i32 }
          cleanup
  %1689 = extractvalue { ptr, i32 } %1688, 0
  store ptr %1689, ptr %4, align 8
  %1690 = extractvalue { ptr, i32 } %1688, 1
  store i32 %1690, 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 %1780

1691:                                             ; preds = %1655
  %1692 = landingpad { ptr, i32 }
          cleanup
  %1693 = extractvalue { ptr, i32 } %1692, 0
  store ptr %1693, ptr %4, align 8
  %1694 = extractvalue { ptr, i32 } %1692, 1
  store i32 %1694, ptr %5, align 4
  br label %1779

1695:                                             ; preds = %1669, %1664
  %1696 = landingpad { ptr, i32 }
          cleanup
  %1697 = extractvalue { ptr, i32 } %1696, 0
  store ptr %1697, ptr %4, align 8
  %1698 = extractvalue { ptr, i32 } %1696, 1
  store i32 %1698, ptr %5, align 4
  br label %1778

1699:                                             ; preds = %1738, %1720, %1707, %1703, %1678, %1672
  %1700 = landingpad { ptr, i32 }
          cleanup
  %1701 = extractvalue { ptr, i32 } %1700, 0
  store ptr %1701, ptr %4, align 8
  %1702 = extractvalue { ptr, i32 } %1700, 1
  store i32 %1702, ptr %5, align 4
  br label %1777

1703:                                             ; preds = %1681, %1677
  %1704 = load x86_fp80, ptr %136, align 16, !tbaa !15
  %1705 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1704)
          to label %1706 unwind label %1699

1706:                                             ; preds = %1703
  br i1 %1705, label %1716, label %1707

1707:                                             ; preds = %1706
  %1708 = load x86_fp80, ptr %136, align 16, !tbaa !15
  %1709 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1708)
          to label %1710 unwind label %1699

1710:                                             ; preds = %1707
  br i1 %1709, label %1711, label %1716

1711:                                             ; preds = %1710
  %1712 = load x86_fp80, ptr %136, align 16, !tbaa !15
  %1713 = load x86_fp80, ptr %137, align 16, !tbaa !15
  %1714 = fcmp oeq x86_fp80 %1712, %1713
  br i1 %1714, label %1715, label %1716

1715:                                             ; preds = %1711
  store i8 1, ptr %139, align 1, !tbaa !11
  br label %1734

1716:                                             ; preds = %1711, %1710, %1706
  %1717 = load x86_fp80, ptr %138, align 16, !tbaa !15
  %1718 = fcmp olt x86_fp80 %1717, 0xK3FD0B424DC35095CD800
  br i1 %1718, label %1719, label %1720

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

1720:                                             ; preds = %1716
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1721 unwind label %1699

1721:                                             ; preds = %1720
  %1722 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1723 = load x86_fp80, ptr %136, align 16, !tbaa !15
  %1724 = load x86_fp80, ptr %137, align 16, !tbaa !15
  %1725 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1726 = fneg x86_fp80 %1725
  %1727 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %140, i32 noundef %1722, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1723, x86_fp80 noundef %1724, x86_fp80 noundef %1726, x86_fp80 noundef %1727)
          to label %1728 unwind label %1729

1728:                                             ; preds = %1721
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1733

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

1733:                                             ; preds = %1728, %1719
  br label %1734

1734:                                             ; preds = %1733, %1715
  br label %1735

1735:                                             ; preds = %1734, %1682
  %1736 = load i8, ptr %139, align 1, !tbaa !11, !range !13, !noundef !14
  %1737 = trunc i8 %1736 to i1
  br i1 %1737, label %1738, label %1750

1738:                                             ; preds = %1735
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1739 unwind label %1699

1739:                                             ; preds = %1738
  %1740 = load x86_fp80, ptr %136, align 16, !tbaa !15
  %1741 = load x86_fp80, ptr %138, align 16, !tbaa !15
  %1742 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1743 = fneg x86_fp80 %1742
  %1744 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %141, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1740, x86_fp80 noundef %1741, x86_fp80 noundef %1743, x86_fp80 noundef %1744)
          to label %1745 unwind label %1746

1745:                                             ; preds = %1739
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1750

1746:                                             ; preds = %1739
  %1747 = landingpad { ptr, i32 }
          cleanup
  %1748 = extractvalue { ptr, i32 } %1747, 0
  store ptr %1748, ptr %4, align 8
  %1749 = extractvalue { ptr, i32 } %1747, 1
  store i32 %1749, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1777

1750:                                             ; preds = %1745, %1735
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %1751 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1752 = add nsw i32 %1751, 1
  store i32 %1752, 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 %1753 unwind label %1781

1753:                                             ; preds = %1750
  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 16, ptr %144) #7
  %1754 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1755 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1754, double noundef 0.000000e+00) #7
  store x86_fp80 %1755, ptr %144, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %145) #7
  %1756 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1757 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1756, double noundef 0.000000e+00)
          to label %1758 unwind label %1785

1758:                                             ; preds = %1753
  store x86_fp80 %1757, ptr %145, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %146) #7
  %1759 = load x86_fp80, ptr %144, align 16, !tbaa !15
  %1760 = load x86_fp80, ptr %145, align 16, !tbaa !15
  %1761 = fsub x86_fp80 %1759, %1760
  %1762 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1761)
          to label %1763 unwind label %1789

1763:                                             ; preds = %1758
  %1764 = load x86_fp80, ptr %145, align 16, !tbaa !15
  %1765 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1764)
          to label %1766 unwind label %1789

1766:                                             ; preds = %1763
  %1767 = fadd x86_fp80 0xK3FFF8000000000000000, %1765
  %1768 = fdiv x86_fp80 %1762, %1767
  store x86_fp80 %1768, ptr %146, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #7
  store i8 0, ptr %147, align 1, !tbaa !11
  %1769 = load x86_fp80, ptr %144, align 16, !tbaa !15
  %1770 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1769)
          to label %1771 unwind label %1793

1771:                                             ; preds = %1766
  br i1 %1770, label %1772, label %1797

1772:                                             ; preds = %1771
  %1773 = load x86_fp80, ptr %145, align 16, !tbaa !15
  %1774 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1773)
          to label %1775 unwind label %1793

1775:                                             ; preds = %1772
  br i1 %1774, label %1776, label %1797

1776:                                             ; preds = %1775
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %1827

1777:                                             ; preds = %1746, %1729, %1699
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  br label %1778

1778:                                             ; preds = %1777, %1695
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #7
  br label %1779

1779:                                             ; preds = %1778, %1691
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %136) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  br label %1780

1780:                                             ; preds = %1779, %1687
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  br label %2878

1781:                                             ; preds = %1750
  %1782 = landingpad { ptr, i32 }
          cleanup
  %1783 = extractvalue { ptr, i32 } %1782, 0
  store ptr %1783, ptr %4, align 8
  %1784 = extractvalue { ptr, i32 } %1782, 1
  store i32 %1784, 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 %1870

1785:                                             ; preds = %1753
  %1786 = landingpad { ptr, i32 }
          cleanup
  %1787 = extractvalue { ptr, i32 } %1786, 0
  store ptr %1787, ptr %4, align 8
  %1788 = extractvalue { ptr, i32 } %1786, 1
  store i32 %1788, ptr %5, align 4
  br label %1869

1789:                                             ; preds = %1763, %1758
  %1790 = landingpad { ptr, i32 }
          cleanup
  %1791 = extractvalue { ptr, i32 } %1790, 0
  store ptr %1791, ptr %4, align 8
  %1792 = extractvalue { ptr, i32 } %1790, 1
  store i32 %1792, ptr %5, align 4
  br label %1868

1793:                                             ; preds = %1830, %1814, %1801, %1797, %1772, %1766
  %1794 = landingpad { ptr, i32 }
          cleanup
  %1795 = extractvalue { ptr, i32 } %1794, 0
  store ptr %1795, ptr %4, align 8
  %1796 = extractvalue { ptr, i32 } %1794, 1
  store i32 %1796, ptr %5, align 4
  br label %1867

1797:                                             ; preds = %1775, %1771
  %1798 = load x86_fp80, ptr %144, align 16, !tbaa !15
  %1799 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1798)
          to label %1800 unwind label %1793

1800:                                             ; preds = %1797
  br i1 %1799, label %1810, label %1801

1801:                                             ; preds = %1800
  %1802 = load x86_fp80, ptr %144, align 16, !tbaa !15
  %1803 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1802)
          to label %1804 unwind label %1793

1804:                                             ; preds = %1801
  br i1 %1803, label %1805, label %1810

1805:                                             ; preds = %1804
  %1806 = load x86_fp80, ptr %144, align 16, !tbaa !15
  %1807 = load x86_fp80, ptr %145, align 16, !tbaa !15
  %1808 = fcmp oeq x86_fp80 %1806, %1807
  br i1 %1808, label %1809, label %1810

1809:                                             ; preds = %1805
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %1826

1810:                                             ; preds = %1805, %1804, %1800
  %1811 = load x86_fp80, ptr %146, align 16, !tbaa !15
  %1812 = fcmp olt x86_fp80 %1811, 0xK3FD0B424DC35095CD800
  br i1 %1812, label %1813, label %1814

1813:                                             ; preds = %1810
  store i8 1, ptr %147, align 1, !tbaa !11
  br label %1825

1814:                                             ; preds = %1810
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1815 unwind label %1793

1815:                                             ; preds = %1814
  %1816 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1817 = load x86_fp80, ptr %144, align 16, !tbaa !15
  %1818 = load x86_fp80, ptr %145, align 16, !tbaa !15
  %1819 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %148, i32 noundef %1816, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1817, x86_fp80 noundef %1818, x86_fp80 noundef %1819, double noundef 0.000000e+00)
          to label %1820 unwind label %1821

1820:                                             ; preds = %1815
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %1825

1821:                                             ; preds = %1815
  %1822 = landingpad { ptr, i32 }
          cleanup
  %1823 = extractvalue { ptr, i32 } %1822, 0
  store ptr %1823, ptr %4, align 8
  %1824 = extractvalue { ptr, i32 } %1822, 1
  store i32 %1824, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %1867

1825:                                             ; preds = %1820, %1813
  br label %1826

1826:                                             ; preds = %1825, %1809
  br label %1827

1827:                                             ; preds = %1826, %1776
  %1828 = load i8, ptr %147, align 1, !tbaa !11, !range !13, !noundef !14
  %1829 = trunc i8 %1828 to i1
  br i1 %1829, label %1830, label %1840

1830:                                             ; preds = %1827
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1831 unwind label %1793

1831:                                             ; preds = %1830
  %1832 = load x86_fp80, ptr %144, align 16, !tbaa !15
  %1833 = load x86_fp80, ptr %146, align 16, !tbaa !15
  %1834 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %149, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1832, x86_fp80 noundef %1833, x86_fp80 noundef %1834, double noundef 0.000000e+00)
          to label %1835 unwind label %1836

1835:                                             ; preds = %1831
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %1840

1836:                                             ; preds = %1831
  %1837 = landingpad { ptr, i32 }
          cleanup
  %1838 = extractvalue { ptr, i32 } %1837, 0
  store ptr %1838, ptr %4, align 8
  %1839 = extractvalue { ptr, i32 } %1837, 1
  store i32 %1839, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %1867

1840:                                             ; preds = %1835, %1827
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %1841 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, 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 %1843 unwind label %1871

1843:                                             ; preds = %1840
  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 16, ptr %152) #7
  %1844 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1845 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1844, double noundef -1.000000e+00) #7
  store x86_fp80 %1845, ptr %152, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %153) #7
  %1846 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1847 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1846, double noundef -1.000000e+00)
          to label %1848 unwind label %1875

1848:                                             ; preds = %1843
  store x86_fp80 %1847, ptr %153, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %154) #7
  %1849 = load x86_fp80, ptr %152, align 16, !tbaa !15
  %1850 = load x86_fp80, ptr %153, align 16, !tbaa !15
  %1851 = fsub x86_fp80 %1849, %1850
  %1852 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1851)
          to label %1853 unwind label %1879

1853:                                             ; preds = %1848
  %1854 = load x86_fp80, ptr %153, align 16, !tbaa !15
  %1855 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1854)
          to label %1856 unwind label %1879

1856:                                             ; preds = %1853
  %1857 = fadd x86_fp80 0xK3FFF8000000000000000, %1855
  %1858 = fdiv x86_fp80 %1852, %1857
  store x86_fp80 %1858, ptr %154, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #7
  store i8 0, ptr %155, align 1, !tbaa !11
  %1859 = load x86_fp80, ptr %152, align 16, !tbaa !15
  %1860 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1859)
          to label %1861 unwind label %1883

1861:                                             ; preds = %1856
  br i1 %1860, label %1862, label %1887

1862:                                             ; preds = %1861
  %1863 = load x86_fp80, ptr %153, align 16, !tbaa !15
  %1864 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1863)
          to label %1865 unwind label %1883

1865:                                             ; preds = %1862
  br i1 %1864, label %1866, label %1887

1866:                                             ; preds = %1865
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %1917

1867:                                             ; preds = %1836, %1821, %1793
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  br label %1868

1868:                                             ; preds = %1867, %1789
  call void @llvm.lifetime.end.p0(i64 16, ptr %146) #7
  br label %1869

1869:                                             ; preds = %1868, %1785
  call void @llvm.lifetime.end.p0(i64 16, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %1870

1870:                                             ; preds = %1869, %1781
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  br label %2878

1871:                                             ; preds = %1840
  %1872 = landingpad { ptr, i32 }
          cleanup
  %1873 = extractvalue { ptr, i32 } %1872, 0
  store ptr %1873, ptr %4, align 8
  %1874 = extractvalue { ptr, i32 } %1872, 1
  store i32 %1874, 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 %1960

1875:                                             ; preds = %1843
  %1876 = landingpad { ptr, i32 }
          cleanup
  %1877 = extractvalue { ptr, i32 } %1876, 0
  store ptr %1877, ptr %4, align 8
  %1878 = extractvalue { ptr, i32 } %1876, 1
  store i32 %1878, ptr %5, align 4
  br label %1959

1879:                                             ; preds = %1853, %1848
  %1880 = landingpad { ptr, i32 }
          cleanup
  %1881 = extractvalue { ptr, i32 } %1880, 0
  store ptr %1881, ptr %4, align 8
  %1882 = extractvalue { ptr, i32 } %1880, 1
  store i32 %1882, ptr %5, align 4
  br label %1958

1883:                                             ; preds = %1920, %1904, %1891, %1887, %1862, %1856
  %1884 = landingpad { ptr, i32 }
          cleanup
  %1885 = extractvalue { ptr, i32 } %1884, 0
  store ptr %1885, ptr %4, align 8
  %1886 = extractvalue { ptr, i32 } %1884, 1
  store i32 %1886, ptr %5, align 4
  br label %1957

1887:                                             ; preds = %1865, %1861
  %1888 = load x86_fp80, ptr %152, align 16, !tbaa !15
  %1889 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1888)
          to label %1890 unwind label %1883

1890:                                             ; preds = %1887
  br i1 %1889, label %1900, label %1891

1891:                                             ; preds = %1890
  %1892 = load x86_fp80, ptr %152, align 16, !tbaa !15
  %1893 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1892)
          to label %1894 unwind label %1883

1894:                                             ; preds = %1891
  br i1 %1893, label %1895, label %1900

1895:                                             ; preds = %1894
  %1896 = load x86_fp80, ptr %152, align 16, !tbaa !15
  %1897 = load x86_fp80, ptr %153, align 16, !tbaa !15
  %1898 = fcmp oeq x86_fp80 %1896, %1897
  br i1 %1898, label %1899, label %1900

1899:                                             ; preds = %1895
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %1916

1900:                                             ; preds = %1895, %1894, %1890
  %1901 = load x86_fp80, ptr %154, align 16, !tbaa !15
  %1902 = fcmp olt x86_fp80 %1901, 0xK3FD0B424DC35095CD800
  br i1 %1902, label %1903, label %1904

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

1904:                                             ; preds = %1900
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1905 unwind label %1883

1905:                                             ; preds = %1904
  %1906 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1907 = load x86_fp80, ptr %152, align 16, !tbaa !15
  %1908 = load x86_fp80, ptr %153, align 16, !tbaa !15
  %1909 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %156, i32 noundef %1906, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1907, x86_fp80 noundef %1908, x86_fp80 noundef %1909, double noundef -1.000000e+00)
          to label %1910 unwind label %1911

1910:                                             ; preds = %1905
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1915

1911:                                             ; preds = %1905
  %1912 = landingpad { ptr, i32 }
          cleanup
  %1913 = extractvalue { ptr, i32 } %1912, 0
  store ptr %1913, ptr %4, align 8
  %1914 = extractvalue { ptr, i32 } %1912, 1
  store i32 %1914, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1957

1915:                                             ; preds = %1910, %1903
  br label %1916

1916:                                             ; preds = %1915, %1899
  br label %1917

1917:                                             ; preds = %1916, %1866
  %1918 = load i8, ptr %155, align 1, !tbaa !11, !range !13, !noundef !14
  %1919 = trunc i8 %1918 to i1
  br i1 %1919, label %1920, label %1930

1920:                                             ; preds = %1917
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1921 unwind label %1883

1921:                                             ; preds = %1920
  %1922 = load x86_fp80, ptr %152, align 16, !tbaa !15
  %1923 = load x86_fp80, ptr %154, align 16, !tbaa !15
  %1924 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %157, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1922, x86_fp80 noundef %1923, x86_fp80 noundef %1924, double noundef -1.000000e+00)
          to label %1925 unwind label %1926

1925:                                             ; preds = %1921
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %1930

1926:                                             ; preds = %1921
  %1927 = landingpad { ptr, i32 }
          cleanup
  %1928 = extractvalue { ptr, i32 } %1927, 0
  store ptr %1928, ptr %4, align 8
  %1929 = extractvalue { ptr, i32 } %1927, 1
  store i32 %1929, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %1957

1930:                                             ; preds = %1925, %1917
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %1931 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1932 = add nsw i32 %1931, 1
  store i32 %1932, 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 %1933 unwind label %1961

1933:                                             ; preds = %1930
  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 16, ptr %160) #7
  %1934 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1935 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1934, double noundef 1.000000e+00) #7
  store x86_fp80 %1935, ptr %160, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %161) #7
  %1936 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1937 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1936, double noundef 1.000000e+00)
          to label %1938 unwind label %1965

1938:                                             ; preds = %1933
  store x86_fp80 %1937, ptr %161, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %162) #7
  %1939 = load x86_fp80, ptr %160, align 16, !tbaa !15
  %1940 = load x86_fp80, ptr %161, align 16, !tbaa !15
  %1941 = fsub x86_fp80 %1939, %1940
  %1942 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1941)
          to label %1943 unwind label %1969

1943:                                             ; preds = %1938
  %1944 = load x86_fp80, ptr %161, align 16, !tbaa !15
  %1945 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1944)
          to label %1946 unwind label %1969

1946:                                             ; preds = %1943
  %1947 = fadd x86_fp80 0xK3FFF8000000000000000, %1945
  %1948 = fdiv x86_fp80 %1942, %1947
  store x86_fp80 %1948, ptr %162, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #7
  store i8 0, ptr %163, align 1, !tbaa !11
  %1949 = load x86_fp80, ptr %160, align 16, !tbaa !15
  %1950 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1949)
          to label %1951 unwind label %1973

1951:                                             ; preds = %1946
  br i1 %1950, label %1952, label %1977

1952:                                             ; preds = %1951
  %1953 = load x86_fp80, ptr %161, align 16, !tbaa !15
  %1954 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1953)
          to label %1955 unwind label %1973

1955:                                             ; preds = %1952
  br i1 %1954, label %1956, label %1977

1956:                                             ; preds = %1955
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %2007

1957:                                             ; preds = %1926, %1911, %1883
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #7
  br label %1958

1958:                                             ; preds = %1957, %1879
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #7
  br label %1959

1959:                                             ; preds = %1958, %1875
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  br label %1960

1960:                                             ; preds = %1959, %1871
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #7
  br label %2878

1961:                                             ; preds = %1930
  %1962 = landingpad { ptr, i32 }
          cleanup
  %1963 = extractvalue { ptr, i32 } %1962, 0
  store ptr %1963, ptr %4, align 8
  %1964 = extractvalue { ptr, i32 } %1962, 1
  store i32 %1964, 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 %2052

1965:                                             ; preds = %1933
  %1966 = landingpad { ptr, i32 }
          cleanup
  %1967 = extractvalue { ptr, i32 } %1966, 0
  store ptr %1967, ptr %4, align 8
  %1968 = extractvalue { ptr, i32 } %1966, 1
  store i32 %1968, ptr %5, align 4
  br label %2051

1969:                                             ; preds = %1943, %1938
  %1970 = landingpad { ptr, i32 }
          cleanup
  %1971 = extractvalue { ptr, i32 } %1970, 0
  store ptr %1971, ptr %4, align 8
  %1972 = extractvalue { ptr, i32 } %1970, 1
  store i32 %1972, ptr %5, align 4
  br label %2050

1973:                                             ; preds = %2010, %1994, %1981, %1977, %1952, %1946
  %1974 = landingpad { ptr, i32 }
          cleanup
  %1975 = extractvalue { ptr, i32 } %1974, 0
  store ptr %1975, ptr %4, align 8
  %1976 = extractvalue { ptr, i32 } %1974, 1
  store i32 %1976, ptr %5, align 4
  br label %2049

1977:                                             ; preds = %1955, %1951
  %1978 = load x86_fp80, ptr %160, align 16, !tbaa !15
  %1979 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1978)
          to label %1980 unwind label %1973

1980:                                             ; preds = %1977
  br i1 %1979, label %1990, label %1981

1981:                                             ; preds = %1980
  %1982 = load x86_fp80, ptr %160, align 16, !tbaa !15
  %1983 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1982)
          to label %1984 unwind label %1973

1984:                                             ; preds = %1981
  br i1 %1983, label %1985, label %1990

1985:                                             ; preds = %1984
  %1986 = load x86_fp80, ptr %160, align 16, !tbaa !15
  %1987 = load x86_fp80, ptr %161, align 16, !tbaa !15
  %1988 = fcmp oeq x86_fp80 %1986, %1987
  br i1 %1988, label %1989, label %1990

1989:                                             ; preds = %1985
  store i8 1, ptr %163, align 1, !tbaa !11
  br label %2006

1990:                                             ; preds = %1985, %1984, %1980
  %1991 = load x86_fp80, ptr %162, align 16, !tbaa !15
  %1992 = fcmp olt x86_fp80 %1991, 0xK3FD0B424DC35095CD800
  br i1 %1992, label %1993, label %1994

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

1994:                                             ; preds = %1990
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1995 unwind label %1973

1995:                                             ; preds = %1994
  %1996 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1997 = load x86_fp80, ptr %160, align 16, !tbaa !15
  %1998 = load x86_fp80, ptr %161, align 16, !tbaa !15
  %1999 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %164, i32 noundef %1996, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1997, x86_fp80 noundef %1998, x86_fp80 noundef %1999, double noundef 1.000000e+00)
          to label %2000 unwind label %2001

2000:                                             ; preds = %1995
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %2005

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

2005:                                             ; preds = %2000, %1993
  br label %2006

2006:                                             ; preds = %2005, %1989
  br label %2007

2007:                                             ; preds = %2006, %1956
  %2008 = load i8, ptr %163, align 1, !tbaa !11, !range !13, !noundef !14
  %2009 = trunc i8 %2008 to i1
  br i1 %2009, label %2010, label %2020

2010:                                             ; preds = %2007
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %2011 unwind label %1973

2011:                                             ; preds = %2010
  %2012 = load x86_fp80, ptr %160, align 16, !tbaa !15
  %2013 = load x86_fp80, ptr %162, align 16, !tbaa !15
  %2014 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %165, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2012, x86_fp80 noundef %2013, x86_fp80 noundef %2014, double noundef 1.000000e+00)
          to label %2015 unwind label %2016

2015:                                             ; preds = %2011
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %2020

2016:                                             ; preds = %2011
  %2017 = landingpad { ptr, i32 }
          cleanup
  %2018 = extractvalue { ptr, i32 } %2017, 0
  store ptr %2018, ptr %4, align 8
  %2019 = extractvalue { ptr, i32 } %2017, 1
  store i32 %2019, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %2049

2020:                                             ; preds = %2015, %2007
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %162) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2021 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2022 = add nsw i32 %2021, 1
  store i32 %2022, 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 %2023 unwind label %2053

2023:                                             ; preds = %2020
  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 16, ptr %168) #7
  %2024 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2025 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2026 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2024, x86_fp80 noundef %2025) #7
  store x86_fp80 %2026, ptr %168, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %169) #7
  %2027 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2028 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2029 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %2027, x86_fp80 noundef %2028)
          to label %2030 unwind label %2057

2030:                                             ; preds = %2023
  store x86_fp80 %2029, ptr %169, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %170) #7
  %2031 = load x86_fp80, ptr %168, align 16, !tbaa !15
  %2032 = load x86_fp80, ptr %169, align 16, !tbaa !15
  %2033 = fsub x86_fp80 %2031, %2032
  %2034 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2033)
          to label %2035 unwind label %2061

2035:                                             ; preds = %2030
  %2036 = load x86_fp80, ptr %169, align 16, !tbaa !15
  %2037 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2036)
          to label %2038 unwind label %2061

2038:                                             ; preds = %2035
  %2039 = fadd x86_fp80 0xK3FFF8000000000000000, %2037
  %2040 = fdiv x86_fp80 %2034, %2039
  store x86_fp80 %2040, ptr %170, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #7
  store i8 0, ptr %171, align 1, !tbaa !11
  %2041 = load x86_fp80, ptr %168, align 16, !tbaa !15
  %2042 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2041)
          to label %2043 unwind label %2065

2043:                                             ; preds = %2038
  br i1 %2042, label %2044, label %2069

2044:                                             ; preds = %2043
  %2045 = load x86_fp80, ptr %169, align 16, !tbaa !15
  %2046 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2045)
          to label %2047 unwind label %2065

2047:                                             ; preds = %2044
  br i1 %2046, label %2048, label %2069

2048:                                             ; preds = %2047
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2100

2049:                                             ; preds = %2016, %2001, %1973
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  br label %2050

2050:                                             ; preds = %2049, %1969
  call void @llvm.lifetime.end.p0(i64 16, ptr %162) #7
  br label %2051

2051:                                             ; preds = %2050, %1965
  call void @llvm.lifetime.end.p0(i64 16, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  br label %2052

2052:                                             ; preds = %2051, %1961
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  br label %2878

2053:                                             ; preds = %2020
  %2054 = landingpad { ptr, i32 }
          cleanup
  %2055 = extractvalue { ptr, i32 } %2054, 0
  store ptr %2055, ptr %4, align 8
  %2056 = extractvalue { ptr, i32 } %2054, 1
  store i32 %2056, 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 %2148

2057:                                             ; preds = %2023
  %2058 = landingpad { ptr, i32 }
          cleanup
  %2059 = extractvalue { ptr, i32 } %2058, 0
  store ptr %2059, ptr %4, align 8
  %2060 = extractvalue { ptr, i32 } %2058, 1
  store i32 %2060, ptr %5, align 4
  br label %2147

2061:                                             ; preds = %2035, %2030
  %2062 = landingpad { ptr, i32 }
          cleanup
  %2063 = extractvalue { ptr, i32 } %2062, 0
  store ptr %2063, ptr %4, align 8
  %2064 = extractvalue { ptr, i32 } %2062, 1
  store i32 %2064, ptr %5, align 4
  br label %2146

2065:                                             ; preds = %2103, %2086, %2073, %2069, %2044, %2038
  %2066 = landingpad { ptr, i32 }
          cleanup
  %2067 = extractvalue { ptr, i32 } %2066, 0
  store ptr %2067, ptr %4, align 8
  %2068 = extractvalue { ptr, i32 } %2066, 1
  store i32 %2068, ptr %5, align 4
  br label %2145

2069:                                             ; preds = %2047, %2043
  %2070 = load x86_fp80, ptr %168, align 16, !tbaa !15
  %2071 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2070)
          to label %2072 unwind label %2065

2072:                                             ; preds = %2069
  br i1 %2071, label %2082, label %2073

2073:                                             ; preds = %2072
  %2074 = load x86_fp80, ptr %168, align 16, !tbaa !15
  %2075 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2074)
          to label %2076 unwind label %2065

2076:                                             ; preds = %2073
  br i1 %2075, label %2077, label %2082

2077:                                             ; preds = %2076
  %2078 = load x86_fp80, ptr %168, align 16, !tbaa !15
  %2079 = load x86_fp80, ptr %169, align 16, !tbaa !15
  %2080 = fcmp oeq x86_fp80 %2078, %2079
  br i1 %2080, label %2081, label %2082

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

2082:                                             ; preds = %2077, %2076, %2072
  %2083 = load x86_fp80, ptr %170, align 16, !tbaa !15
  %2084 = fcmp olt x86_fp80 %2083, 0xK3FD0B424DC35095CD800
  br i1 %2084, label %2085, label %2086

2085:                                             ; preds = %2082
  store i8 1, ptr %171, align 1, !tbaa !11
  br label %2098

2086:                                             ; preds = %2082
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %2087 unwind label %2065

2087:                                             ; preds = %2086
  %2088 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2089 = load x86_fp80, ptr %168, align 16, !tbaa !15
  %2090 = load x86_fp80, ptr %169, align 16, !tbaa !15
  %2091 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2092 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %172, i32 noundef %2088, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2089, x86_fp80 noundef %2090, x86_fp80 noundef %2091, x86_fp80 noundef %2092)
          to label %2093 unwind label %2094

2093:                                             ; preds = %2087
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %2098

2094:                                             ; preds = %2087
  %2095 = landingpad { ptr, i32 }
          cleanup
  %2096 = extractvalue { ptr, i32 } %2095, 0
  store ptr %2096, ptr %4, align 8
  %2097 = extractvalue { ptr, i32 } %2095, 1
  store i32 %2097, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %2145

2098:                                             ; preds = %2093, %2085
  br label %2099

2099:                                             ; preds = %2098, %2081
  br label %2100

2100:                                             ; preds = %2099, %2048
  %2101 = load i8, ptr %171, align 1, !tbaa !11, !range !13, !noundef !14
  %2102 = trunc i8 %2101 to i1
  br i1 %2102, label %2103, label %2114

2103:                                             ; preds = %2100
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %2104 unwind label %2065

2104:                                             ; preds = %2103
  %2105 = load x86_fp80, ptr %168, align 16, !tbaa !15
  %2106 = load x86_fp80, ptr %170, align 16, !tbaa !15
  %2107 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2108 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %173, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2105, x86_fp80 noundef %2106, x86_fp80 noundef %2107, x86_fp80 noundef %2108)
          to label %2109 unwind label %2110

2109:                                             ; preds = %2104
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  br label %2114

2110:                                             ; preds = %2104
  %2111 = landingpad { ptr, i32 }
          cleanup
  %2112 = extractvalue { ptr, i32 } %2111, 0
  store ptr %2112, ptr %4, align 8
  %2113 = extractvalue { ptr, i32 } %2111, 1
  store i32 %2113, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  br label %2145

2114:                                             ; preds = %2109, %2100
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %170) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2115 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2116 = add nsw i32 %2115, 1
  store i32 %2116, 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 %2117 unwind label %2149

2117:                                             ; preds = %2114
  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
  %2118 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2119 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2120 = fneg x86_fp80 %2119
  %2121 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2118, x86_fp80 noundef %2120) #7
  store x86_fp80 %2121, ptr %176, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %177) #7
  %2122 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2123 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2124 = fneg x86_fp80 %2123
  %2125 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %2122, x86_fp80 noundef %2124)
          to label %2126 unwind label %2153

2126:                                             ; preds = %2117
  store x86_fp80 %2125, ptr %177, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %178) #7
  %2127 = load x86_fp80, ptr %176, align 16, !tbaa !15
  %2128 = load x86_fp80, ptr %177, align 16, !tbaa !15
  %2129 = fsub x86_fp80 %2127, %2128
  %2130 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2129)
          to label %2131 unwind label %2157

2131:                                             ; preds = %2126
  %2132 = load x86_fp80, ptr %177, align 16, !tbaa !15
  %2133 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2132)
          to label %2134 unwind label %2157

2134:                                             ; preds = %2131
  %2135 = fadd x86_fp80 0xK3FFF8000000000000000, %2133
  %2136 = fdiv x86_fp80 %2130, %2135
  store x86_fp80 %2136, ptr %178, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #7
  store i8 0, ptr %179, align 1, !tbaa !11
  %2137 = load x86_fp80, ptr %176, align 16, !tbaa !15
  %2138 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2137)
          to label %2139 unwind label %2161

2139:                                             ; preds = %2134
  br i1 %2138, label %2140, label %2165

2140:                                             ; preds = %2139
  %2141 = load x86_fp80, ptr %177, align 16, !tbaa !15
  %2142 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2141)
          to label %2143 unwind label %2161

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

2144:                                             ; preds = %2143
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2197

2145:                                             ; preds = %2110, %2094, %2065
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #7
  br label %2146

2146:                                             ; preds = %2145, %2061
  call void @llvm.lifetime.end.p0(i64 16, ptr %170) #7
  br label %2147

2147:                                             ; preds = %2146, %2057
  call void @llvm.lifetime.end.p0(i64 16, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %168) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %2148

2148:                                             ; preds = %2147, %2053
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  br label %2878

2149:                                             ; preds = %2114
  %2150 = landingpad { ptr, i32 }
          cleanup
  %2151 = extractvalue { ptr, i32 } %2150, 0
  store ptr %2151, ptr %4, align 8
  %2152 = extractvalue { ptr, i32 } %2150, 1
  store i32 %2152, 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 %2244

2153:                                             ; preds = %2117
  %2154 = landingpad { ptr, i32 }
          cleanup
  %2155 = extractvalue { ptr, i32 } %2154, 0
  store ptr %2155, ptr %4, align 8
  %2156 = extractvalue { ptr, i32 } %2154, 1
  store i32 %2156, ptr %5, align 4
  br label %2243

2157:                                             ; preds = %2131, %2126
  %2158 = landingpad { ptr, i32 }
          cleanup
  %2159 = extractvalue { ptr, i32 } %2158, 0
  store ptr %2159, ptr %4, align 8
  %2160 = extractvalue { ptr, i32 } %2158, 1
  store i32 %2160, ptr %5, align 4
  br label %2242

2161:                                             ; preds = %2200, %2182, %2169, %2165, %2140, %2134
  %2162 = landingpad { ptr, i32 }
          cleanup
  %2163 = extractvalue { ptr, i32 } %2162, 0
  store ptr %2163, ptr %4, align 8
  %2164 = extractvalue { ptr, i32 } %2162, 1
  store i32 %2164, ptr %5, align 4
  br label %2241

2165:                                             ; preds = %2143, %2139
  %2166 = load x86_fp80, ptr %176, align 16, !tbaa !15
  %2167 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2166)
          to label %2168 unwind label %2161

2168:                                             ; preds = %2165
  br i1 %2167, label %2178, label %2169

2169:                                             ; preds = %2168
  %2170 = load x86_fp80, ptr %176, align 16, !tbaa !15
  %2171 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2170)
          to label %2172 unwind label %2161

2172:                                             ; preds = %2169
  br i1 %2171, label %2173, label %2178

2173:                                             ; preds = %2172
  %2174 = load x86_fp80, ptr %176, align 16, !tbaa !15
  %2175 = load x86_fp80, ptr %177, align 16, !tbaa !15
  %2176 = fcmp oeq x86_fp80 %2174, %2175
  br i1 %2176, label %2177, label %2178

2177:                                             ; preds = %2173
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2196

2178:                                             ; preds = %2173, %2172, %2168
  %2179 = load x86_fp80, ptr %178, align 16, !tbaa !15
  %2180 = fcmp olt x86_fp80 %2179, 0xK3FD0B424DC35095CD800
  br i1 %2180, label %2181, label %2182

2181:                                             ; preds = %2178
  store i8 1, ptr %179, align 1, !tbaa !11
  br label %2195

2182:                                             ; preds = %2178
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %2183 unwind label %2161

2183:                                             ; preds = %2182
  %2184 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2185 = load x86_fp80, ptr %176, align 16, !tbaa !15
  %2186 = load x86_fp80, ptr %177, align 16, !tbaa !15
  %2187 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2188 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2189 = fneg x86_fp80 %2188
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %180, i32 noundef %2184, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2185, x86_fp80 noundef %2186, x86_fp80 noundef %2187, x86_fp80 noundef %2189)
          to label %2190 unwind label %2191

2190:                                             ; preds = %2183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %2195

2191:                                             ; preds = %2183
  %2192 = landingpad { ptr, i32 }
          cleanup
  %2193 = extractvalue { ptr, i32 } %2192, 0
  store ptr %2193, ptr %4, align 8
  %2194 = extractvalue { ptr, i32 } %2192, 1
  store i32 %2194, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %2241

2195:                                             ; preds = %2190, %2181
  br label %2196

2196:                                             ; preds = %2195, %2177
  br label %2197

2197:                                             ; preds = %2196, %2144
  %2198 = load i8, ptr %179, align 1, !tbaa !11, !range !13, !noundef !14
  %2199 = trunc i8 %2198 to i1
  br i1 %2199, label %2200, label %2212

2200:                                             ; preds = %2197
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %2201 unwind label %2161

2201:                                             ; preds = %2200
  %2202 = load x86_fp80, ptr %176, align 16, !tbaa !15
  %2203 = load x86_fp80, ptr %178, align 16, !tbaa !15
  %2204 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2205 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2206 = fneg x86_fp80 %2205
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %181, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2202, x86_fp80 noundef %2203, x86_fp80 noundef %2204, x86_fp80 noundef %2206)
          to label %2207 unwind label %2208

2207:                                             ; preds = %2201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %2212

2208:                                             ; preds = %2201
  %2209 = landingpad { ptr, i32 }
          cleanup
  %2210 = extractvalue { ptr, i32 } %2209, 0
  store ptr %2210, ptr %4, align 8
  %2211 = extractvalue { ptr, i32 } %2209, 1
  store i32 %2211, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %2241

2212:                                             ; preds = %2207, %2197
  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
  %2213 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2214 = add nsw i32 %2213, 1
  store i32 %2214, 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 %2215 unwind label %2245

2215:                                             ; preds = %2212
  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
  %2216 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2217 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2218 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2216, x86_fp80 noundef %2217) #7
  store x86_fp80 %2218, ptr %184, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %185) #7
  %2219 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2220 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2221 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %2219, x86_fp80 noundef %2220)
          to label %2222 unwind label %2249

2222:                                             ; preds = %2215
  store x86_fp80 %2221, ptr %185, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %186) #7
  %2223 = load x86_fp80, ptr %184, align 16, !tbaa !15
  %2224 = load x86_fp80, ptr %185, align 16, !tbaa !15
  %2225 = fsub x86_fp80 %2223, %2224
  %2226 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2225)
          to label %2227 unwind label %2253

2227:                                             ; preds = %2222
  %2228 = load x86_fp80, ptr %185, align 16, !tbaa !15
  %2229 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2228)
          to label %2230 unwind label %2253

2230:                                             ; preds = %2227
  %2231 = fadd x86_fp80 0xK3FFF8000000000000000, %2229
  %2232 = fdiv x86_fp80 %2226, %2231
  store x86_fp80 %2232, ptr %186, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #7
  store i8 0, ptr %187, align 1, !tbaa !11
  %2233 = load x86_fp80, ptr %184, align 16, !tbaa !15
  %2234 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2233)
          to label %2235 unwind label %2257

2235:                                             ; preds = %2230
  br i1 %2234, label %2236, label %2261

2236:                                             ; preds = %2235
  %2237 = load x86_fp80, ptr %185, align 16, !tbaa !15
  %2238 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2237)
          to label %2239 unwind label %2257

2239:                                             ; preds = %2236
  br i1 %2238, label %2240, label %2261

2240:                                             ; preds = %2239
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2292

2241:                                             ; preds = %2208, %2191, %2161
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #7
  br label %2242

2242:                                             ; preds = %2241, %2157
  call void @llvm.lifetime.end.p0(i64 16, ptr %178) #7
  br label %2243

2243:                                             ; preds = %2242, %2153
  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 %2244

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

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

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

2253:                                             ; preds = %2227, %2222
  %2254 = landingpad { ptr, i32 }
          cleanup
  %2255 = extractvalue { ptr, i32 } %2254, 0
  store ptr %2255, ptr %4, align 8
  %2256 = extractvalue { ptr, i32 } %2254, 1
  store i32 %2256, ptr %5, align 4
  br label %2334

2257:                                             ; preds = %2295, %2278, %2265, %2261, %2236, %2230
  %2258 = landingpad { ptr, i32 }
          cleanup
  %2259 = extractvalue { ptr, i32 } %2258, 0
  store ptr %2259, ptr %4, align 8
  %2260 = extractvalue { ptr, i32 } %2258, 1
  store i32 %2260, ptr %5, align 4
  br label %2333

2261:                                             ; preds = %2239, %2235
  %2262 = load x86_fp80, ptr %184, align 16, !tbaa !15
  %2263 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2262)
          to label %2264 unwind label %2257

2264:                                             ; preds = %2261
  br i1 %2263, label %2274, label %2265

2265:                                             ; preds = %2264
  %2266 = load x86_fp80, ptr %184, align 16, !tbaa !15
  %2267 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2266)
          to label %2268 unwind label %2257

2268:                                             ; preds = %2265
  br i1 %2267, label %2269, label %2274

2269:                                             ; preds = %2268
  %2270 = load x86_fp80, ptr %184, align 16, !tbaa !15
  %2271 = load x86_fp80, ptr %185, align 16, !tbaa !15
  %2272 = fcmp oeq x86_fp80 %2270, %2271
  br i1 %2272, label %2273, label %2274

2273:                                             ; preds = %2269
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2291

2274:                                             ; preds = %2269, %2268, %2264
  %2275 = load x86_fp80, ptr %186, align 16, !tbaa !15
  %2276 = fcmp olt x86_fp80 %2275, 0xK3FD0B424DC35095CD800
  br i1 %2276, label %2277, label %2278

2277:                                             ; preds = %2274
  store i8 1, ptr %187, align 1, !tbaa !11
  br label %2290

2278:                                             ; preds = %2274
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %2279 unwind label %2257

2279:                                             ; preds = %2278
  %2280 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2281 = load x86_fp80, ptr %184, align 16, !tbaa !15
  %2282 = load x86_fp80, ptr %185, align 16, !tbaa !15
  %2283 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2284 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %188, i32 noundef %2280, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2281, x86_fp80 noundef %2282, x86_fp80 noundef %2283, x86_fp80 noundef %2284)
          to label %2285 unwind label %2286

2285:                                             ; preds = %2279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %2290

2286:                                             ; preds = %2279
  %2287 = landingpad { ptr, i32 }
          cleanup
  %2288 = extractvalue { ptr, i32 } %2287, 0
  store ptr %2288, ptr %4, align 8
  %2289 = extractvalue { ptr, i32 } %2287, 1
  store i32 %2289, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %2333

2290:                                             ; preds = %2285, %2277
  br label %2291

2291:                                             ; preds = %2290, %2273
  br label %2292

2292:                                             ; preds = %2291, %2240
  %2293 = load i8, ptr %187, align 1, !tbaa !11, !range !13, !noundef !14
  %2294 = trunc i8 %2293 to i1
  br i1 %2294, label %2295, label %2306

2295:                                             ; preds = %2292
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %2296 unwind label %2257

2296:                                             ; preds = %2295
  %2297 = load x86_fp80, ptr %184, align 16, !tbaa !15
  %2298 = load x86_fp80, ptr %186, align 16, !tbaa !15
  %2299 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2300 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %189, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2297, x86_fp80 noundef %2298, x86_fp80 noundef %2299, x86_fp80 noundef %2300)
          to label %2301 unwind label %2302

2301:                                             ; preds = %2296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  br label %2306

2302:                                             ; preds = %2296
  %2303 = landingpad { ptr, i32 }
          cleanup
  %2304 = extractvalue { ptr, i32 } %2303, 0
  store ptr %2304, ptr %4, align 8
  %2305 = extractvalue { ptr, i32 } %2303, 1
  store i32 %2305, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  br label %2333

2306:                                             ; preds = %2301, %2292
  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
  %2307 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2308 = add nsw i32 %2307, 1
  store i32 %2308, 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 %2309 unwind label %2337

2309:                                             ; preds = %2306
  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
  %2310 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2311 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2310, double noundef 0.000000e+00) #7
  store x86_fp80 %2311, ptr %192, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %193) #7
  %2312 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2313 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %2312, double noundef 0.000000e+00)
          to label %2314 unwind label %2341

2314:                                             ; preds = %2309
  store x86_fp80 %2313, ptr %193, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %194) #7
  %2315 = load x86_fp80, ptr %192, align 16, !tbaa !15
  %2316 = load x86_fp80, ptr %193, align 16, !tbaa !15
  %2317 = fsub x86_fp80 %2315, %2316
  %2318 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2317)
          to label %2319 unwind label %2345

2319:                                             ; preds = %2314
  %2320 = load x86_fp80, ptr %193, align 16, !tbaa !15
  %2321 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2320)
          to label %2322 unwind label %2345

2322:                                             ; preds = %2319
  %2323 = fadd x86_fp80 0xK3FFF8000000000000000, %2321
  %2324 = fdiv x86_fp80 %2318, %2323
  store x86_fp80 %2324, ptr %194, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %195) #7
  store i8 0, ptr %195, align 1, !tbaa !11
  %2325 = load x86_fp80, ptr %192, align 16, !tbaa !15
  %2326 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2325)
          to label %2327 unwind label %2349

2327:                                             ; preds = %2322
  br i1 %2326, label %2328, label %2353

2328:                                             ; preds = %2327
  %2329 = load x86_fp80, ptr %193, align 16, !tbaa !15
  %2330 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2329)
          to label %2331 unwind label %2349

2331:                                             ; preds = %2328
  br i1 %2330, label %2332, label %2353

2332:                                             ; preds = %2331
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2383

2333:                                             ; preds = %2302, %2286, %2257
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #7
  br label %2334

2334:                                             ; preds = %2333, %2253
  call void @llvm.lifetime.end.p0(i64 16, ptr %186) #7
  br label %2335

2335:                                             ; preds = %2334, %2249
  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 %2336

2336:                                             ; preds = %2335, %2245
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #7
  br label %2878

2337:                                             ; preds = %2306
  %2338 = landingpad { ptr, i32 }
          cleanup
  %2339 = extractvalue { ptr, i32 } %2338, 0
  store ptr %2339, ptr %4, align 8
  %2340 = extractvalue { ptr, i32 } %2338, 1
  store i32 %2340, ptr %5, align 4
  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 %2426

2341:                                             ; preds = %2309
  %2342 = landingpad { ptr, i32 }
          cleanup
  %2343 = extractvalue { ptr, i32 } %2342, 0
  store ptr %2343, ptr %4, align 8
  %2344 = extractvalue { ptr, i32 } %2342, 1
  store i32 %2344, ptr %5, align 4
  br label %2425

2345:                                             ; preds = %2319, %2314
  %2346 = landingpad { ptr, i32 }
          cleanup
  %2347 = extractvalue { ptr, i32 } %2346, 0
  store ptr %2347, ptr %4, align 8
  %2348 = extractvalue { ptr, i32 } %2346, 1
  store i32 %2348, ptr %5, align 4
  br label %2424

2349:                                             ; preds = %2386, %2370, %2357, %2353, %2328, %2322
  %2350 = landingpad { ptr, i32 }
          cleanup
  %2351 = extractvalue { ptr, i32 } %2350, 0
  store ptr %2351, ptr %4, align 8
  %2352 = extractvalue { ptr, i32 } %2350, 1
  store i32 %2352, ptr %5, align 4
  br label %2423

2353:                                             ; preds = %2331, %2327
  %2354 = load x86_fp80, ptr %192, align 16, !tbaa !15
  %2355 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2354)
          to label %2356 unwind label %2349

2356:                                             ; preds = %2353
  br i1 %2355, label %2366, label %2357

2357:                                             ; preds = %2356
  %2358 = load x86_fp80, ptr %192, align 16, !tbaa !15
  %2359 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2358)
          to label %2360 unwind label %2349

2360:                                             ; preds = %2357
  br i1 %2359, label %2361, label %2366

2361:                                             ; preds = %2360
  %2362 = load x86_fp80, ptr %192, align 16, !tbaa !15
  %2363 = load x86_fp80, ptr %193, align 16, !tbaa !15
  %2364 = fcmp oeq x86_fp80 %2362, %2363
  br i1 %2364, label %2365, label %2366

2365:                                             ; preds = %2361
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2382

2366:                                             ; preds = %2361, %2360, %2356
  %2367 = load x86_fp80, ptr %194, align 16, !tbaa !15
  %2368 = fcmp olt x86_fp80 %2367, 0xK3FD0B424DC35095CD800
  br i1 %2368, label %2369, label %2370

2369:                                             ; preds = %2366
  store i8 1, ptr %195, align 1, !tbaa !11
  br label %2381

2370:                                             ; preds = %2366
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %190)
          to label %2371 unwind label %2349

2371:                                             ; preds = %2370
  %2372 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2373 = load x86_fp80, ptr %192, align 16, !tbaa !15
  %2374 = load x86_fp80, ptr %193, align 16, !tbaa !15
  %2375 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %196, i32 noundef %2372, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2373, x86_fp80 noundef %2374, x86_fp80 noundef %2375, double noundef 0.000000e+00)
          to label %2376 unwind label %2377

2376:                                             ; preds = %2371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #7
  br label %2381

2377:                                             ; preds = %2371
  %2378 = landingpad { ptr, i32 }
          cleanup
  %2379 = extractvalue { ptr, i32 } %2378, 0
  store ptr %2379, ptr %4, align 8
  %2380 = extractvalue { ptr, i32 } %2378, 1
  store i32 %2380, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #7
  br label %2423

2381:                                             ; preds = %2376, %2369
  br label %2382

2382:                                             ; preds = %2381, %2365
  br label %2383

2383:                                             ; preds = %2382, %2332
  %2384 = load i8, ptr %195, align 1, !tbaa !11, !range !13, !noundef !14
  %2385 = trunc i8 %2384 to i1
  br i1 %2385, label %2386, label %2396

2386:                                             ; preds = %2383
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %190)
          to label %2387 unwind label %2349

2387:                                             ; preds = %2386
  %2388 = load x86_fp80, ptr %192, align 16, !tbaa !15
  %2389 = load x86_fp80, ptr %194, align 16, !tbaa !15
  %2390 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %197, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2388, x86_fp80 noundef %2389, x86_fp80 noundef %2390, double noundef 0.000000e+00)
          to label %2391 unwind label %2392

2391:                                             ; preds = %2387
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %2396

2392:                                             ; preds = %2387
  %2393 = landingpad { ptr, i32 }
          cleanup
  %2394 = extractvalue { ptr, i32 } %2393, 0
  store ptr %2394, ptr %4, align 8
  %2395 = extractvalue { ptr, i32 } %2393, 1
  store i32 %2395, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %2423

2396:                                             ; preds = %2391, %2383
  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
  %2397 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2398 = add nsw i32 %2397, 1
  store i32 %2398, 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 %2399 unwind label %2427

2399:                                             ; preds = %2396
  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 16, ptr %200) #7
  %2400 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2401 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2400, double noundef -1.000000e+00) #7
  store x86_fp80 %2401, ptr %200, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %201) #7
  %2402 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2403 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %2402, double noundef -1.000000e+00)
          to label %2404 unwind label %2431

2404:                                             ; preds = %2399
  store x86_fp80 %2403, ptr %201, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %202) #7
  %2405 = load x86_fp80, ptr %200, align 16, !tbaa !15
  %2406 = load x86_fp80, ptr %201, align 16, !tbaa !15
  %2407 = fsub x86_fp80 %2405, %2406
  %2408 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2407)
          to label %2409 unwind label %2435

2409:                                             ; preds = %2404
  %2410 = load x86_fp80, ptr %201, align 16, !tbaa !15
  %2411 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2410)
          to label %2412 unwind label %2435

2412:                                             ; preds = %2409
  %2413 = fadd x86_fp80 0xK3FFF8000000000000000, %2411
  %2414 = fdiv x86_fp80 %2408, %2413
  store x86_fp80 %2414, ptr %202, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #7
  store i8 0, ptr %203, align 1, !tbaa !11
  %2415 = load x86_fp80, ptr %200, align 16, !tbaa !15
  %2416 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2415)
          to label %2417 unwind label %2439

2417:                                             ; preds = %2412
  br i1 %2416, label %2418, label %2443

2418:                                             ; preds = %2417
  %2419 = load x86_fp80, ptr %201, align 16, !tbaa !15
  %2420 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2419)
          to label %2421 unwind label %2439

2421:                                             ; preds = %2418
  br i1 %2420, label %2422, label %2443

2422:                                             ; preds = %2421
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2473

2423:                                             ; preds = %2392, %2377, %2349
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #7
  br label %2424

2424:                                             ; preds = %2423, %2345
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #7
  br label %2425

2425:                                             ; preds = %2424, %2341
  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 %2426

2426:                                             ; preds = %2425, %2337
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #7
  br label %2878

2427:                                             ; preds = %2396
  %2428 = landingpad { ptr, i32 }
          cleanup
  %2429 = extractvalue { ptr, i32 } %2428, 0
  store ptr %2429, ptr %4, align 8
  %2430 = extractvalue { ptr, i32 } %2428, 1
  store i32 %2430, 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 %2516

2431:                                             ; preds = %2399
  %2432 = landingpad { ptr, i32 }
          cleanup
  %2433 = extractvalue { ptr, i32 } %2432, 0
  store ptr %2433, ptr %4, align 8
  %2434 = extractvalue { ptr, i32 } %2432, 1
  store i32 %2434, ptr %5, align 4
  br label %2515

2435:                                             ; preds = %2409, %2404
  %2436 = landingpad { ptr, i32 }
          cleanup
  %2437 = extractvalue { ptr, i32 } %2436, 0
  store ptr %2437, ptr %4, align 8
  %2438 = extractvalue { ptr, i32 } %2436, 1
  store i32 %2438, ptr %5, align 4
  br label %2514

2439:                                             ; preds = %2476, %2460, %2447, %2443, %2418, %2412
  %2440 = landingpad { ptr, i32 }
          cleanup
  %2441 = extractvalue { ptr, i32 } %2440, 0
  store ptr %2441, ptr %4, align 8
  %2442 = extractvalue { ptr, i32 } %2440, 1
  store i32 %2442, ptr %5, align 4
  br label %2513

2443:                                             ; preds = %2421, %2417
  %2444 = load x86_fp80, ptr %200, align 16, !tbaa !15
  %2445 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2444)
          to label %2446 unwind label %2439

2446:                                             ; preds = %2443
  br i1 %2445, label %2456, label %2447

2447:                                             ; preds = %2446
  %2448 = load x86_fp80, ptr %200, align 16, !tbaa !15
  %2449 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2448)
          to label %2450 unwind label %2439

2450:                                             ; preds = %2447
  br i1 %2449, label %2451, label %2456

2451:                                             ; preds = %2450
  %2452 = load x86_fp80, ptr %200, align 16, !tbaa !15
  %2453 = load x86_fp80, ptr %201, align 16, !tbaa !15
  %2454 = fcmp oeq x86_fp80 %2452, %2453
  br i1 %2454, label %2455, label %2456

2455:                                             ; preds = %2451
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2472

2456:                                             ; preds = %2451, %2450, %2446
  %2457 = load x86_fp80, ptr %202, align 16, !tbaa !15
  %2458 = fcmp olt x86_fp80 %2457, 0xK3FD0B424DC35095CD800
  br i1 %2458, label %2459, label %2460

2459:                                             ; preds = %2456
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2471

2460:                                             ; preds = %2456
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %2461 unwind label %2439

2461:                                             ; preds = %2460
  %2462 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2463 = load x86_fp80, ptr %200, align 16, !tbaa !15
  %2464 = load x86_fp80, ptr %201, align 16, !tbaa !15
  %2465 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %204, i32 noundef %2462, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2463, x86_fp80 noundef %2464, x86_fp80 noundef %2465, double noundef -1.000000e+00)
          to label %2466 unwind label %2467

2466:                                             ; preds = %2461
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %2471

2467:                                             ; preds = %2461
  %2468 = landingpad { ptr, i32 }
          cleanup
  %2469 = extractvalue { ptr, i32 } %2468, 0
  store ptr %2469, ptr %4, align 8
  %2470 = extractvalue { ptr, i32 } %2468, 1
  store i32 %2470, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %2513

2471:                                             ; preds = %2466, %2459
  br label %2472

2472:                                             ; preds = %2471, %2455
  br label %2473

2473:                                             ; preds = %2472, %2422
  %2474 = load i8, ptr %203, align 1, !tbaa !11, !range !13, !noundef !14
  %2475 = trunc i8 %2474 to i1
  br i1 %2475, label %2476, label %2486

2476:                                             ; preds = %2473
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %2477 unwind label %2439

2477:                                             ; preds = %2476
  %2478 = load x86_fp80, ptr %200, align 16, !tbaa !15
  %2479 = load x86_fp80, ptr %202, align 16, !tbaa !15
  %2480 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %205, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2478, x86_fp80 noundef %2479, x86_fp80 noundef %2480, double noundef -1.000000e+00)
          to label %2481 unwind label %2482

2481:                                             ; preds = %2477
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %2486

2482:                                             ; preds = %2477
  %2483 = landingpad { ptr, i32 }
          cleanup
  %2484 = extractvalue { ptr, i32 } %2483, 0
  store ptr %2484, ptr %4, align 8
  %2485 = extractvalue { ptr, i32 } %2483, 1
  store i32 %2485, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %2513

2486:                                             ; preds = %2481, %2473
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2487 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2488 = add nsw i32 %2487, 1
  store i32 %2488, 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 %2489 unwind label %2517

2489:                                             ; preds = %2486
  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 16, ptr %208) #7
  %2490 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2491 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2490, double noundef 1.000000e+00) #7
  store x86_fp80 %2491, ptr %208, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %209) #7
  %2492 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2493 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %2492, double noundef 1.000000e+00)
          to label %2494 unwind label %2521

2494:                                             ; preds = %2489
  store x86_fp80 %2493, ptr %209, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %210) #7
  %2495 = load x86_fp80, ptr %208, align 16, !tbaa !15
  %2496 = load x86_fp80, ptr %209, align 16, !tbaa !15
  %2497 = fsub x86_fp80 %2495, %2496
  %2498 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2497)
          to label %2499 unwind label %2525

2499:                                             ; preds = %2494
  %2500 = load x86_fp80, ptr %209, align 16, !tbaa !15
  %2501 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2500)
          to label %2502 unwind label %2525

2502:                                             ; preds = %2499
  %2503 = fadd x86_fp80 0xK3FFF8000000000000000, %2501
  %2504 = fdiv x86_fp80 %2498, %2503
  store x86_fp80 %2504, ptr %210, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %211) #7
  store i8 0, ptr %211, align 1, !tbaa !11
  %2505 = load x86_fp80, ptr %208, align 16, !tbaa !15
  %2506 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2505)
          to label %2507 unwind label %2529

2507:                                             ; preds = %2502
  br i1 %2506, label %2508, label %2533

2508:                                             ; preds = %2507
  %2509 = load x86_fp80, ptr %209, align 16, !tbaa !15
  %2510 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2509)
          to label %2511 unwind label %2529

2511:                                             ; preds = %2508
  br i1 %2510, label %2512, label %2533

2512:                                             ; preds = %2511
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2563

2513:                                             ; preds = %2482, %2467, %2439
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  br label %2514

2514:                                             ; preds = %2513, %2435
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #7
  br label %2515

2515:                                             ; preds = %2514, %2431
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #7
  br label %2516

2516:                                             ; preds = %2515, %2427
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #7
  br label %2878

2517:                                             ; preds = %2486
  %2518 = landingpad { ptr, i32 }
          cleanup
  %2519 = extractvalue { ptr, i32 } %2518, 0
  store ptr %2519, ptr %4, align 8
  %2520 = extractvalue { ptr, i32 } %2518, 1
  store i32 %2520, 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 %2608

2521:                                             ; preds = %2489
  %2522 = landingpad { ptr, i32 }
          cleanup
  %2523 = extractvalue { ptr, i32 } %2522, 0
  store ptr %2523, ptr %4, align 8
  %2524 = extractvalue { ptr, i32 } %2522, 1
  store i32 %2524, ptr %5, align 4
  br label %2607

2525:                                             ; preds = %2499, %2494
  %2526 = landingpad { ptr, i32 }
          cleanup
  %2527 = extractvalue { ptr, i32 } %2526, 0
  store ptr %2527, ptr %4, align 8
  %2528 = extractvalue { ptr, i32 } %2526, 1
  store i32 %2528, ptr %5, align 4
  br label %2606

2529:                                             ; preds = %2566, %2550, %2537, %2533, %2508, %2502
  %2530 = landingpad { ptr, i32 }
          cleanup
  %2531 = extractvalue { ptr, i32 } %2530, 0
  store ptr %2531, ptr %4, align 8
  %2532 = extractvalue { ptr, i32 } %2530, 1
  store i32 %2532, ptr %5, align 4
  br label %2605

2533:                                             ; preds = %2511, %2507
  %2534 = load x86_fp80, ptr %208, align 16, !tbaa !15
  %2535 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2534)
          to label %2536 unwind label %2529

2536:                                             ; preds = %2533
  br i1 %2535, label %2546, label %2537

2537:                                             ; preds = %2536
  %2538 = load x86_fp80, ptr %208, align 16, !tbaa !15
  %2539 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2538)
          to label %2540 unwind label %2529

2540:                                             ; preds = %2537
  br i1 %2539, label %2541, label %2546

2541:                                             ; preds = %2540
  %2542 = load x86_fp80, ptr %208, align 16, !tbaa !15
  %2543 = load x86_fp80, ptr %209, align 16, !tbaa !15
  %2544 = fcmp oeq x86_fp80 %2542, %2543
  br i1 %2544, label %2545, label %2546

2545:                                             ; preds = %2541
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2562

2546:                                             ; preds = %2541, %2540, %2536
  %2547 = load x86_fp80, ptr %210, align 16, !tbaa !15
  %2548 = fcmp olt x86_fp80 %2547, 0xK3FD0B424DC35095CD800
  br i1 %2548, label %2549, label %2550

2549:                                             ; preds = %2546
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %2561

2550:                                             ; preds = %2546
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %2551 unwind label %2529

2551:                                             ; preds = %2550
  %2552 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2553 = load x86_fp80, ptr %208, align 16, !tbaa !15
  %2554 = load x86_fp80, ptr %209, align 16, !tbaa !15
  %2555 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %212, i32 noundef %2552, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2553, x86_fp80 noundef %2554, x86_fp80 noundef %2555, double noundef 1.000000e+00)
          to label %2556 unwind label %2557

2556:                                             ; preds = %2551
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #7
  br label %2561

2557:                                             ; preds = %2551
  %2558 = landingpad { ptr, i32 }
          cleanup
  %2559 = extractvalue { ptr, i32 } %2558, 0
  store ptr %2559, ptr %4, align 8
  %2560 = extractvalue { ptr, i32 } %2558, 1
  store i32 %2560, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #7
  br label %2605

2561:                                             ; preds = %2556, %2549
  br label %2562

2562:                                             ; preds = %2561, %2545
  br label %2563

2563:                                             ; preds = %2562, %2512
  %2564 = load i8, ptr %211, align 1, !tbaa !11, !range !13, !noundef !14
  %2565 = trunc i8 %2564 to i1
  br i1 %2565, label %2566, label %2576

2566:                                             ; preds = %2563
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %2567 unwind label %2529

2567:                                             ; preds = %2566
  %2568 = load x86_fp80, ptr %208, align 16, !tbaa !15
  %2569 = load x86_fp80, ptr %210, align 16, !tbaa !15
  %2570 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %213, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2568, x86_fp80 noundef %2569, x86_fp80 noundef %2570, double noundef 1.000000e+00)
          to label %2571 unwind label %2572

2571:                                             ; preds = %2567
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %2576

2572:                                             ; preds = %2567
  %2573 = landingpad { ptr, i32 }
          cleanup
  %2574 = extractvalue { ptr, i32 } %2573, 0
  store ptr %2574, ptr %4, align 8
  %2575 = extractvalue { ptr, i32 } %2573, 1
  store i32 %2575, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %2605

2576:                                             ; preds = %2571, %2563
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %210) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %209) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2577 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2578 = add nsw i32 %2577, 1
  store i32 %2578, 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 %2579 unwind label %2609

2579:                                             ; preds = %2576
  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 16, ptr %216) #7
  %2580 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2581 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2582 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2580, x86_fp80 noundef %2581) #7
  store x86_fp80 %2582, ptr %216, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %217) #7
  %2583 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2584 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2585 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %2583, x86_fp80 noundef %2584)
          to label %2586 unwind label %2613

2586:                                             ; preds = %2579
  store x86_fp80 %2585, ptr %217, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %218) #7
  %2587 = load x86_fp80, ptr %216, align 16, !tbaa !15
  %2588 = load x86_fp80, ptr %217, align 16, !tbaa !15
  %2589 = fsub x86_fp80 %2587, %2588
  %2590 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2589)
          to label %2591 unwind label %2617

2591:                                             ; preds = %2586
  %2592 = load x86_fp80, ptr %217, align 16, !tbaa !15
  %2593 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2592)
          to label %2594 unwind label %2617

2594:                                             ; preds = %2591
  %2595 = fadd x86_fp80 0xK3FFF8000000000000000, %2593
  %2596 = fdiv x86_fp80 %2590, %2595
  store x86_fp80 %2596, ptr %218, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #7
  store i8 0, ptr %219, align 1, !tbaa !11
  %2597 = load x86_fp80, ptr %216, align 16, !tbaa !15
  %2598 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2597)
          to label %2599 unwind label %2621

2599:                                             ; preds = %2594
  br i1 %2598, label %2600, label %2625

2600:                                             ; preds = %2599
  %2601 = load x86_fp80, ptr %217, align 16, !tbaa !15
  %2602 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2601)
          to label %2603 unwind label %2621

2603:                                             ; preds = %2600
  br i1 %2602, label %2604, label %2625

2604:                                             ; preds = %2603
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2656

2605:                                             ; preds = %2572, %2557, %2529
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #7
  br label %2606

2606:                                             ; preds = %2605, %2525
  call void @llvm.lifetime.end.p0(i64 16, ptr %210) #7
  br label %2607

2607:                                             ; preds = %2606, %2521
  call void @llvm.lifetime.end.p0(i64 16, ptr %209) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %208) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #7
  br label %2608

2608:                                             ; preds = %2607, %2517
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #7
  br label %2878

2609:                                             ; preds = %2576
  %2610 = landingpad { ptr, i32 }
          cleanup
  %2611 = extractvalue { ptr, i32 } %2610, 0
  store ptr %2611, ptr %4, align 8
  %2612 = extractvalue { ptr, i32 } %2610, 1
  store i32 %2612, 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 %2704

2613:                                             ; preds = %2579
  %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
  br label %2703

2617:                                             ; preds = %2591, %2586
  %2618 = landingpad { ptr, i32 }
          cleanup
  %2619 = extractvalue { ptr, i32 } %2618, 0
  store ptr %2619, ptr %4, align 8
  %2620 = extractvalue { ptr, i32 } %2618, 1
  store i32 %2620, ptr %5, align 4
  br label %2702

2621:                                             ; preds = %2659, %2642, %2629, %2625, %2600, %2594
  %2622 = landingpad { ptr, i32 }
          cleanup
  %2623 = extractvalue { ptr, i32 } %2622, 0
  store ptr %2623, ptr %4, align 8
  %2624 = extractvalue { ptr, i32 } %2622, 1
  store i32 %2624, ptr %5, align 4
  br label %2701

2625:                                             ; preds = %2603, %2599
  %2626 = load x86_fp80, ptr %216, align 16, !tbaa !15
  %2627 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2626)
          to label %2628 unwind label %2621

2628:                                             ; preds = %2625
  br i1 %2627, label %2638, label %2629

2629:                                             ; preds = %2628
  %2630 = load x86_fp80, ptr %216, align 16, !tbaa !15
  %2631 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2630)
          to label %2632 unwind label %2621

2632:                                             ; preds = %2629
  br i1 %2631, label %2633, label %2638

2633:                                             ; preds = %2632
  %2634 = load x86_fp80, ptr %216, align 16, !tbaa !15
  %2635 = load x86_fp80, ptr %217, align 16, !tbaa !15
  %2636 = fcmp oeq x86_fp80 %2634, %2635
  br i1 %2636, label %2637, label %2638

2637:                                             ; preds = %2633
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2655

2638:                                             ; preds = %2633, %2632, %2628
  %2639 = load x86_fp80, ptr %218, align 16, !tbaa !15
  %2640 = fcmp olt x86_fp80 %2639, 0xK3FD0B424DC35095CD800
  br i1 %2640, label %2641, label %2642

2641:                                             ; preds = %2638
  store i8 1, ptr %219, align 1, !tbaa !11
  br label %2654

2642:                                             ; preds = %2638
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %2643 unwind label %2621

2643:                                             ; preds = %2642
  %2644 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2645 = load x86_fp80, ptr %216, align 16, !tbaa !15
  %2646 = load x86_fp80, ptr %217, align 16, !tbaa !15
  %2647 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2648 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %220, i32 noundef %2644, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2645, x86_fp80 noundef %2646, x86_fp80 noundef %2647, x86_fp80 noundef %2648)
          to label %2649 unwind label %2650

2649:                                             ; preds = %2643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %2654

2650:                                             ; preds = %2643
  %2651 = landingpad { ptr, i32 }
          cleanup
  %2652 = extractvalue { ptr, i32 } %2651, 0
  store ptr %2652, ptr %4, align 8
  %2653 = extractvalue { ptr, i32 } %2651, 1
  store i32 %2653, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %2701

2654:                                             ; preds = %2649, %2641
  br label %2655

2655:                                             ; preds = %2654, %2637
  br label %2656

2656:                                             ; preds = %2655, %2604
  %2657 = load i8, ptr %219, align 1, !tbaa !11, !range !13, !noundef !14
  %2658 = trunc i8 %2657 to i1
  br i1 %2658, label %2659, label %2670

2659:                                             ; preds = %2656
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %2660 unwind label %2621

2660:                                             ; preds = %2659
  %2661 = load x86_fp80, ptr %216, align 16, !tbaa !15
  %2662 = load x86_fp80, ptr %218, align 16, !tbaa !15
  %2663 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2664 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %221, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2661, x86_fp80 noundef %2662, x86_fp80 noundef %2663, x86_fp80 noundef %2664)
          to label %2665 unwind label %2666

2665:                                             ; preds = %2660
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  br label %2670

2666:                                             ; preds = %2660
  %2667 = landingpad { ptr, i32 }
          cleanup
  %2668 = extractvalue { ptr, i32 } %2667, 0
  store ptr %2668, ptr %4, align 8
  %2669 = extractvalue { ptr, i32 } %2667, 1
  store i32 %2669, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  br label %2701

2670:                                             ; preds = %2665, %2656
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %2671 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2672 = add nsw i32 %2671, 1
  store i32 %2672, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %222) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %223) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %2673 unwind label %2705

2673:                                             ; preds = %2670
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %224) #7
  %2674 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2675 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2676 = fneg x86_fp80 %2675
  %2677 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2674, x86_fp80 noundef %2676) #7
  store x86_fp80 %2677, ptr %224, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %225) #7
  %2678 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2679 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2680 = fneg x86_fp80 %2679
  %2681 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %2678, x86_fp80 noundef %2680)
          to label %2682 unwind label %2709

2682:                                             ; preds = %2673
  store x86_fp80 %2681, ptr %225, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %226) #7
  %2683 = load x86_fp80, ptr %224, align 16, !tbaa !15
  %2684 = load x86_fp80, ptr %225, align 16, !tbaa !15
  %2685 = fsub x86_fp80 %2683, %2684
  %2686 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2685)
          to label %2687 unwind label %2713

2687:                                             ; preds = %2682
  %2688 = load x86_fp80, ptr %225, align 16, !tbaa !15
  %2689 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2688)
          to label %2690 unwind label %2713

2690:                                             ; preds = %2687
  %2691 = fadd x86_fp80 0xK3FFF8000000000000000, %2689
  %2692 = fdiv x86_fp80 %2686, %2691
  store x86_fp80 %2692, ptr %226, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %227) #7
  store i8 0, ptr %227, align 1, !tbaa !11
  %2693 = load x86_fp80, ptr %224, align 16, !tbaa !15
  %2694 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2693)
          to label %2695 unwind label %2717

2695:                                             ; preds = %2690
  br i1 %2694, label %2696, label %2721

2696:                                             ; preds = %2695
  %2697 = load x86_fp80, ptr %225, align 16, !tbaa !15
  %2698 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2697)
          to label %2699 unwind label %2717

2699:                                             ; preds = %2696
  br i1 %2698, label %2700, label %2721

2700:                                             ; preds = %2699
  store i8 1, ptr %227, align 1, !tbaa !11
  br label %2753

2701:                                             ; preds = %2666, %2650, %2621
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #7
  br label %2702

2702:                                             ; preds = %2701, %2617
  call void @llvm.lifetime.end.p0(i64 16, ptr %218) #7
  br label %2703

2703:                                             ; preds = %2702, %2613
  call void @llvm.lifetime.end.p0(i64 16, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  br label %2704

2704:                                             ; preds = %2703, %2609
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #7
  br label %2878

2705:                                             ; preds = %2670
  %2706 = landingpad { ptr, i32 }
          cleanup
  %2707 = extractvalue { ptr, i32 } %2706, 0
  store ptr %2707, ptr %4, align 8
  %2708 = extractvalue { ptr, i32 } %2706, 1
  store i32 %2708, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #7
  br label %2800

2709:                                             ; preds = %2673
  %2710 = landingpad { ptr, i32 }
          cleanup
  %2711 = extractvalue { ptr, i32 } %2710, 0
  store ptr %2711, ptr %4, align 8
  %2712 = extractvalue { ptr, i32 } %2710, 1
  store i32 %2712, ptr %5, align 4
  br label %2799

2713:                                             ; preds = %2687, %2682
  %2714 = landingpad { ptr, i32 }
          cleanup
  %2715 = extractvalue { ptr, i32 } %2714, 0
  store ptr %2715, ptr %4, align 8
  %2716 = extractvalue { ptr, i32 } %2714, 1
  store i32 %2716, ptr %5, align 4
  br label %2798

2717:                                             ; preds = %2756, %2738, %2725, %2721, %2696, %2690
  %2718 = landingpad { ptr, i32 }
          cleanup
  %2719 = extractvalue { ptr, i32 } %2718, 0
  store ptr %2719, ptr %4, align 8
  %2720 = extractvalue { ptr, i32 } %2718, 1
  store i32 %2720, ptr %5, align 4
  br label %2797

2721:                                             ; preds = %2699, %2695
  %2722 = load x86_fp80, ptr %224, align 16, !tbaa !15
  %2723 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2722)
          to label %2724 unwind label %2717

2724:                                             ; preds = %2721
  br i1 %2723, label %2734, label %2725

2725:                                             ; preds = %2724
  %2726 = load x86_fp80, ptr %224, align 16, !tbaa !15
  %2727 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2726)
          to label %2728 unwind label %2717

2728:                                             ; preds = %2725
  br i1 %2727, label %2729, label %2734

2729:                                             ; preds = %2728
  %2730 = load x86_fp80, ptr %224, align 16, !tbaa !15
  %2731 = load x86_fp80, ptr %225, align 16, !tbaa !15
  %2732 = fcmp oeq x86_fp80 %2730, %2731
  br i1 %2732, label %2733, label %2734

2733:                                             ; preds = %2729
  store i8 1, ptr %227, align 1, !tbaa !11
  br label %2752

2734:                                             ; preds = %2729, %2728, %2724
  %2735 = load x86_fp80, ptr %226, align 16, !tbaa !15
  %2736 = fcmp olt x86_fp80 %2735, 0xK3FD0B424DC35095CD800
  br i1 %2736, label %2737, label %2738

2737:                                             ; preds = %2734
  store i8 1, ptr %227, align 1, !tbaa !11
  br label %2751

2738:                                             ; preds = %2734
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull align 8 dereferenceable(32) %222)
          to label %2739 unwind label %2717

2739:                                             ; preds = %2738
  %2740 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2741 = load x86_fp80, ptr %224, align 16, !tbaa !15
  %2742 = load x86_fp80, ptr %225, align 16, !tbaa !15
  %2743 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2744 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2745 = fneg x86_fp80 %2744
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %228, i32 noundef %2740, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2741, x86_fp80 noundef %2742, x86_fp80 noundef %2743, x86_fp80 noundef %2745)
          to label %2746 unwind label %2747

2746:                                             ; preds = %2739
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #7
  br label %2751

2747:                                             ; preds = %2739
  %2748 = landingpad { ptr, i32 }
          cleanup
  %2749 = extractvalue { ptr, i32 } %2748, 0
  store ptr %2749, ptr %4, align 8
  %2750 = extractvalue { ptr, i32 } %2748, 1
  store i32 %2750, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #7
  br label %2797

2751:                                             ; preds = %2746, %2737
  br label %2752

2752:                                             ; preds = %2751, %2733
  br label %2753

2753:                                             ; preds = %2752, %2700
  %2754 = load i8, ptr %227, align 1, !tbaa !11, !range !13, !noundef !14
  %2755 = trunc i8 %2754 to i1
  br i1 %2755, label %2756, label %2768

2756:                                             ; preds = %2753
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %222)
          to label %2757 unwind label %2717

2757:                                             ; preds = %2756
  %2758 = load x86_fp80, ptr %224, align 16, !tbaa !15
  %2759 = load x86_fp80, ptr %226, align 16, !tbaa !15
  %2760 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2761 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %2762 = fneg x86_fp80 %2761
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %229, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2758, x86_fp80 noundef %2759, x86_fp80 noundef %2760, x86_fp80 noundef %2762)
          to label %2763 unwind label %2764

2763:                                             ; preds = %2757
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %2768

2764:                                             ; preds = %2757
  %2765 = landingpad { ptr, i32 }
          cleanup
  %2766 = extractvalue { ptr, i32 } %2765, 0
  store ptr %2766, ptr %4, align 8
  %2767 = extractvalue { ptr, i32 } %2765, 1
  store i32 %2767, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %2797

2768:                                             ; preds = %2763, %2753
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %226) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #7
  %2769 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2770 = add nsw i32 %2769, 1
  store i32 %2770, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %231) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %2771 unwind label %2801

2771:                                             ; preds = %2768
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %232) #7
  %2772 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2773 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2774 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %2772, x86_fp80 noundef %2773) #7
  store x86_fp80 %2774, ptr %232, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %233) #7
  %2775 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2776 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2777 = invoke noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %2775, x86_fp80 noundef %2776)
          to label %2778 unwind label %2805

2778:                                             ; preds = %2771
  store x86_fp80 %2777, ptr %233, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %234) #7
  %2779 = load x86_fp80, ptr %232, align 16, !tbaa !15
  %2780 = load x86_fp80, ptr %233, align 16, !tbaa !15
  %2781 = fsub x86_fp80 %2779, %2780
  %2782 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2781)
          to label %2783 unwind label %2809

2783:                                             ; preds = %2778
  %2784 = load x86_fp80, ptr %233, align 16, !tbaa !15
  %2785 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %2784)
          to label %2786 unwind label %2809

2786:                                             ; preds = %2783
  %2787 = fadd x86_fp80 0xK3FFF8000000000000000, %2785
  %2788 = fdiv x86_fp80 %2782, %2787
  store x86_fp80 %2788, ptr %234, align 16, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %235) #7
  store i8 0, ptr %235, align 1, !tbaa !11
  %2789 = load x86_fp80, ptr %232, align 16, !tbaa !15
  %2790 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2789)
          to label %2791 unwind label %2813

2791:                                             ; preds = %2786
  br i1 %2790, label %2792, label %2817

2792:                                             ; preds = %2791
  %2793 = load x86_fp80, ptr %233, align 16, !tbaa !15
  %2794 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2793)
          to label %2795 unwind label %2813

2795:                                             ; preds = %2792
  br i1 %2794, label %2796, label %2817

2796:                                             ; preds = %2795
  store i8 1, ptr %235, align 1, !tbaa !11
  br label %2848

2797:                                             ; preds = %2764, %2747, %2717
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #7
  br label %2798

2798:                                             ; preds = %2797, %2713
  call void @llvm.lifetime.end.p0(i64 16, ptr %226) #7
  br label %2799

2799:                                             ; preds = %2798, %2709
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  br label %2800

2800:                                             ; preds = %2799, %2705
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #7
  br label %2878

2801:                                             ; preds = %2768
  %2802 = landingpad { ptr, i32 }
          cleanup
  %2803 = extractvalue { ptr, i32 } %2802, 0
  store ptr %2803, ptr %4, align 8
  %2804 = extractvalue { ptr, i32 } %2802, 1
  store i32 %2804, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #7
  br label %2868

2805:                                             ; preds = %2771
  %2806 = landingpad { ptr, i32 }
          cleanup
  %2807 = extractvalue { ptr, i32 } %2806, 0
  store ptr %2807, ptr %4, align 8
  %2808 = extractvalue { ptr, i32 } %2806, 1
  store i32 %2808, ptr %5, align 4
  br label %2867

2809:                                             ; preds = %2783, %2778
  %2810 = landingpad { ptr, i32 }
          cleanup
  %2811 = extractvalue { ptr, i32 } %2810, 0
  store ptr %2811, ptr %4, align 8
  %2812 = extractvalue { ptr, i32 } %2810, 1
  store i32 %2812, ptr %5, align 4
  br label %2866

2813:                                             ; preds = %2851, %2834, %2821, %2817, %2792, %2786
  %2814 = landingpad { ptr, i32 }
          cleanup
  %2815 = extractvalue { ptr, i32 } %2814, 0
  store ptr %2815, ptr %4, align 8
  %2816 = extractvalue { ptr, i32 } %2814, 1
  store i32 %2816, ptr %5, align 4
  br label %2865

2817:                                             ; preds = %2795, %2791
  %2818 = load x86_fp80, ptr %232, align 16, !tbaa !15
  %2819 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %2818)
          to label %2820 unwind label %2813

2820:                                             ; preds = %2817
  br i1 %2819, label %2830, label %2821

2821:                                             ; preds = %2820
  %2822 = load x86_fp80, ptr %232, align 16, !tbaa !15
  %2823 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %2822)
          to label %2824 unwind label %2813

2824:                                             ; preds = %2821
  br i1 %2823, label %2825, label %2830

2825:                                             ; preds = %2824
  %2826 = load x86_fp80, ptr %232, align 16, !tbaa !15
  %2827 = load x86_fp80, ptr %233, align 16, !tbaa !15
  %2828 = fcmp oeq x86_fp80 %2826, %2827
  br i1 %2828, label %2829, label %2830

2829:                                             ; preds = %2825
  store i8 1, ptr %235, align 1, !tbaa !11
  br label %2847

2830:                                             ; preds = %2825, %2824, %2820
  %2831 = load x86_fp80, ptr %234, align 16, !tbaa !15
  %2832 = fcmp olt x86_fp80 %2831, 0xK3FD0B424DC35095CD800
  br i1 %2832, label %2833, label %2834

2833:                                             ; preds = %2830
  store i8 1, ptr %235, align 1, !tbaa !11
  br label %2846

2834:                                             ; preds = %2830
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %2835 unwind label %2813

2835:                                             ; preds = %2834
  %2836 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %2837 = load x86_fp80, ptr %232, align 16, !tbaa !15
  %2838 = load x86_fp80, ptr %233, align 16, !tbaa !15
  %2839 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2840 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef %236, i32 noundef %2836, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2837, x86_fp80 noundef %2838, x86_fp80 noundef %2839, x86_fp80 noundef %2840)
          to label %2841 unwind label %2842

2841:                                             ; preds = %2835
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #7
  br label %2846

2842:                                             ; preds = %2835
  %2843 = landingpad { ptr, i32 }
          cleanup
  %2844 = extractvalue { ptr, i32 } %2843, 0
  store ptr %2844, ptr %4, align 8
  %2845 = extractvalue { ptr, i32 } %2843, 1
  store i32 %2845, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #7
  br label %2865

2846:                                             ; preds = %2841, %2833
  br label %2847

2847:                                             ; preds = %2846, %2829
  br label %2848

2848:                                             ; preds = %2847, %2796
  %2849 = load i8, ptr %235, align 1, !tbaa !11, !range !13, !noundef !14
  %2850 = trunc i8 %2849 to i1
  br i1 %2850, label %2851, label %2862

2851:                                             ; preds = %2848
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %2852 unwind label %2813

2852:                                             ; preds = %2851
  %2853 = load x86_fp80, ptr %232, align 16, !tbaa !15
  %2854 = load x86_fp80, ptr %234, align 16, !tbaa !15
  %2855 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %2856 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef %237, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %2853, x86_fp80 noundef %2854, x86_fp80 noundef %2855, x86_fp80 noundef %2856)
          to label %2857 unwind label %2858

2857:                                             ; preds = %2852
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  br label %2862

2858:                                             ; preds = %2852
  %2859 = landingpad { ptr, i32 }
          cleanup
  %2860 = extractvalue { ptr, i32 } %2859, 0
  store ptr %2860, ptr %4, align 8
  %2861 = extractvalue { ptr, i32 } %2859, 1
  store i32 %2861, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  br label %2865

2862:                                             ; preds = %2857, %2848
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %234) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %239) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %239)
          to label %2863 unwind label %2869

2863:                                             ; preds = %2862
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %238)
          to label %2864 unwind label %2873

2864:                                             ; preds = %2863
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #7
  ret i32 0

2865:                                             ; preds = %2858, %2842, %2813
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #7
  br label %2866

2866:                                             ; preds = %2865, %2809
  call void @llvm.lifetime.end.p0(i64 16, ptr %234) #7
  br label %2867

2867:                                             ; preds = %2866, %2805
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  br label %2868

2868:                                             ; preds = %2867, %2801
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #7
  br label %2878

2869:                                             ; preds = %2862
  %2870 = landingpad { ptr, i32 }
          cleanup
  %2871 = extractvalue { ptr, i32 } %2870, 0
  store ptr %2871, ptr %4, align 8
  %2872 = extractvalue { ptr, i32 } %2870, 1
  store i32 %2872, ptr %5, align 4
  br label %2877

2873:                                             ; preds = %2863
  %2874 = landingpad { ptr, i32 }
          cleanup
  %2875 = extractvalue { ptr, i32 } %2874, 0
  store ptr %2875, ptr %4, align 8
  %2876 = extractvalue { ptr, i32 } %2874, 1
  store i32 %2876, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #7
  br label %2877

2877:                                             ; preds = %2873, %2869
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #7
  br label %2878

2878:                                             ; preds = %2877, %2868, %2800, %2704, %2608, %2516, %2426, %2336, %2244, %2148, %2052, %1960, %1870, %1780, %1686, %1586, %1486, %1390, %1296, %1202, %1115, %1031, %947, %863, %779, %695, %611, %527, %443, %359, %275
  %2879 = load ptr, ptr %4, align 8
  %2880 = load i32, ptr %5, align 4
  %2881 = insertvalue { ptr, i32 } poison, ptr %2879, 0
  %2882 = insertvalue { ptr, i32 } %2881, i32 %2880, 1
  resume { ptr, i32 } %2882
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef, double noundef) #3

; Function Attrs: nounwind
declare double @fmod(double noundef, double noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef) #1

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef, double noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef, double noundef) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, double noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, double noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef, x86_fp80 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef, x86_fp80 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #3 align 2

; Function Attrs: 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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"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
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::allocator", align 1
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator", align 1
  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 %121 unwind label %138

121:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %122 unwind label %140

122:                                              ; preds = %121
  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
  %123 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %124 = add nsw i32 %123, 1
  store i32 %124, 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 %125 unwind label %143

125:                                              ; preds = %122
  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
  %126 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  %127 = call double @fmod(double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  %128 = fsub double %126, %127
  %129 = call noundef double @_ZSt3absd(double noundef %128)
  %130 = call noundef double @_ZSt3absd(double noundef %127)
  %131 = fadd double %130, 1.000000e+00
  %132 = fdiv double %129, %131
  %133 = fpext double %126 to x86_fp80
  %134 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %133)
  br i1 %134, label %135, label %147

135:                                              ; preds = %125
  %136 = fpext double %127 to x86_fp80
  %137 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %136)
  br i1 %137, label %159, label %147

138:                                              ; preds = %0
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %121
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #7
  br label %142

142:                                              ; preds = %140, %138
  %.pn = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  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 %1327

143:                                              ; preds = %122
  %144 = 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 %179

145:                                              ; preds = %159, %154
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %178

147:                                              ; preds = %135, %125
  %148 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %133)
  br i1 %148, label %153, label %149

149:                                              ; preds = %147
  %150 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %133)
  %151 = fcmp oeq double %126, %127
  %or.cond = and i1 %151, %150
  %152 = fcmp olt double %132, 0x3D06849B86A12B9B
  %or.cond770 = or i1 %152, %or.cond
  br i1 %or.cond770, label %159, label %154

153:                                              ; preds = %147
  %.old = fcmp olt double %132, 0x3D06849B86A12B9B
  br i1 %.old, label %159, label %154

154:                                              ; preds = %149, %153
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %155 unwind label %145

155:                                              ; preds = %154
  %156 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %5, i32 noundef %156, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %126, double noundef %127, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge unwind label %157

157:                                              ; preds = %155
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %178

159:                                              ; preds = %135, %149, %153
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %160 unwind label %145

160:                                              ; preds = %159
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %126, double noundef %132, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge unwind label %161

161:                                              ; preds = %160
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %178

.critedge:                                        ; preds = %160, %155
  %.sink = phi ptr [ %5, %155 ], [ %6, %160 ]
  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
  %163 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %164 = add nsw i32 %163, 1
  store i32 %164, 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 %165 unwind label %180

165:                                              ; 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
  %166 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -0.000000e+00, double noundef 0.000000e+00) #7
  %167 = call double @fmod(double noundef -0.000000e+00, double noundef 0.000000e+00) #7
  %168 = fsub double %166, %167
  %169 = call noundef double @_ZSt3absd(double noundef %168)
  %170 = call noundef double @_ZSt3absd(double noundef %167)
  %171 = fadd double %170, 1.000000e+00
  %172 = fdiv double %169, %171
  %173 = fpext double %166 to x86_fp80
  %174 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %173)
  br i1 %174, label %175, label %184

175:                                              ; preds = %165
  %176 = fpext double %167 to x86_fp80
  %177 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %176)
  br i1 %177, label %196, label %184

178:                                              ; preds = %161, %157, %145
  %.pn587 = phi { ptr, i32 } [ %162, %161 ], [ %146, %145 ], [ %158, %157 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %179

179:                                              ; preds = %178, %143
  %.pn587.pn = phi { ptr, i32 } [ %.pn587, %178 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %1327

180:                                              ; preds = %.critedge
  %181 = 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 %216

182:                                              ; preds = %196, %191
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %215

184:                                              ; preds = %175, %165
  %185 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %173)
  br i1 %185, label %190, label %186

186:                                              ; preds = %184
  %187 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %173)
  %188 = fcmp oeq double %166, %167
  %or.cond686 = and i1 %188, %187
  %189 = fcmp olt double %172, 0x3D06849B86A12B9B
  %or.cond772 = or i1 %189, %or.cond686
  br i1 %or.cond772, label %196, label %191

190:                                              ; preds = %184
  %.old771 = fcmp olt double %172, 0x3D06849B86A12B9B
  br i1 %.old771, label %196, label %191

191:                                              ; preds = %186, %190
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %192 unwind label %182

192:                                              ; preds = %191
  %193 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %9, i32 noundef %193, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %166, double noundef %167, double noundef -0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge688 unwind label %194

194:                                              ; preds = %192
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %215

196:                                              ; preds = %175, %186, %190
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %197 unwind label %182

197:                                              ; preds = %196
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %166, double noundef %172, double noundef -0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge688 unwind label %198

198:                                              ; preds = %197
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %215

.critedge688:                                     ; preds = %197, %192
  %.sink827 = phi ptr [ %9, %192 ], [ %10, %197 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink827) #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
  %200 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %201 = add nsw i32 %200, 1
  store i32 %201, 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 %202 unwind label %217

202:                                              ; preds = %.critedge688
  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
  %203 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 0.000000e+00, double noundef -0.000000e+00) #7
  %204 = call double @fmod(double noundef 0.000000e+00, double noundef -0.000000e+00) #7
  %205 = fsub double %203, %204
  %206 = call noundef double @_ZSt3absd(double noundef %205)
  %207 = call noundef double @_ZSt3absd(double noundef %204)
  %208 = fadd double %207, 1.000000e+00
  %209 = fdiv double %206, %208
  %210 = fpext double %203 to x86_fp80
  %211 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %210)
  br i1 %211, label %212, label %221

212:                                              ; preds = %202
  %213 = fpext double %204 to x86_fp80
  %214 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %213)
  br i1 %214, label %233, label %221

215:                                              ; preds = %198, %194, %182
  %.pn590 = phi { ptr, i32 } [ %199, %198 ], [ %183, %182 ], [ %195, %194 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %216

216:                                              ; preds = %215, %180
  %.pn590.pn = phi { ptr, i32 } [ %.pn590, %215 ], [ %181, %180 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %1327

217:                                              ; preds = %.critedge688
  %218 = 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 %251

219:                                              ; preds = %233, %228
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %250

221:                                              ; preds = %212, %202
  %222 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %210)
  br i1 %222, label %227, label %223

223:                                              ; preds = %221
  %224 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %210)
  %225 = fcmp oeq double %203, %204
  %or.cond689 = and i1 %225, %224
  %226 = fcmp olt double %209, 0x3D06849B86A12B9B
  %or.cond774 = or i1 %226, %or.cond689
  br i1 %or.cond774, label %233, label %228

227:                                              ; preds = %221
  %.old773 = fcmp olt double %209, 0x3D06849B86A12B9B
  br i1 %.old773, label %233, label %228

228:                                              ; preds = %223, %227
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %229 unwind label %219

229:                                              ; preds = %228
  %230 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %13, i32 noundef %230, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %203, double noundef %204, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge691 unwind label %231

231:                                              ; preds = %229
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %250

233:                                              ; preds = %212, %223, %227
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %234 unwind label %219

234:                                              ; preds = %233
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %203, double noundef %209, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge691 unwind label %235

235:                                              ; preds = %234
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %250

.critedge691:                                     ; preds = %234, %229
  %.sink828 = phi ptr [ %13, %229 ], [ %14, %234 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink828) #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
  %237 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %238 = add nsw i32 %237, 1
  store i32 %238, 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 %239 unwind label %252

239:                                              ; preds = %.critedge691
  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
  %240 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 5.300000e+00, double noundef 2.000000e+00) #7
  %241 = fadd double %240, 0xBFF4CCCCCCCCCCCC
  %242 = call noundef double @_ZSt3absd(double noundef %241)
  %243 = call noundef double @_ZSt3absd(double noundef 0x3FF4CCCCCCCCCCCC)
  %244 = fadd double %243, 1.000000e+00
  %245 = fdiv double %242, %244
  %246 = fpext double %240 to x86_fp80
  %247 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %246)
  br i1 %247, label %248, label %256

248:                                              ; preds = %239
  %249 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFFA666666666666000)
  br i1 %249, label %268, label %256

250:                                              ; preds = %235, %231, %219
  %.pn593 = phi { ptr, i32 } [ %236, %235 ], [ %220, %219 ], [ %232, %231 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %251

251:                                              ; preds = %250, %217
  %.pn593.pn = phi { ptr, i32 } [ %.pn593, %250 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  br label %1327

252:                                              ; preds = %.critedge691
  %253 = 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 %286

254:                                              ; preds = %268, %263
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %285

256:                                              ; preds = %248, %239
  %257 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %246)
  br i1 %257, label %262, label %258

258:                                              ; preds = %256
  %259 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %246)
  %260 = fcmp oeq double %240, 0x3FF4CCCCCCCCCCCC
  %or.cond692 = and i1 %260, %259
  %261 = fcmp olt double %245, 0x3D06849B86A12B9B
  %or.cond776 = or i1 %261, %or.cond692
  br i1 %or.cond776, label %268, label %263

262:                                              ; preds = %256
  %.old775 = fcmp olt double %245, 0x3D06849B86A12B9B
  br i1 %.old775, label %268, label %263

263:                                              ; preds = %258, %262
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %264 unwind label %254

264:                                              ; preds = %263
  %265 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %17, i32 noundef %265, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %240, double noundef 0x3FF4CCCCCCCCCCCC, double noundef 5.300000e+00, double noundef 2.000000e+00)
          to label %.critedge694 unwind label %266

266:                                              ; preds = %264
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %285

268:                                              ; preds = %248, %258, %262
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %269 unwind label %254

269:                                              ; preds = %268
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %240, double noundef %245, double noundef 5.300000e+00, double noundef 2.000000e+00)
          to label %.critedge694 unwind label %270

270:                                              ; preds = %269
  %271 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %285

.critedge694:                                     ; preds = %269, %264
  %.sink829 = phi ptr [ %17, %264 ], [ %18, %269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink829) #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
  %272 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %273 = add nsw i32 %272, 1
  store i32 %273, 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 %274 unwind label %287

274:                                              ; preds = %.critedge694
  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
  %275 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -5.300000e+00, double noundef 2.000000e+00) #7
  %276 = fadd double %275, 0x3FF4CCCCCCCCCCCC
  %277 = call noundef double @_ZSt3absd(double noundef %276)
  %278 = call noundef double @_ZSt3absd(double noundef 0xBFF4CCCCCCCCCCCC)
  %279 = fadd double %278, 1.000000e+00
  %280 = fdiv double %277, %279
  %281 = fpext double %275 to x86_fp80
  %282 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %281)
  br i1 %282, label %283, label %291

283:                                              ; preds = %274
  %284 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKBFFFA666666666666000)
  br i1 %284, label %303, label %291

285:                                              ; preds = %270, %266, %254
  %.pn596 = phi { ptr, i32 } [ %271, %270 ], [ %255, %254 ], [ %267, %266 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %286

286:                                              ; preds = %285, %252
  %.pn596.pn = phi { ptr, i32 } [ %.pn596, %285 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %1327

287:                                              ; preds = %.critedge694
  %288 = 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 %321

289:                                              ; preds = %303, %298
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %320

291:                                              ; preds = %283, %274
  %292 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %281)
  br i1 %292, label %297, label %293

293:                                              ; preds = %291
  %294 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %281)
  %295 = fcmp oeq double %275, 0xBFF4CCCCCCCCCCCC
  %or.cond695 = and i1 %295, %294
  %296 = fcmp olt double %280, 0x3D06849B86A12B9B
  %or.cond778 = or i1 %296, %or.cond695
  br i1 %or.cond778, label %303, label %298

297:                                              ; preds = %291
  %.old777 = fcmp olt double %280, 0x3D06849B86A12B9B
  br i1 %.old777, label %303, label %298

298:                                              ; preds = %293, %297
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %299 unwind label %289

299:                                              ; preds = %298
  %300 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %21, i32 noundef %300, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %275, double noundef 0xBFF4CCCCCCCCCCCC, double noundef -5.300000e+00, double noundef 2.000000e+00)
          to label %.critedge697 unwind label %301

301:                                              ; preds = %299
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %320

303:                                              ; preds = %283, %293, %297
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %304 unwind label %289

304:                                              ; preds = %303
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %22, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %275, double noundef %280, double noundef -5.300000e+00, double noundef 2.000000e+00)
          to label %.critedge697 unwind label %305

305:                                              ; preds = %304
  %306 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %320

.critedge697:                                     ; preds = %304, %299
  %.sink830 = phi ptr [ %21, %299 ], [ %22, %304 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink830) #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
  %307 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %308 = add nsw i32 %307, 1
  store i32 %308, 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 %309 unwind label %322

309:                                              ; preds = %.critedge697
  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
  %310 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 5.300000e+00, double noundef -2.000000e+00) #7
  %311 = fadd double %310, 0xBFF4CCCCCCCCCCCC
  %312 = call noundef double @_ZSt3absd(double noundef %311)
  %313 = call noundef double @_ZSt3absd(double noundef 0x3FF4CCCCCCCCCCCC)
  %314 = fadd double %313, 1.000000e+00
  %315 = fdiv double %312, %314
  %316 = fpext double %310 to x86_fp80
  %317 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %316)
  br i1 %317, label %318, label %326

318:                                              ; preds = %309
  %319 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFFA666666666666000)
  br i1 %319, label %338, label %326

320:                                              ; preds = %305, %301, %289
  %.pn599 = phi { ptr, i32 } [ %306, %305 ], [ %290, %289 ], [ %302, %301 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %321

321:                                              ; preds = %320, %287
  %.pn599.pn = phi { ptr, i32 } [ %.pn599, %320 ], [ %288, %287 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %1327

322:                                              ; preds = %.critedge697
  %323 = 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 %356

324:                                              ; preds = %338, %333
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %355

326:                                              ; preds = %318, %309
  %327 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %316)
  br i1 %327, label %332, label %328

328:                                              ; preds = %326
  %329 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %316)
  %330 = fcmp oeq double %310, 0x3FF4CCCCCCCCCCCC
  %or.cond698 = and i1 %330, %329
  %331 = fcmp olt double %315, 0x3D06849B86A12B9B
  %or.cond780 = or i1 %331, %or.cond698
  br i1 %or.cond780, label %338, label %333

332:                                              ; preds = %326
  %.old779 = fcmp olt double %315, 0x3D06849B86A12B9B
  br i1 %.old779, label %338, label %333

333:                                              ; preds = %328, %332
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %334 unwind label %324

334:                                              ; preds = %333
  %335 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %25, i32 noundef %335, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %310, double noundef 0x3FF4CCCCCCCCCCCC, double noundef 5.300000e+00, double noundef -2.000000e+00)
          to label %.critedge700 unwind label %336

336:                                              ; preds = %334
  %337 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %355

338:                                              ; preds = %318, %328, %332
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %339 unwind label %324

339:                                              ; preds = %338
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %26, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %310, double noundef %315, double noundef 5.300000e+00, double noundef -2.000000e+00)
          to label %.critedge700 unwind label %340

340:                                              ; preds = %339
  %341 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %355

.critedge700:                                     ; preds = %339, %334
  %.sink831 = phi ptr [ %25, %334 ], [ %26, %339 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink831) #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
  %342 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %343 = add nsw i32 %342, 1
  store i32 %343, 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 %344 unwind label %357

344:                                              ; preds = %.critedge700
  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
  %345 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -5.300000e+00, double noundef -2.000000e+00) #7
  %346 = fadd double %345, 0x3FF4CCCCCCCCCCCC
  %347 = call noundef double @_ZSt3absd(double noundef %346)
  %348 = call noundef double @_ZSt3absd(double noundef 0xBFF4CCCCCCCCCCCC)
  %349 = fadd double %348, 1.000000e+00
  %350 = fdiv double %347, %349
  %351 = fpext double %345 to x86_fp80
  %352 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %351)
  br i1 %352, label %353, label %361

353:                                              ; preds = %344
  %354 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKBFFFA666666666666000)
  br i1 %354, label %373, label %361

355:                                              ; preds = %340, %336, %324
  %.pn602 = phi { ptr, i32 } [ %341, %340 ], [ %325, %324 ], [ %337, %336 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %356

356:                                              ; preds = %355, %322
  %.pn602.pn = phi { ptr, i32 } [ %.pn602, %355 ], [ %323, %322 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %1327

357:                                              ; preds = %.critedge700
  %358 = 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 %391

359:                                              ; preds = %373, %368
  %360 = landingpad { ptr, i32 }
          cleanup
  br label %390

361:                                              ; preds = %353, %344
  %362 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %351)
  br i1 %362, label %367, label %363

363:                                              ; preds = %361
  %364 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %351)
  %365 = fcmp oeq double %345, 0xBFF4CCCCCCCCCCCC
  %or.cond701 = and i1 %365, %364
  %366 = fcmp olt double %350, 0x3D06849B86A12B9B
  %or.cond782 = or i1 %366, %or.cond701
  br i1 %or.cond782, label %373, label %368

367:                                              ; preds = %361
  %.old781 = fcmp olt double %350, 0x3D06849B86A12B9B
  br i1 %.old781, label %373, label %368

368:                                              ; preds = %363, %367
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %369 unwind label %359

369:                                              ; preds = %368
  %370 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %29, i32 noundef %370, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %345, double noundef 0xBFF4CCCCCCCCCCCC, double noundef -5.300000e+00, double noundef -2.000000e+00)
          to label %.critedge703 unwind label %371

371:                                              ; preds = %369
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %390

373:                                              ; preds = %353, %363, %367
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %374 unwind label %359

374:                                              ; preds = %373
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %345, double noundef %350, double noundef -5.300000e+00, double noundef -2.000000e+00)
          to label %.critedge703 unwind label %375

375:                                              ; preds = %374
  %376 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %390

.critedge703:                                     ; preds = %374, %369
  %.sink832 = phi ptr [ %29, %369 ], [ %30, %374 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink832) #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
  %377 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %378 = add nsw i32 %377, 1
  store i32 %378, 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 %379 unwind label %392

379:                                              ; preds = %.critedge703
  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
  %380 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 1.850000e+01, double noundef 4.200000e+00) #7
  %381 = fadd double %380, 0xBFFB333333333330
  %382 = call noundef double @_ZSt3absd(double noundef %381)
  %383 = call noundef double @_ZSt3absd(double noundef 0x3FFB333333333330)
  %384 = fadd double %383, 1.000000e+00
  %385 = fdiv double %382, %384
  %386 = fpext double %380 to x86_fp80
  %387 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %386)
  br i1 %387, label %388, label %396

388:                                              ; preds = %379
  %389 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFFD999999999998000)
  br i1 %389, label %408, label %396

390:                                              ; preds = %375, %371, %359
  %.pn605 = phi { ptr, i32 } [ %376, %375 ], [ %360, %359 ], [ %372, %371 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %391

391:                                              ; preds = %390, %357
  %.pn605.pn = phi { ptr, i32 } [ %.pn605, %390 ], [ %358, %357 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %1327

392:                                              ; preds = %.critedge703
  %393 = 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 %426

394:                                              ; preds = %408, %403
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %425

396:                                              ; preds = %388, %379
  %397 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %386)
  br i1 %397, label %402, label %398

398:                                              ; preds = %396
  %399 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %386)
  %400 = fcmp oeq double %380, 0x3FFB333333333330
  %or.cond704 = and i1 %400, %399
  %401 = fcmp olt double %385, 0x3D06849B86A12B9B
  %or.cond784 = or i1 %401, %or.cond704
  br i1 %or.cond784, label %408, label %403

402:                                              ; preds = %396
  %.old783 = fcmp olt double %385, 0x3D06849B86A12B9B
  br i1 %.old783, label %408, label %403

403:                                              ; preds = %398, %402
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %404 unwind label %394

404:                                              ; preds = %403
  %405 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %33, i32 noundef %405, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %380, double noundef 0x3FFB333333333330, double noundef 1.850000e+01, double noundef 4.200000e+00)
          to label %.critedge706 unwind label %406

406:                                              ; preds = %404
  %407 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %425

408:                                              ; preds = %388, %398, %402
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %409 unwind label %394

409:                                              ; preds = %408
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %34, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %380, double noundef %385, double noundef 1.850000e+01, double noundef 4.200000e+00)
          to label %.critedge706 unwind label %410

410:                                              ; preds = %409
  %411 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %425

.critedge706:                                     ; preds = %409, %404
  %.sink833 = phi ptr [ %33, %404 ], [ %34, %409 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink833) #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
  %412 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, 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 %414 unwind label %427

414:                                              ; preds = %.critedge706
  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
  %415 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -1.850000e+01, double noundef 4.200000e+00) #7
  %416 = fadd double %415, 0x3FFB333333333330
  %417 = call noundef double @_ZSt3absd(double noundef %416)
  %418 = call noundef double @_ZSt3absd(double noundef 0xBFFB333333333330)
  %419 = fadd double %418, 1.000000e+00
  %420 = fdiv double %417, %419
  %421 = fpext double %415 to x86_fp80
  %422 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %421)
  br i1 %422, label %423, label %431

423:                                              ; preds = %414
  %424 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKBFFFD999999999998000)
  br i1 %424, label %443, label %431

425:                                              ; preds = %410, %406, %394
  %.pn608 = phi { ptr, i32 } [ %411, %410 ], [ %395, %394 ], [ %407, %406 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %426

426:                                              ; preds = %425, %392
  %.pn608.pn = phi { ptr, i32 } [ %.pn608, %425 ], [ %393, %392 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %1327

427:                                              ; preds = %.critedge706
  %428 = 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

429:                                              ; preds = %443, %438
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %460

431:                                              ; preds = %423, %414
  %432 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %421)
  br i1 %432, label %437, label %433

433:                                              ; preds = %431
  %434 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %421)
  %435 = fcmp oeq double %415, 0xBFFB333333333330
  %or.cond707 = and i1 %435, %434
  %436 = fcmp olt double %420, 0x3D06849B86A12B9B
  %or.cond786 = or i1 %436, %or.cond707
  br i1 %or.cond786, label %443, label %438

437:                                              ; preds = %431
  %.old785 = fcmp olt double %420, 0x3D06849B86A12B9B
  br i1 %.old785, label %443, label %438

438:                                              ; preds = %433, %437
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %439 unwind label %429

439:                                              ; preds = %438
  %440 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %37, i32 noundef %440, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %415, double noundef 0xBFFB333333333330, double noundef -1.850000e+01, double noundef 4.200000e+00)
          to label %.critedge709 unwind label %441

441:                                              ; preds = %439
  %442 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %460

443:                                              ; preds = %423, %433, %437
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %444 unwind label %429

444:                                              ; preds = %443
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %415, double noundef %420, double noundef -1.850000e+01, double noundef 4.200000e+00)
          to label %.critedge709 unwind label %445

445:                                              ; preds = %444
  %446 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %460

.critedge709:                                     ; preds = %444, %439
  %.sink834 = phi ptr [ %37, %439 ], [ %38, %444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink834) #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
  %447 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %448 = add nsw i32 %447, 1
  store i32 %448, 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 %449 unwind label %462

449:                                              ; preds = %.critedge709
  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
  %450 = call noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef 1.850000e+01, double noundef -4.200000e+00) #7
  %451 = fadd double %450, 0xBFFB333333333330
  %452 = call noundef double @_ZSt3absd(double noundef %451)
  %453 = call noundef double @_ZSt3absd(double noundef 0x3FFB333333333330)
  %454 = fadd double %453, 1.000000e+00
  %455 = fdiv double %452, %454
  %456 = fpext double %450 to x86_fp80
  %457 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %456)
  br i1 %457, label %458, label %466

458:                                              ; preds = %449
  %459 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFFD999999999998000)
  br i1 %459, label %478, label %466

460:                                              ; preds = %445, %441, %429
  %.pn611 = phi { ptr, i32 } [ %446, %445 ], [ %430, %429 ], [ %442, %441 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %461

461:                                              ; preds = %460, %427
  %.pn611.pn = phi { ptr, i32 } [ %.pn611, %460 ], [ %428, %427 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %1327

462:                                              ; preds = %.critedge709
  %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 %496

464:                                              ; preds = %478, %473
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %495

466:                                              ; preds = %458, %449
  %467 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %456)
  br i1 %467, label %472, label %468

468:                                              ; preds = %466
  %469 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %456)
  %470 = fcmp oeq double %450, 0x3FFB333333333330
  %or.cond710 = and i1 %470, %469
  %471 = fcmp olt double %455, 0x3D06849B86A12B9B
  %or.cond788 = or i1 %471, %or.cond710
  br i1 %or.cond788, label %478, label %473

472:                                              ; preds = %466
  %.old787 = fcmp olt double %455, 0x3D06849B86A12B9B
  br i1 %.old787, 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_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %41, i32 noundef %475, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %450, double noundef 0x3FFB333333333330, double noundef 1.850000e+01, double noundef -4.200000e+00)
          to label %.critedge712 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 %495

478:                                              ; preds = %458, %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_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %42, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %450, double noundef %455, double noundef 1.850000e+01, double noundef -4.200000e+00)
          to label %.critedge712 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 %495

.critedge712:                                     ; preds = %479, %474
  %.sink835 = phi ptr [ %41, %474 ], [ %42, %479 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink835) #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 %497

484:                                              ; preds = %.critedge712
  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 @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef -1.850000e+01, double noundef -4.200000e+00) #7
  %486 = fadd double %485, 0x3FFB333333333330
  %487 = call noundef double @_ZSt3absd(double noundef %486)
  %488 = call noundef double @_ZSt3absd(double noundef 0xBFFB333333333330)
  %489 = fadd double %488, 1.000000e+00
  %490 = fdiv double %487, %489
  %491 = fpext double %485 to x86_fp80
  %492 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %491)
  br i1 %492, label %493, label %501

493:                                              ; preds = %484
  %494 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xKBFFFD999999999998000)
  br i1 %494, label %513, label %501

495:                                              ; preds = %480, %476, %464
  %.pn614 = 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 %496

496:                                              ; preds = %495, %462
  %.pn614.pn = phi { ptr, i32 } [ %.pn614, %495 ], [ %463, %462 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  br label %1327

497:                                              ; preds = %.critedge712
  %498 = 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 %536

499:                                              ; preds = %513, %508
  %500 = landingpad { ptr, i32 }
          cleanup
  br label %535

501:                                              ; preds = %493, %484
  %502 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %491)
  br i1 %502, label %507, label %503

503:                                              ; preds = %501
  %504 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %491)
  %505 = fcmp oeq double %485, 0xBFFB333333333330
  %or.cond713 = and i1 %505, %504
  %506 = fcmp olt double %490, 0x3D06849B86A12B9B
  %or.cond790 = or i1 %506, %or.cond713
  br i1 %or.cond790, label %513, label %508

507:                                              ; preds = %501
  %.old789 = fcmp olt double %490, 0x3D06849B86A12B9B
  br i1 %.old789, label %513, label %508

508:                                              ; preds = %503, %507
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %509 unwind label %499

509:                                              ; preds = %508
  %510 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %45, i32 noundef %510, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %485, double noundef 0xBFFB333333333330, double noundef -1.850000e+01, double noundef -4.200000e+00)
          to label %.critedge715 unwind label %511

511:                                              ; preds = %509
  %512 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %535

513:                                              ; preds = %493, %503, %507
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %514 unwind label %499

514:                                              ; preds = %513
  invoke void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %46, i32 noundef 3, i32 noundef 2, i32 noundef 2, double noundef %485, double noundef %490, double noundef -1.850000e+01, double noundef -4.200000e+00)
          to label %.critedge715 unwind label %515

515:                                              ; preds = %514
  %516 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %535

.critedge715:                                     ; preds = %514, %509
  %.sink836 = phi ptr [ %45, %509 ], [ %46, %514 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink836) #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
  %517 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, 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 %519 unwind label %537

519:                                              ; preds = %.critedge715
  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
  %520 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %521 = fneg x86_fp80 %520
  %522 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %521, double noundef 0.000000e+00) #7
  %523 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %524 = fneg x86_fp80 %523
  %525 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %524, double noundef 0.000000e+00)
          to label %526 unwind label %539

526:                                              ; preds = %519
  %527 = fsub x86_fp80 %522, %525
  %528 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %527)
  %529 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %525)
  %530 = fadd x86_fp80 %529, 0xK3FFF8000000000000000
  %531 = fdiv x86_fp80 %528, %530
  %532 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %522)
  br i1 %532, label %533, label %543

533:                                              ; preds = %526
  %534 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %525)
  br i1 %534, label %557, label %543

535:                                              ; preds = %515, %511, %499
  %.pn617 = phi { ptr, i32 } [ %516, %515 ], [ %500, %499 ], [ %512, %511 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %536

536:                                              ; preds = %535, %497
  %.pn617.pn = phi { ptr, i32 } [ %.pn617, %535 ], [ %498, %497 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  br label %1327

537:                                              ; preds = %.critedge715
  %538 = 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 %582

539:                                              ; preds = %519
  %540 = landingpad { ptr, i32 }
          cleanup
  br label %581

541:                                              ; preds = %557, %550
  %542 = landingpad { ptr, i32 }
          cleanup
  br label %581

543:                                              ; preds = %533, %526
  %544 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %522)
  br i1 %544, label %549, label %545

545:                                              ; preds = %543
  %546 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %522)
  %547 = fcmp oeq x86_fp80 %522, %525
  %or.cond716 = and i1 %547, %546
  %548 = fcmp olt x86_fp80 %531, 0xK3FD0B424DC35095CD800
  %or.cond792 = or i1 %548, %or.cond716
  br i1 %or.cond792, label %557, label %550

549:                                              ; preds = %543
  %.old791 = fcmp olt x86_fp80 %531, 0xK3FD0B424DC35095CD800
  br i1 %.old791, label %557, label %550

550:                                              ; preds = %545, %549
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %551 unwind label %541

551:                                              ; preds = %550
  %552 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %553 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %554 = fneg x86_fp80 %553
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %49, i32 noundef %552, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %522, x86_fp80 noundef %525, x86_fp80 noundef %554, double noundef 0.000000e+00)
          to label %.critedge718 unwind label %555

555:                                              ; preds = %551
  %556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %581

557:                                              ; preds = %533, %545, %549
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %558 unwind label %541

558:                                              ; preds = %557
  %559 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %560 = fneg x86_fp80 %559
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %50, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %522, x86_fp80 noundef %531, x86_fp80 noundef %560, double noundef 0.000000e+00)
          to label %.critedge718 unwind label %561

561:                                              ; preds = %558
  %562 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %581

.critedge718:                                     ; preds = %558, %551
  %.sink837 = phi ptr [ %49, %551 ], [ %50, %558 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink837) #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
  %563 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %564 = add nsw i32 %563, 1
  store i32 %564, 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 %565 unwind label %583

565:                                              ; preds = %.critedge718
  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
  %566 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %567 = fneg x86_fp80 %566
  %568 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %567, double noundef -1.000000e+00) #7
  %569 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %570 = fneg x86_fp80 %569
  %571 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %570, double noundef -1.000000e+00)
          to label %572 unwind label %585

572:                                              ; preds = %565
  %573 = fsub x86_fp80 %568, %571
  %574 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %573)
  %575 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %571)
  %576 = fadd x86_fp80 %575, 0xK3FFF8000000000000000
  %577 = fdiv x86_fp80 %574, %576
  %578 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %568)
  br i1 %578, label %579, label %589

579:                                              ; preds = %572
  %580 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %571)
  br i1 %580, label %603, label %589

581:                                              ; preds = %541, %555, %561, %539
  %.pn620.pn = phi { ptr, i32 } [ %540, %539 ], [ %562, %561 ], [ %542, %541 ], [ %556, %555 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %582

582:                                              ; preds = %581, %537
  %.pn620.pn.pn = phi { ptr, i32 } [ %.pn620.pn, %581 ], [ %538, %537 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  br label %1327

583:                                              ; preds = %.critedge718
  %584 = 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 %628

585:                                              ; preds = %565
  %586 = landingpad { ptr, i32 }
          cleanup
  br label %627

587:                                              ; preds = %603, %596
  %588 = landingpad { ptr, i32 }
          cleanup
  br label %627

589:                                              ; preds = %579, %572
  %590 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %568)
  br i1 %590, label %595, label %591

591:                                              ; preds = %589
  %592 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %568)
  %593 = fcmp oeq x86_fp80 %568, %571
  %or.cond719 = and i1 %593, %592
  %594 = fcmp olt x86_fp80 %577, 0xK3FD0B424DC35095CD800
  %or.cond794 = or i1 %594, %or.cond719
  br i1 %or.cond794, label %603, label %596

595:                                              ; preds = %589
  %.old793 = fcmp olt x86_fp80 %577, 0xK3FD0B424DC35095CD800
  br i1 %.old793, label %603, label %596

596:                                              ; preds = %591, %595
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %597 unwind label %587

597:                                              ; preds = %596
  %598 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %599 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %600 = fneg x86_fp80 %599
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %53, i32 noundef %598, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %568, x86_fp80 noundef %571, x86_fp80 noundef %600, double noundef -1.000000e+00)
          to label %.critedge721 unwind label %601

601:                                              ; preds = %597
  %602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %627

603:                                              ; preds = %579, %591, %595
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %604 unwind label %587

604:                                              ; preds = %603
  %605 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %606 = fneg x86_fp80 %605
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %54, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %568, x86_fp80 noundef %577, x86_fp80 noundef %606, double noundef -1.000000e+00)
          to label %.critedge721 unwind label %607

607:                                              ; preds = %604
  %608 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %627

.critedge721:                                     ; preds = %604, %597
  %.sink838 = phi ptr [ %53, %597 ], [ %54, %604 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink838) #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
  %609 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %610 = add nsw i32 %609, 1
  store i32 %610, 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 %611 unwind label %629

611:                                              ; preds = %.critedge721
  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
  %612 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %613 = fneg x86_fp80 %612
  %614 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %613, double noundef 1.000000e+00) #7
  %615 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %616 = fneg x86_fp80 %615
  %617 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %616, double noundef 1.000000e+00)
          to label %618 unwind label %631

618:                                              ; preds = %611
  %619 = fsub x86_fp80 %614, %617
  %620 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %619)
  %621 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %617)
  %622 = fadd x86_fp80 %621, 0xK3FFF8000000000000000
  %623 = fdiv x86_fp80 %620, %622
  %624 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %614)
  br i1 %624, label %625, label %635

625:                                              ; preds = %618
  %626 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %617)
  br i1 %626, label %649, label %635

627:                                              ; preds = %587, %601, %607, %585
  %.pn624.pn = phi { ptr, i32 } [ %586, %585 ], [ %608, %607 ], [ %588, %587 ], [ %602, %601 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %628

628:                                              ; preds = %627, %583
  %.pn624.pn.pn = phi { ptr, i32 } [ %.pn624.pn, %627 ], [ %584, %583 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  br label %1327

629:                                              ; preds = %.critedge721
  %630 = 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 %675

631:                                              ; preds = %611
  %632 = landingpad { ptr, i32 }
          cleanup
  br label %674

633:                                              ; preds = %649, %642
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %674

635:                                              ; preds = %625, %618
  %636 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %614)
  br i1 %636, label %641, label %637

637:                                              ; preds = %635
  %638 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %614)
  %639 = fcmp oeq x86_fp80 %614, %617
  %or.cond722 = and i1 %639, %638
  %640 = fcmp olt x86_fp80 %623, 0xK3FD0B424DC35095CD800
  %or.cond796 = or i1 %640, %or.cond722
  br i1 %or.cond796, label %649, label %642

641:                                              ; preds = %635
  %.old795 = fcmp olt x86_fp80 %623, 0xK3FD0B424DC35095CD800
  br i1 %.old795, label %649, label %642

642:                                              ; preds = %637, %641
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %643 unwind label %633

643:                                              ; preds = %642
  %644 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %645 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %646 = fneg x86_fp80 %645
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %57, i32 noundef %644, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %614, x86_fp80 noundef %617, x86_fp80 noundef %646, double noundef 1.000000e+00)
          to label %.critedge724 unwind label %647

647:                                              ; preds = %643
  %648 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %674

649:                                              ; preds = %625, %637, %641
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %650 unwind label %633

650:                                              ; preds = %649
  %651 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %652 = fneg x86_fp80 %651
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %58, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %614, x86_fp80 noundef %623, x86_fp80 noundef %652, double noundef 1.000000e+00)
          to label %.critedge724 unwind label %653

653:                                              ; preds = %650
  %654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %674

.critedge724:                                     ; preds = %650, %643
  %.sink839 = phi ptr [ %57, %643 ], [ %58, %650 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink839) #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
  %655 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %656 = add nsw i32 %655, 1
  store i32 %656, 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 %657 unwind label %676

657:                                              ; preds = %.critedge724
  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
  %658 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %659 = fneg x86_fp80 %658
  %660 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %661 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %659, x86_fp80 noundef %660) #7
  %662 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %663 = fneg x86_fp80 %662
  %664 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %665 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %663, x86_fp80 noundef %664)
  %666 = fsub x86_fp80 %661, %665
  %667 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %666)
  %668 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %665)
  %669 = fadd x86_fp80 %668, 0xK3FFF8000000000000000
  %670 = fdiv x86_fp80 %667, %669
  %671 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %661)
  br i1 %671, label %672, label %680

672:                                              ; preds = %657
  %673 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %665)
  br i1 %673, label %695, label %680

674:                                              ; preds = %633, %647, %653, %631
  %.pn628.pn = phi { ptr, i32 } [ %632, %631 ], [ %654, %653 ], [ %634, %633 ], [ %648, %647 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %675

675:                                              ; preds = %674, %629
  %.pn628.pn.pn = phi { ptr, i32 } [ %.pn628.pn, %674 ], [ %630, %629 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  br label %1327

676:                                              ; preds = %.critedge724
  %677 = 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 %724

678:                                              ; preds = %695, %687
  %679 = landingpad { ptr, i32 }
          cleanup
  br label %723

680:                                              ; preds = %672, %657
  %681 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %661)
  br i1 %681, label %686, label %682

682:                                              ; preds = %680
  %683 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %661)
  %684 = fcmp oeq x86_fp80 %661, %665
  %or.cond725 = and i1 %684, %683
  %685 = fcmp olt x86_fp80 %670, 0xK3FD0B424DC35095CD800
  %or.cond798 = or i1 %685, %or.cond725
  br i1 %or.cond798, label %695, label %687

686:                                              ; preds = %680
  %.old797 = fcmp olt x86_fp80 %670, 0xK3FD0B424DC35095CD800
  br i1 %.old797, label %695, label %687

687:                                              ; preds = %682, %686
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %688 unwind label %678

688:                                              ; preds = %687
  %689 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %690 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %691 = fneg x86_fp80 %690
  %692 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %61, i32 noundef %689, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %661, x86_fp80 noundef %665, x86_fp80 noundef %691, x86_fp80 noundef %692)
          to label %.critedge727 unwind label %693

693:                                              ; preds = %688
  %694 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %723

695:                                              ; preds = %672, %682, %686
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %696 unwind label %678

696:                                              ; preds = %695
  %697 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %698 = fneg x86_fp80 %697
  %699 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %62, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %661, x86_fp80 noundef %670, x86_fp80 noundef %698, x86_fp80 noundef %699)
          to label %.critedge727 unwind label %700

700:                                              ; preds = %696
  %701 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %723

.critedge727:                                     ; preds = %696, %688
  %.sink840 = phi ptr [ %61, %688 ], [ %62, %696 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink840) #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
  %702 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %703 = add nsw i32 %702, 1
  store i32 %703, 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 %704 unwind label %725

704:                                              ; preds = %.critedge727
  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
  %705 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %706 = fneg x86_fp80 %705
  %707 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %708 = fneg x86_fp80 %707
  %709 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %706, x86_fp80 noundef %708) #7
  %710 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %711 = fneg x86_fp80 %710
  %712 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %713 = fneg x86_fp80 %712
  %714 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %711, x86_fp80 noundef %713)
  %715 = fsub x86_fp80 %709, %714
  %716 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %715)
  %717 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %714)
  %718 = fadd x86_fp80 %717, 0xK3FFF8000000000000000
  %719 = fdiv x86_fp80 %716, %718
  %720 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %709)
  br i1 %720, label %721, label %729

721:                                              ; preds = %704
  %722 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %714)
  br i1 %722, label %745, label %729

723:                                              ; preds = %700, %693, %678
  %.pn632 = phi { ptr, i32 } [ %701, %700 ], [ %679, %678 ], [ %694, %693 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %724

724:                                              ; preds = %723, %676
  %.pn632.pn = phi { ptr, i32 } [ %.pn632, %723 ], [ %677, %676 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  br label %1327

725:                                              ; preds = %.critedge727
  %726 = 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 %773

727:                                              ; preds = %745, %736
  %728 = landingpad { ptr, i32 }
          cleanup
  br label %772

729:                                              ; preds = %721, %704
  %730 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %709)
  br i1 %730, label %735, label %731

731:                                              ; preds = %729
  %732 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %709)
  %733 = fcmp oeq x86_fp80 %709, %714
  %or.cond728 = and i1 %733, %732
  %734 = fcmp olt x86_fp80 %719, 0xK3FD0B424DC35095CD800
  %or.cond800 = or i1 %734, %or.cond728
  br i1 %or.cond800, label %745, label %736

735:                                              ; preds = %729
  %.old799 = fcmp olt x86_fp80 %719, 0xK3FD0B424DC35095CD800
  br i1 %.old799, label %745, label %736

736:                                              ; preds = %731, %735
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %737 unwind label %727

737:                                              ; preds = %736
  %738 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %739 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %740 = fneg x86_fp80 %739
  %741 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %742 = fneg x86_fp80 %741
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %65, i32 noundef %738, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %709, x86_fp80 noundef %714, x86_fp80 noundef %740, x86_fp80 noundef %742)
          to label %.critedge730 unwind label %743

743:                                              ; preds = %737
  %744 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %772

745:                                              ; preds = %721, %731, %735
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %746 unwind label %727

746:                                              ; preds = %745
  %747 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %748 = fneg x86_fp80 %747
  %749 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %750 = fneg x86_fp80 %749
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %66, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %709, x86_fp80 noundef %719, x86_fp80 noundef %748, x86_fp80 noundef %750)
          to label %.critedge730 unwind label %751

751:                                              ; preds = %746
  %752 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %772

.critedge730:                                     ; preds = %746, %737
  %.sink841 = phi ptr [ %65, %737 ], [ %66, %746 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink841) #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
  %753 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %754 = add nsw i32 %753, 1
  store i32 %754, 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 %755 unwind label %774

755:                                              ; preds = %.critedge730
  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
  %756 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %757 = fneg x86_fp80 %756
  %758 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %759 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %757, x86_fp80 noundef %758) #7
  %760 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %761 = fneg x86_fp80 %760
  %762 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %763 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %761, x86_fp80 noundef %762)
  %764 = fsub x86_fp80 %759, %763
  %765 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %764)
  %766 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %763)
  %767 = fadd x86_fp80 %766, 0xK3FFF8000000000000000
  %768 = fdiv x86_fp80 %765, %767
  %769 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %759)
  br i1 %769, label %770, label %778

770:                                              ; preds = %755
  %771 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %763)
  br i1 %771, label %793, label %778

772:                                              ; preds = %751, %743, %727
  %.pn635 = phi { ptr, i32 } [ %752, %751 ], [ %728, %727 ], [ %744, %743 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %773

773:                                              ; preds = %772, %725
  %.pn635.pn = phi { ptr, i32 } [ %.pn635, %772 ], [ %726, %725 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  br label %1327

774:                                              ; preds = %.critedge730
  %775 = 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 %817

776:                                              ; preds = %793, %785
  %777 = landingpad { ptr, i32 }
          cleanup
  br label %816

778:                                              ; preds = %770, %755
  %779 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %759)
  br i1 %779, label %784, label %780

780:                                              ; preds = %778
  %781 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %759)
  %782 = fcmp oeq x86_fp80 %759, %763
  %or.cond731 = and i1 %782, %781
  %783 = fcmp olt x86_fp80 %768, 0xK3FD0B424DC35095CD800
  %or.cond802 = or i1 %783, %or.cond731
  br i1 %or.cond802, label %793, label %785

784:                                              ; preds = %778
  %.old801 = fcmp olt x86_fp80 %768, 0xK3FD0B424DC35095CD800
  br i1 %.old801, label %793, label %785

785:                                              ; preds = %780, %784
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %786 unwind label %776

786:                                              ; preds = %785
  %787 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %788 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %789 = fneg x86_fp80 %788
  %790 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %69, i32 noundef %787, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %759, x86_fp80 noundef %763, x86_fp80 noundef %789, x86_fp80 noundef %790)
          to label %.critedge733 unwind label %791

791:                                              ; preds = %786
  %792 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %816

793:                                              ; preds = %770, %780, %784
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %794 unwind label %776

794:                                              ; preds = %793
  %795 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %796 = fneg x86_fp80 %795
  %797 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %70, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %759, x86_fp80 noundef %768, x86_fp80 noundef %796, x86_fp80 noundef %797)
          to label %.critedge733 unwind label %798

798:                                              ; preds = %794
  %799 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %816

.critedge733:                                     ; preds = %794, %786
  %.sink842 = phi ptr [ %69, %786 ], [ %70, %794 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink842) #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
  %800 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %801 = add nsw i32 %800, 1
  store i32 %801, 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 %802 unwind label %818

802:                                              ; preds = %.critedge733
  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
  %803 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %804 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %803, double noundef 0.000000e+00) #7
  %805 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %806 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %805, double noundef 0.000000e+00)
          to label %807 unwind label %820

807:                                              ; preds = %802
  %808 = fsub x86_fp80 %804, %806
  %809 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %808)
  %810 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %806)
  %811 = fadd x86_fp80 %810, 0xK3FFF8000000000000000
  %812 = fdiv x86_fp80 %809, %811
  %813 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %804)
  br i1 %813, label %814, label %824

814:                                              ; preds = %807
  %815 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %806)
  br i1 %815, label %837, label %824

816:                                              ; preds = %798, %791, %776
  %.pn638 = phi { ptr, i32 } [ %799, %798 ], [ %777, %776 ], [ %792, %791 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %817

817:                                              ; preds = %816, %774
  %.pn638.pn = phi { ptr, i32 } [ %.pn638, %816 ], [ %775, %774 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  br label %1327

818:                                              ; preds = %.critedge733
  %819 = 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 %859

820:                                              ; preds = %802
  %821 = landingpad { ptr, i32 }
          cleanup
  br label %858

822:                                              ; preds = %837, %831
  %823 = landingpad { ptr, i32 }
          cleanup
  br label %858

824:                                              ; preds = %814, %807
  %825 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %804)
  br i1 %825, label %830, label %826

826:                                              ; preds = %824
  %827 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %804)
  %828 = fcmp oeq x86_fp80 %804, %806
  %or.cond734 = and i1 %828, %827
  %829 = fcmp olt x86_fp80 %812, 0xK3FD0B424DC35095CD800
  %or.cond804 = or i1 %829, %or.cond734
  br i1 %or.cond804, label %837, label %831

830:                                              ; preds = %824
  %.old803 = fcmp olt x86_fp80 %812, 0xK3FD0B424DC35095CD800
  br i1 %.old803, label %837, label %831

831:                                              ; preds = %826, %830
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %832 unwind label %822

832:                                              ; preds = %831
  %833 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %834 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %73, i32 noundef %833, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %804, x86_fp80 noundef %806, x86_fp80 noundef %834, double noundef 0.000000e+00)
          to label %.critedge736 unwind label %835

835:                                              ; preds = %832
  %836 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %858

837:                                              ; preds = %814, %826, %830
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %838 unwind label %822

838:                                              ; preds = %837
  %839 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %74, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %804, x86_fp80 noundef %812, x86_fp80 noundef %839, double noundef 0.000000e+00)
          to label %.critedge736 unwind label %840

840:                                              ; preds = %838
  %841 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %858

.critedge736:                                     ; preds = %838, %832
  %.sink843 = phi ptr [ %73, %832 ], [ %74, %838 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink843) #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
  %842 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %843 = add nsw i32 %842, 1
  store i32 %843, 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 %844 unwind label %860

844:                                              ; preds = %.critedge736
  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
  %845 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %846 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %845, double noundef -1.000000e+00) #7
  %847 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %848 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %847, double noundef -1.000000e+00)
          to label %849 unwind label %862

849:                                              ; preds = %844
  %850 = fsub x86_fp80 %846, %848
  %851 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %850)
  %852 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %848)
  %853 = fadd x86_fp80 %852, 0xK3FFF8000000000000000
  %854 = fdiv x86_fp80 %851, %853
  %855 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %846)
  br i1 %855, label %856, label %866

856:                                              ; preds = %849
  %857 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %848)
  br i1 %857, label %879, label %866

858:                                              ; preds = %822, %835, %840, %820
  %.pn641.pn = phi { ptr, i32 } [ %821, %820 ], [ %841, %840 ], [ %823, %822 ], [ %836, %835 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %859

859:                                              ; preds = %858, %818
  %.pn641.pn.pn = phi { ptr, i32 } [ %.pn641.pn, %858 ], [ %819, %818 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  br label %1327

860:                                              ; preds = %.critedge736
  %861 = 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 %901

862:                                              ; preds = %844
  %863 = landingpad { ptr, i32 }
          cleanup
  br label %900

864:                                              ; preds = %879, %873
  %865 = landingpad { ptr, i32 }
          cleanup
  br label %900

866:                                              ; preds = %856, %849
  %867 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %846)
  br i1 %867, label %872, label %868

868:                                              ; preds = %866
  %869 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %846)
  %870 = fcmp oeq x86_fp80 %846, %848
  %or.cond737 = and i1 %870, %869
  %871 = fcmp olt x86_fp80 %854, 0xK3FD0B424DC35095CD800
  %or.cond806 = or i1 %871, %or.cond737
  br i1 %or.cond806, label %879, label %873

872:                                              ; preds = %866
  %.old805 = fcmp olt x86_fp80 %854, 0xK3FD0B424DC35095CD800
  br i1 %.old805, label %879, label %873

873:                                              ; preds = %868, %872
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %874 unwind label %864

874:                                              ; preds = %873
  %875 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %876 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %77, i32 noundef %875, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %846, x86_fp80 noundef %848, x86_fp80 noundef %876, double noundef -1.000000e+00)
          to label %.critedge739 unwind label %877

877:                                              ; preds = %874
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %900

879:                                              ; preds = %856, %868, %872
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %880 unwind label %864

880:                                              ; preds = %879
  %881 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %78, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %846, x86_fp80 noundef %854, x86_fp80 noundef %881, double noundef -1.000000e+00)
          to label %.critedge739 unwind label %882

882:                                              ; preds = %880
  %883 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %900

.critedge739:                                     ; preds = %880, %874
  %.sink844 = phi ptr [ %77, %874 ], [ %78, %880 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink844) #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
  %884 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %885 = add nsw i32 %884, 1
  store i32 %885, 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 %886 unwind label %902

886:                                              ; preds = %.critedge739
  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
  %887 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %888 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %887, double noundef 1.000000e+00) #7
  %889 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %890 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %889, double noundef 1.000000e+00)
          to label %891 unwind label %904

891:                                              ; preds = %886
  %892 = fsub x86_fp80 %888, %890
  %893 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %892)
  %894 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %890)
  %895 = fadd x86_fp80 %894, 0xK3FFF8000000000000000
  %896 = fdiv x86_fp80 %893, %895
  %897 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %888)
  br i1 %897, label %898, label %908

898:                                              ; preds = %891
  %899 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %890)
  br i1 %899, label %921, label %908

900:                                              ; preds = %864, %877, %882, %862
  %.pn645.pn = phi { ptr, i32 } [ %863, %862 ], [ %883, %882 ], [ %865, %864 ], [ %878, %877 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %901

901:                                              ; preds = %900, %860
  %.pn645.pn.pn = phi { ptr, i32 } [ %.pn645.pn, %900 ], [ %861, %860 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  br label %1327

902:                                              ; preds = %.critedge739
  %903 = 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 %944

904:                                              ; preds = %886
  %905 = landingpad { ptr, i32 }
          cleanup
  br label %943

906:                                              ; preds = %921, %915
  %907 = landingpad { ptr, i32 }
          cleanup
  br label %943

908:                                              ; preds = %898, %891
  %909 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %888)
  br i1 %909, label %914, label %910

910:                                              ; preds = %908
  %911 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %888)
  %912 = fcmp oeq x86_fp80 %888, %890
  %or.cond740 = and i1 %912, %911
  %913 = fcmp olt x86_fp80 %896, 0xK3FD0B424DC35095CD800
  %or.cond808 = or i1 %913, %or.cond740
  br i1 %or.cond808, label %921, label %915

914:                                              ; preds = %908
  %.old807 = fcmp olt x86_fp80 %896, 0xK3FD0B424DC35095CD800
  br i1 %.old807, label %921, label %915

915:                                              ; preds = %910, %914
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %916 unwind label %906

916:                                              ; preds = %915
  %917 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %918 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %81, i32 noundef %917, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %888, x86_fp80 noundef %890, x86_fp80 noundef %918, double noundef 1.000000e+00)
          to label %.critedge742 unwind label %919

919:                                              ; preds = %916
  %920 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %943

921:                                              ; preds = %898, %910, %914
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %922 unwind label %906

922:                                              ; preds = %921
  %923 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %82, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %888, x86_fp80 noundef %896, x86_fp80 noundef %923, double noundef 1.000000e+00)
          to label %.critedge742 unwind label %924

924:                                              ; preds = %922
  %925 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %943

.critedge742:                                     ; preds = %922, %916
  %.sink845 = phi ptr [ %81, %916 ], [ %82, %922 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink845) #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
  %926 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %927 = add nsw i32 %926, 1
  store i32 %927, 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 %928 unwind label %945

928:                                              ; preds = %.critedge742
  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
  %929 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %930 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %931 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %929, x86_fp80 noundef %930) #7
  %932 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %933 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %934 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %932, x86_fp80 noundef %933)
  %935 = fsub x86_fp80 %931, %934
  %936 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %935)
  %937 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %934)
  %938 = fadd x86_fp80 %937, 0xK3FFF8000000000000000
  %939 = fdiv x86_fp80 %936, %938
  %940 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %931)
  br i1 %940, label %941, label %949

941:                                              ; preds = %928
  %942 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %934)
  br i1 %942, label %963, label %949

943:                                              ; preds = %906, %919, %924, %904
  %.pn649.pn = phi { ptr, i32 } [ %905, %904 ], [ %925, %924 ], [ %907, %906 ], [ %920, %919 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %944

944:                                              ; preds = %943, %902
  %.pn649.pn.pn = phi { ptr, i32 } [ %.pn649.pn, %943 ], [ %903, %902 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  br label %1327

945:                                              ; preds = %.critedge742
  %946 = 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 %989

947:                                              ; preds = %963, %956
  %948 = landingpad { ptr, i32 }
          cleanup
  br label %988

949:                                              ; preds = %941, %928
  %950 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %931)
  br i1 %950, label %955, label %951

951:                                              ; preds = %949
  %952 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %931)
  %953 = fcmp oeq x86_fp80 %931, %934
  %or.cond743 = and i1 %953, %952
  %954 = fcmp olt x86_fp80 %939, 0xK3FD0B424DC35095CD800
  %or.cond810 = or i1 %954, %or.cond743
  br i1 %or.cond810, label %963, label %956

955:                                              ; preds = %949
  %.old809 = fcmp olt x86_fp80 %939, 0xK3FD0B424DC35095CD800
  br i1 %.old809, label %963, label %956

956:                                              ; preds = %951, %955
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %957 unwind label %947

957:                                              ; preds = %956
  %958 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %959 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %960 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %85, i32 noundef %958, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %931, x86_fp80 noundef %934, x86_fp80 noundef %959, x86_fp80 noundef %960)
          to label %.critedge745 unwind label %961

961:                                              ; preds = %957
  %962 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %988

963:                                              ; preds = %941, %951, %955
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %964 unwind label %947

964:                                              ; preds = %963
  %965 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %966 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %86, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %931, x86_fp80 noundef %939, x86_fp80 noundef %965, x86_fp80 noundef %966)
          to label %.critedge745 unwind label %967

967:                                              ; preds = %964
  %968 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %988

.critedge745:                                     ; preds = %964, %957
  %.sink846 = phi ptr [ %85, %957 ], [ %86, %964 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink846) #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
  %969 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %970 = add nsw i32 %969, 1
  store i32 %970, 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 %971 unwind label %990

971:                                              ; preds = %.critedge745
  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
  %972 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %973 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %974 = fneg x86_fp80 %973
  %975 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %972, x86_fp80 noundef %974) #7
  %976 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %977 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %978 = fneg x86_fp80 %977
  %979 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %976, x86_fp80 noundef %978)
  %980 = fsub x86_fp80 %975, %979
  %981 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %980)
  %982 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %979)
  %983 = fadd x86_fp80 %982, 0xK3FFF8000000000000000
  %984 = fdiv x86_fp80 %981, %983
  %985 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %975)
  br i1 %985, label %986, label %994

986:                                              ; preds = %971
  %987 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %979)
  br i1 %987, label %1009, label %994

988:                                              ; preds = %967, %961, %947
  %.pn653 = phi { ptr, i32 } [ %968, %967 ], [ %948, %947 ], [ %962, %961 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %989

989:                                              ; preds = %988, %945
  %.pn653.pn = phi { ptr, i32 } [ %.pn653, %988 ], [ %946, %945 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  br label %1327

990:                                              ; preds = %.critedge745
  %991 = 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 %1034

992:                                              ; preds = %1009, %1001
  %993 = landingpad { ptr, i32 }
          cleanup
  br label %1033

994:                                              ; preds = %986, %971
  %995 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %975)
  br i1 %995, label %1000, label %996

996:                                              ; preds = %994
  %997 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %975)
  %998 = fcmp oeq x86_fp80 %975, %979
  %or.cond746 = and i1 %998, %997
  %999 = fcmp olt x86_fp80 %984, 0xK3FD0B424DC35095CD800
  %or.cond812 = or i1 %999, %or.cond746
  br i1 %or.cond812, label %1009, label %1001

1000:                                             ; preds = %994
  %.old811 = fcmp olt x86_fp80 %984, 0xK3FD0B424DC35095CD800
  br i1 %.old811, label %1009, label %1001

1001:                                             ; preds = %996, %1000
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1002 unwind label %992

1002:                                             ; preds = %1001
  %1003 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1004 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1005 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1006 = fneg x86_fp80 %1005
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %89, i32 noundef %1003, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %975, x86_fp80 noundef %979, x86_fp80 noundef %1004, x86_fp80 noundef %1006)
          to label %.critedge748 unwind label %1007

1007:                                             ; preds = %1002
  %1008 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  br label %1033

1009:                                             ; preds = %986, %996, %1000
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1010 unwind label %992

1010:                                             ; preds = %1009
  %1011 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1012 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1013 = fneg x86_fp80 %1012
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %90, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %975, x86_fp80 noundef %984, x86_fp80 noundef %1011, x86_fp80 noundef %1013)
          to label %.critedge748 unwind label %1014

1014:                                             ; preds = %1010
  %1015 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %1033

.critedge748:                                     ; preds = %1010, %1002
  %.sink847 = phi ptr [ %89, %1002 ], [ %90, %1010 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink847) #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
  %1016 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1017 = add nsw i32 %1016, 1
  store i32 %1017, 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 %1018 unwind label %1035

1018:                                             ; preds = %.critedge748
  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
  %1019 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1020 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1021 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1019, x86_fp80 noundef %1020) #7
  %1022 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1023 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1024 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %1022, x86_fp80 noundef %1023)
  %1025 = fsub x86_fp80 %1021, %1024
  %1026 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1025)
  %1027 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1024)
  %1028 = fadd x86_fp80 %1027, 0xK3FFF8000000000000000
  %1029 = fdiv x86_fp80 %1026, %1028
  %1030 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1021)
  br i1 %1030, label %1031, label %1039

1031:                                             ; preds = %1018
  %1032 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1024)
  br i1 %1032, label %1053, label %1039

1033:                                             ; preds = %1014, %1007, %992
  %.pn656 = phi { ptr, i32 } [ %1015, %1014 ], [ %993, %992 ], [ %1008, %1007 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #7
  br label %1034

1034:                                             ; preds = %1033, %990
  %.pn656.pn = phi { ptr, i32 } [ %.pn656, %1033 ], [ %991, %990 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #7
  br label %1327

1035:                                             ; preds = %.critedge748
  %1036 = 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 %1076

1037:                                             ; preds = %1053, %1046
  %1038 = landingpad { ptr, i32 }
          cleanup
  br label %1075

1039:                                             ; preds = %1031, %1018
  %1040 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1021)
  br i1 %1040, label %1045, label %1041

1041:                                             ; preds = %1039
  %1042 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1021)
  %1043 = fcmp oeq x86_fp80 %1021, %1024
  %or.cond749 = and i1 %1043, %1042
  %1044 = fcmp olt x86_fp80 %1029, 0xK3FD0B424DC35095CD800
  %or.cond814 = or i1 %1044, %or.cond749
  br i1 %or.cond814, label %1053, label %1046

1045:                                             ; preds = %1039
  %.old813 = fcmp olt x86_fp80 %1029, 0xK3FD0B424DC35095CD800
  br i1 %.old813, label %1053, label %1046

1046:                                             ; preds = %1041, %1045
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1047 unwind label %1037

1047:                                             ; preds = %1046
  %1048 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1049 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1050 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %93, i32 noundef %1048, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1021, x86_fp80 noundef %1024, x86_fp80 noundef %1049, x86_fp80 noundef %1050)
          to label %.critedge751 unwind label %1051

1051:                                             ; preds = %1047
  %1052 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1075

1053:                                             ; preds = %1031, %1041, %1045
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1054 unwind label %1037

1054:                                             ; preds = %1053
  %1055 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1056 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %94, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1021, x86_fp80 noundef %1029, x86_fp80 noundef %1055, x86_fp80 noundef %1056)
          to label %.critedge751 unwind label %1057

1057:                                             ; preds = %1054
  %1058 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %1075

.critedge751:                                     ; preds = %1054, %1047
  %.sink848 = phi ptr [ %93, %1047 ], [ %94, %1054 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink848) #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
  %1059 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1060 = add nsw i32 %1059, 1
  store i32 %1060, 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 %1061 unwind label %1077

1061:                                             ; preds = %.critedge751
  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
  %1062 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1063 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1062, double noundef 0.000000e+00) #7
  %1064 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1065 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1064, double noundef 0.000000e+00)
          to label %1066 unwind label %1079

1066:                                             ; preds = %1061
  %1067 = fsub x86_fp80 %1063, %1065
  %1068 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1067)
  %1069 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1065)
  %1070 = fadd x86_fp80 %1069, 0xK3FFF8000000000000000
  %1071 = fdiv x86_fp80 %1068, %1070
  %1072 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1063)
  br i1 %1072, label %1073, label %1083

1073:                                             ; preds = %1066
  %1074 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1065)
  br i1 %1074, label %1096, label %1083

1075:                                             ; preds = %1057, %1051, %1037
  %.pn659 = phi { ptr, i32 } [ %1058, %1057 ], [ %1038, %1037 ], [ %1052, %1051 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %1076

1076:                                             ; preds = %1075, %1035
  %.pn659.pn = phi { ptr, i32 } [ %.pn659, %1075 ], [ %1036, %1035 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  br label %1327

1077:                                             ; preds = %.critedge751
  %1078 = 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 %1118

1079:                                             ; preds = %1061
  %1080 = landingpad { ptr, i32 }
          cleanup
  br label %1117

1081:                                             ; preds = %1096, %1090
  %1082 = landingpad { ptr, i32 }
          cleanup
  br label %1117

1083:                                             ; preds = %1073, %1066
  %1084 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1063)
  br i1 %1084, label %1089, label %1085

1085:                                             ; preds = %1083
  %1086 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1063)
  %1087 = fcmp oeq x86_fp80 %1063, %1065
  %or.cond752 = and i1 %1087, %1086
  %1088 = fcmp olt x86_fp80 %1071, 0xK3FD0B424DC35095CD800
  %or.cond816 = or i1 %1088, %or.cond752
  br i1 %or.cond816, label %1096, label %1090

1089:                                             ; preds = %1083
  %.old815 = fcmp olt x86_fp80 %1071, 0xK3FD0B424DC35095CD800
  br i1 %.old815, label %1096, label %1090

1090:                                             ; preds = %1085, %1089
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1091 unwind label %1081

1091:                                             ; preds = %1090
  %1092 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1093 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %97, i32 noundef %1092, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1063, x86_fp80 noundef %1065, x86_fp80 noundef %1093, double noundef 0.000000e+00)
          to label %.critedge754 unwind label %1094

1094:                                             ; preds = %1091
  %1095 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %1117

1096:                                             ; preds = %1073, %1085, %1089
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1097 unwind label %1081

1097:                                             ; preds = %1096
  %1098 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %98, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1063, x86_fp80 noundef %1071, x86_fp80 noundef %1098, double noundef 0.000000e+00)
          to label %.critedge754 unwind label %1099

1099:                                             ; preds = %1097
  %1100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %1117

.critedge754:                                     ; preds = %1097, %1091
  %.sink849 = phi ptr [ %97, %1091 ], [ %98, %1097 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink849) #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
  %1101 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, 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 %1103 unwind label %1119

1103:                                             ; preds = %.critedge754
  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
  %1104 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1105 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1104, double noundef -1.000000e+00) #7
  %1106 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1107 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1106, double noundef -1.000000e+00)
          to label %1108 unwind label %1121

1108:                                             ; preds = %1103
  %1109 = fsub x86_fp80 %1105, %1107
  %1110 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1109)
  %1111 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1107)
  %1112 = fadd x86_fp80 %1111, 0xK3FFF8000000000000000
  %1113 = fdiv x86_fp80 %1110, %1112
  %1114 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1105)
  br i1 %1114, label %1115, label %1125

1115:                                             ; preds = %1108
  %1116 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1107)
  br i1 %1116, label %1138, label %1125

1117:                                             ; preds = %1081, %1094, %1099, %1079
  %.pn662.pn = phi { ptr, i32 } [ %1080, %1079 ], [ %1100, %1099 ], [ %1082, %1081 ], [ %1095, %1094 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %1118

1118:                                             ; preds = %1117, %1077
  %.pn662.pn.pn = phi { ptr, i32 } [ %.pn662.pn, %1117 ], [ %1078, %1077 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  br label %1327

1119:                                             ; preds = %.critedge754
  %1120 = 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 %1160

1121:                                             ; preds = %1103
  %1122 = landingpad { ptr, i32 }
          cleanup
  br label %1159

1123:                                             ; preds = %1138, %1132
  %1124 = landingpad { ptr, i32 }
          cleanup
  br label %1159

1125:                                             ; preds = %1115, %1108
  %1126 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1105)
  br i1 %1126, label %1131, label %1127

1127:                                             ; preds = %1125
  %1128 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1105)
  %1129 = fcmp oeq x86_fp80 %1105, %1107
  %or.cond755 = and i1 %1129, %1128
  %1130 = fcmp olt x86_fp80 %1113, 0xK3FD0B424DC35095CD800
  %or.cond818 = or i1 %1130, %or.cond755
  br i1 %or.cond818, label %1138, label %1132

1131:                                             ; preds = %1125
  %.old817 = fcmp olt x86_fp80 %1113, 0xK3FD0B424DC35095CD800
  br i1 %.old817, label %1138, label %1132

1132:                                             ; preds = %1127, %1131
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1133 unwind label %1123

1133:                                             ; preds = %1132
  %1134 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1135 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %101, i32 noundef %1134, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1105, x86_fp80 noundef %1107, x86_fp80 noundef %1135, double noundef -1.000000e+00)
          to label %.critedge757 unwind label %1136

1136:                                             ; preds = %1133
  %1137 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1159

1138:                                             ; preds = %1115, %1127, %1131
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1139 unwind label %1123

1139:                                             ; preds = %1138
  %1140 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %102, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1105, x86_fp80 noundef %1113, x86_fp80 noundef %1140, double noundef -1.000000e+00)
          to label %.critedge757 unwind label %1141

1141:                                             ; preds = %1139
  %1142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %1159

.critedge757:                                     ; preds = %1139, %1133
  %.sink850 = phi ptr [ %101, %1133 ], [ %102, %1139 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink850) #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
  %1143 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1144 = add nsw i32 %1143, 1
  store i32 %1144, 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 %1145 unwind label %1161

1145:                                             ; preds = %.critedge757
  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
  %1146 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1147 = call noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1146, double noundef 1.000000e+00) #7
  %1148 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1149 = invoke noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef %1148, double noundef 1.000000e+00)
          to label %1150 unwind label %1163

1150:                                             ; preds = %1145
  %1151 = fsub x86_fp80 %1147, %1149
  %1152 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1151)
  %1153 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1149)
  %1154 = fadd x86_fp80 %1153, 0xK3FFF8000000000000000
  %1155 = fdiv x86_fp80 %1152, %1154
  %1156 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1147)
  br i1 %1156, label %1157, label %1167

1157:                                             ; preds = %1150
  %1158 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1149)
  br i1 %1158, label %1180, label %1167

1159:                                             ; preds = %1123, %1136, %1141, %1121
  %.pn666.pn = phi { ptr, i32 } [ %1122, %1121 ], [ %1142, %1141 ], [ %1124, %1123 ], [ %1137, %1136 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %1160

1160:                                             ; preds = %1159, %1119
  %.pn666.pn.pn = phi { ptr, i32 } [ %.pn666.pn, %1159 ], [ %1120, %1119 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #7
  br label %1327

1161:                                             ; preds = %.critedge757
  %1162 = 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 %1203

1163:                                             ; preds = %1145
  %1164 = landingpad { ptr, i32 }
          cleanup
  br label %1202

1165:                                             ; preds = %1180, %1174
  %1166 = landingpad { ptr, i32 }
          cleanup
  br label %1202

1167:                                             ; preds = %1157, %1150
  %1168 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1147)
  br i1 %1168, label %1173, label %1169

1169:                                             ; preds = %1167
  %1170 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1147)
  %1171 = fcmp oeq x86_fp80 %1147, %1149
  %or.cond758 = and i1 %1171, %1170
  %1172 = fcmp olt x86_fp80 %1155, 0xK3FD0B424DC35095CD800
  %or.cond820 = or i1 %1172, %or.cond758
  br i1 %or.cond820, label %1180, label %1174

1173:                                             ; preds = %1167
  %.old819 = fcmp olt x86_fp80 %1155, 0xK3FD0B424DC35095CD800
  br i1 %.old819, label %1180, label %1174

1174:                                             ; preds = %1169, %1173
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1175 unwind label %1165

1175:                                             ; preds = %1174
  %1176 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1177 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %105, i32 noundef %1176, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1147, x86_fp80 noundef %1149, x86_fp80 noundef %1177, double noundef 1.000000e+00)
          to label %.critedge760 unwind label %1178

1178:                                             ; preds = %1175
  %1179 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  br label %1202

1180:                                             ; preds = %1157, %1169, %1173
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1181 unwind label %1165

1181:                                             ; preds = %1180
  %1182 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %106, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1147, x86_fp80 noundef %1155, x86_fp80 noundef %1182, double noundef 1.000000e+00)
          to label %.critedge760 unwind label %1183

1183:                                             ; preds = %1181
  %1184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %1202

.critedge760:                                     ; preds = %1181, %1175
  %.sink851 = phi ptr [ %105, %1175 ], [ %106, %1181 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink851) #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
  %1185 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1186 = add nsw i32 %1185, 1
  store i32 %1186, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #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 %1187 unwind label %1204

1187:                                             ; preds = %.critedge760
  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
  %1188 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1189 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1190 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1188, x86_fp80 noundef %1189) #7
  %1191 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1192 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1193 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %1191, x86_fp80 noundef %1192)
  %1194 = fsub x86_fp80 %1190, %1193
  %1195 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1194)
  %1196 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1193)
  %1197 = fadd x86_fp80 %1196, 0xK3FFF8000000000000000
  %1198 = fdiv x86_fp80 %1195, %1197
  %1199 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1190)
  br i1 %1199, label %1200, label %1208

1200:                                             ; preds = %1187
  %1201 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1193)
  br i1 %1201, label %1222, label %1208

1202:                                             ; preds = %1165, %1178, %1183, %1163
  %.pn670.pn = phi { ptr, i32 } [ %1164, %1163 ], [ %1184, %1183 ], [ %1166, %1165 ], [ %1179, %1178 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  br label %1203

1203:                                             ; preds = %1202, %1161
  %.pn670.pn.pn = phi { ptr, i32 } [ %.pn670.pn, %1202 ], [ %1162, %1161 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  br label %1327

1204:                                             ; preds = %.critedge760
  %1205 = 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 %1248

1206:                                             ; preds = %1222, %1215
  %1207 = landingpad { ptr, i32 }
          cleanup
  br label %1247

1208:                                             ; preds = %1200, %1187
  %1209 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1190)
  br i1 %1209, label %1214, label %1210

1210:                                             ; preds = %1208
  %1211 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1190)
  %1212 = fcmp oeq x86_fp80 %1190, %1193
  %or.cond761 = and i1 %1212, %1211
  %1213 = fcmp olt x86_fp80 %1198, 0xK3FD0B424DC35095CD800
  %or.cond822 = or i1 %1213, %or.cond761
  br i1 %or.cond822, label %1222, label %1215

1214:                                             ; preds = %1208
  %.old821 = fcmp olt x86_fp80 %1198, 0xK3FD0B424DC35095CD800
  br i1 %.old821, label %1222, label %1215

1215:                                             ; preds = %1210, %1214
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1216 unwind label %1206

1216:                                             ; preds = %1215
  %1217 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1218 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1219 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %109, i32 noundef %1217, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1190, x86_fp80 noundef %1193, x86_fp80 noundef %1218, x86_fp80 noundef %1219)
          to label %.critedge763 unwind label %1220

1220:                                             ; preds = %1216
  %1221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1247

1222:                                             ; preds = %1200, %1210, %1214
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1223 unwind label %1206

1223:                                             ; preds = %1222
  %1224 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1225 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %110, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1190, x86_fp80 noundef %1198, x86_fp80 noundef %1224, x86_fp80 noundef %1225)
          to label %.critedge763 unwind label %1226

1226:                                             ; preds = %1223
  %1227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %1247

.critedge763:                                     ; preds = %1223, %1216
  %.sink852 = phi ptr [ %109, %1216 ], [ %110, %1223 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink852) #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
  %1228 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #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.1, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %1230 unwind label %1249

1230:                                             ; preds = %.critedge763
  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
  %1231 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1232 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1233 = fneg x86_fp80 %1232
  %1234 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1231, x86_fp80 noundef %1233) #7
  %1235 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1236 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1237 = fneg x86_fp80 %1236
  %1238 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %1235, x86_fp80 noundef %1237)
  %1239 = fsub x86_fp80 %1234, %1238
  %1240 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1239)
  %1241 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1238)
  %1242 = fadd x86_fp80 %1241, 0xK3FFF8000000000000000
  %1243 = fdiv x86_fp80 %1240, %1242
  %1244 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1234)
  br i1 %1244, label %1245, label %1253

1245:                                             ; preds = %1230
  %1246 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1238)
  br i1 %1246, label %1268, label %1253

1247:                                             ; preds = %1226, %1220, %1206
  %.pn674 = phi { ptr, i32 } [ %1227, %1226 ], [ %1207, %1206 ], [ %1221, %1220 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  br label %1248

1248:                                             ; preds = %1247, %1204
  %.pn674.pn = phi { ptr, i32 } [ %.pn674, %1247 ], [ %1205, %1204 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  br label %1327

1249:                                             ; preds = %.critedge763
  %1250 = landingpad { ptr, i32 }
          cleanup
  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 %1293

1251:                                             ; preds = %1268, %1260
  %1252 = landingpad { ptr, i32 }
          cleanup
  br label %1292

1253:                                             ; preds = %1245, %1230
  %1254 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1234)
  br i1 %1254, label %1259, label %1255

1255:                                             ; preds = %1253
  %1256 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1234)
  %1257 = fcmp oeq x86_fp80 %1234, %1238
  %or.cond764 = and i1 %1257, %1256
  %1258 = fcmp olt x86_fp80 %1243, 0xK3FD0B424DC35095CD800
  %or.cond824 = or i1 %1258, %or.cond764
  br i1 %or.cond824, label %1268, label %1260

1259:                                             ; preds = %1253
  %.old823 = fcmp olt x86_fp80 %1243, 0xK3FD0B424DC35095CD800
  br i1 %.old823, label %1268, label %1260

1260:                                             ; preds = %1255, %1259
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1261 unwind label %1251

1261:                                             ; preds = %1260
  %1262 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1263 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1264 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1265 = fneg x86_fp80 %1264
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %113, i32 noundef %1262, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1234, x86_fp80 noundef %1238, x86_fp80 noundef %1263, x86_fp80 noundef %1265)
          to label %.critedge766 unwind label %1266

1266:                                             ; preds = %1261
  %1267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  br label %1292

1268:                                             ; preds = %1245, %1255, %1259
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1269 unwind label %1251

1269:                                             ; preds = %1268
  %1270 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1271 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1272 = fneg x86_fp80 %1271
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %114, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1234, x86_fp80 noundef %1243, x86_fp80 noundef %1270, x86_fp80 noundef %1272)
          to label %.critedge766 unwind label %1273

1273:                                             ; preds = %1269
  %1274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  br label %1292

.critedge766:                                     ; preds = %1269, %1261
  %.sink853 = phi ptr [ %113, %1261 ], [ %114, %1269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink853) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #7
  %1275 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1276 = add nsw i32 %1275, 1
  store i32 %1276, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %116) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %1277 unwind label %1294

1277:                                             ; preds = %.critedge766
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #7
  %1278 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1279 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1280 = call noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef %1278, x86_fp80 noundef %1279) #7
  %1281 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1282 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1283 = call noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef %1281, x86_fp80 noundef %1282)
  %1284 = fsub x86_fp80 %1280, %1283
  %1285 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1284)
  %1286 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1283)
  %1287 = fadd x86_fp80 %1286, 0xK3FFF8000000000000000
  %1288 = fdiv x86_fp80 %1285, %1287
  %1289 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1280)
  br i1 %1289, label %1290, label %1298

1290:                                             ; preds = %1277
  %1291 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1283)
  br i1 %1291, label %1312, label %1298

1292:                                             ; preds = %1273, %1266, %1251
  %.pn677 = phi { ptr, i32 } [ %1274, %1273 ], [ %1252, %1251 ], [ %1267, %1266 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  br label %1293

1293:                                             ; preds = %1292, %1249
  %.pn677.pn = phi { ptr, i32 } [ %.pn677, %1292 ], [ %1250, %1249 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #7
  br label %1327

1294:                                             ; preds = %.critedge766
  %1295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #7
  br label %1321

1296:                                             ; preds = %1312, %1305
  %1297 = landingpad { ptr, i32 }
          cleanup
  br label %1320

1298:                                             ; preds = %1290, %1277
  %1299 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1280)
  br i1 %1299, label %1304, label %1300

1300:                                             ; preds = %1298
  %1301 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1280)
  %1302 = fcmp oeq x86_fp80 %1280, %1283
  %or.cond767 = and i1 %1302, %1301
  %1303 = fcmp olt x86_fp80 %1288, 0xK3FD0B424DC35095CD800
  %or.cond826 = or i1 %1303, %or.cond767
  br i1 %or.cond826, label %1312, label %1305

1304:                                             ; preds = %1298
  %.old825 = fcmp olt x86_fp80 %1288, 0xK3FD0B424DC35095CD800
  br i1 %.old825, label %1312, label %1305

1305:                                             ; preds = %1300, %1304
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %1306 unwind label %1296

1306:                                             ; preds = %1305
  %1307 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1308 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1309 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef nonnull %117, i32 noundef %1307, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1280, x86_fp80 noundef %1283, x86_fp80 noundef %1308, x86_fp80 noundef %1309)
          to label %.critedge769 unwind label %1310

1310:                                             ; preds = %1306
  %1311 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1320

1312:                                             ; preds = %1290, %1300, %1304
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %1313 unwind label %1296

1313:                                             ; preds = %1312
  %1314 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1315 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef nonnull %118, i32 noundef 3, i32 noundef 2, i32 noundef 2, x86_fp80 noundef %1280, x86_fp80 noundef %1288, x86_fp80 noundef %1314, x86_fp80 noundef %1315)
          to label %.critedge769 unwind label %1316

1316:                                             ; preds = %1313
  %1317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %1320

.critedge769:                                     ; preds = %1313, %1306
  %.sink854 = phi ptr [ %117, %1306 ], [ %118, %1313 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink854) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %1318 unwind label %1322

1318:                                             ; preds = %.critedge769
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %119)
          to label %1319 unwind label %1324

1319:                                             ; preds = %1318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #7
  ret i32 0

1320:                                             ; preds = %1316, %1310, %1296
  %.pn680 = phi { ptr, i32 } [ %1317, %1316 ], [ %1297, %1296 ], [ %1311, %1310 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  br label %1321

1321:                                             ; preds = %1320, %1294
  %.pn680.pn = phi { ptr, i32 } [ %.pn680, %1320 ], [ %1295, %1294 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #7
  br label %1327

1322:                                             ; preds = %.critedge769
  %1323 = landingpad { ptr, i32 }
          cleanup
  br label %1326

1324:                                             ; preds = %1318
  %1325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  br label %1326

1326:                                             ; preds = %1324, %1322
  %.pn683 = phi { ptr, i32 } [ %1325, %1324 ], [ %1323, %1322 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #7
  br label %1327

1327:                                             ; preds = %1326, %1321, %1293, %1248, %1203, %1160, %1118, %1076, %1034, %989, %944, %901, %859, %817, %773, %724, %675, %628, %582, %536, %496, %461, %426, %391, %356, %321, %286, %251, %216, %179, %142
  %.pn683.pn = phi { ptr, i32 } [ %.pn683, %1326 ], [ %.pn680.pn, %1321 ], [ %.pn677.pn, %1293 ], [ %.pn674.pn, %1248 ], [ %.pn670.pn.pn, %1203 ], [ %.pn666.pn.pn, %1160 ], [ %.pn662.pn.pn, %1118 ], [ %.pn659.pn, %1076 ], [ %.pn656.pn, %1034 ], [ %.pn653.pn, %989 ], [ %.pn649.pn.pn, %944 ], [ %.pn645.pn.pn, %901 ], [ %.pn641.pn.pn, %859 ], [ %.pn638.pn, %817 ], [ %.pn635.pn, %773 ], [ %.pn632.pn, %724 ], [ %.pn628.pn.pn, %675 ], [ %.pn624.pn.pn, %628 ], [ %.pn620.pn.pn, %582 ], [ %.pn617.pn, %536 ], [ %.pn614.pn, %496 ], [ %.pn611.pn, %461 ], [ %.pn608.pn, %426 ], [ %.pn605.pn, %391 ], [ %.pn602.pn, %356 ], [ %.pn599.pn, %321 ], [ %.pn596.pn, %286 ], [ %.pn593.pn, %251 ], [ %.pn590.pn, %216 ], [ %.pn587.pn, %179 ], [ %.pn, %142 ]
  resume { ptr, i32 } %.pn683.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem4fmodIddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(double noundef, double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @fmod(double noundef, double noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #6

; 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_failIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4fmodIedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef, double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef x86_fp80 @_ZSt4fmodIedEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(x86_fp80 noundef, double noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, double noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem4fmodIeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_EE4typeEEE5valueEdS6_E4typeES3_S4_(x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4fmodee(x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 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_passIeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() local_unnamed_addr #3 align 2

; Function Attrs: 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 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

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

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


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