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

; 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 [6 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca x86_fp80, align 16
  %9 = alloca double, align 8
  %10 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %17 = alloca double, align 8
  %18 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %25 = alloca double, align 8
  %26 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %33 = alloca double, align 8
  %34 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %41 = alloca x86_fp80, align 16
  %42 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %49 = alloca x86_fp80, align 16
  %50 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %57 = alloca x86_fp80, align 16
  %58 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %65 = alloca x86_fp80, align 16
  %66 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %73 = alloca double, align 8
  %74 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %81 = alloca double, align 8
  %82 = alloca x86_fp80, align 16
  %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 x86_fp80, align 16
  %89 = alloca double, align 8
  %90 = alloca x86_fp80, align 16
  %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 double, align 8
  %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 double, align 8
  %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 double, align 8
  %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
  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 %168 unwind label %196

168:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2)
          to label %169 unwind label %200

169:                                              ; preds = %168
  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
  %170 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %171 = add nsw i32 %170, 1
  store i32 %171, 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 %172 unwind label %205

172:                                              ; preds = %169
  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 16, ptr %8) #7
  %173 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef 0.000000e+00) #7
  store x86_fp80 %173, ptr %8, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %174 = call double @llvm.fabs.f64(double 0.000000e+00)
  store double %174, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #7
  %175 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %176 = load double, ptr %9, align 8, !tbaa !11
  %177 = fpext double %176 to x86_fp80
  %178 = fsub x86_fp80 %175, %177
  %179 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %178)
          to label %180 unwind label %209

180:                                              ; preds = %172
  %181 = load double, ptr %9, align 8, !tbaa !11
  %182 = invoke noundef double @_ZSt3absd(double noundef %181)
          to label %183 unwind label %209

183:                                              ; preds = %180
  %184 = fadd double 1.000000e+00, %182
  %185 = fpext double %184 to x86_fp80
  %186 = fdiv x86_fp80 %179, %185
  store x86_fp80 %186, ptr %10, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  store i8 0, ptr %11, align 1, !tbaa !13
  %187 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %188 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %187)
          to label %189 unwind label %213

189:                                              ; preds = %183
  br i1 %188, label %190, label %217

190:                                              ; preds = %189
  %191 = load double, ptr %9, align 8, !tbaa !11
  %192 = fpext double %191 to x86_fp80
  %193 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %192)
          to label %194 unwind label %213

194:                                              ; preds = %190
  br i1 %193, label %195, label %217

195:                                              ; preds = %194
  store i8 1, ptr %11, align 1, !tbaa !13
  br label %247

196:                                              ; preds = %0
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %4, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %5, align 4
  br label %204

200:                                              ; preds = %168
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %4, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  br label %204

204:                                              ; preds = %200, %196
  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 %1946

205:                                              ; preds = %169
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %4, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, 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 %288

209:                                              ; preds = %180, %172
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %4, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %5, align 4
  br label %287

213:                                              ; preds = %250, %235, %221, %217, %190, %183
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %4, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %5, align 4
  br label %286

217:                                              ; preds = %194, %189
  %218 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %219 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %218)
          to label %220 unwind label %213

220:                                              ; preds = %217
  br i1 %219, label %231, label %221

221:                                              ; preds = %220
  %222 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %223 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %222)
          to label %224 unwind label %213

224:                                              ; preds = %221
  br i1 %223, label %225, label %231

225:                                              ; preds = %224
  %226 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %227 = load double, ptr %9, align 8, !tbaa !11
  %228 = fpext double %227 to x86_fp80
  %229 = fcmp oeq x86_fp80 %226, %228
  br i1 %229, label %230, label %231

230:                                              ; preds = %225
  store i8 1, ptr %11, align 1, !tbaa !13
  br label %246

231:                                              ; preds = %225, %224, %220
  %232 = load x86_fp80, ptr %10, align 16, !tbaa !9
  %233 = fcmp olt x86_fp80 %232, 0xK3FD0B424DC35095CD800
  br i1 %233, label %234, label %235

234:                                              ; preds = %231
  store i8 1, ptr %11, align 1, !tbaa !13
  br label %245

235:                                              ; preds = %231
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %236 unwind label %213

236:                                              ; preds = %235
  %237 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %238 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %239 = load double, ptr %9, align 8, !tbaa !11
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %12, i32 noundef %237, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %238, double noundef %239, double noundef 0.000000e+00)
          to label %240 unwind label %241

240:                                              ; preds = %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %245

241:                                              ; preds = %236
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %4, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %286

245:                                              ; preds = %240, %234
  br label %246

246:                                              ; preds = %245, %230
  br label %247

247:                                              ; preds = %246, %195
  %248 = load i8, ptr %11, align 1, !tbaa !13, !range !15, !noundef !16
  %249 = trunc i8 %248 to i1
  br i1 %249, label %250, label %259

250:                                              ; preds = %247
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %251 unwind label %213

251:                                              ; preds = %250
  %252 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %253 = load x86_fp80, ptr %10, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %13, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %252, x86_fp80 noundef %253, double noundef 0.000000e+00)
          to label %254 unwind label %255

254:                                              ; preds = %251
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %259

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

259:                                              ; preds = %254, %247
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %260 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %261 = add nsw i32 %260, 1
  store i32 %261, 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 %262 unwind label %289

262:                                              ; preds = %259
  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 16, ptr %16) #7
  %263 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef -0.000000e+00) #7
  store x86_fp80 %263, ptr %16, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %264 = call double @llvm.fabs.f64(double -0.000000e+00)
  store double %264, ptr %17, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #7
  %265 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %266 = load double, ptr %17, align 8, !tbaa !11
  %267 = fpext double %266 to x86_fp80
  %268 = fsub x86_fp80 %265, %267
  %269 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %268)
          to label %270 unwind label %293

270:                                              ; preds = %262
  %271 = load double, ptr %17, align 8, !tbaa !11
  %272 = invoke noundef double @_ZSt3absd(double noundef %271)
          to label %273 unwind label %293

273:                                              ; preds = %270
  %274 = fadd double 1.000000e+00, %272
  %275 = fpext double %274 to x86_fp80
  %276 = fdiv x86_fp80 %269, %275
  store x86_fp80 %276, ptr %18, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  store i8 0, ptr %19, align 1, !tbaa !13
  %277 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %278 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %277)
          to label %279 unwind label %297

279:                                              ; preds = %273
  br i1 %278, label %280, label %301

280:                                              ; preds = %279
  %281 = load double, ptr %17, align 8, !tbaa !11
  %282 = fpext double %281 to x86_fp80
  %283 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %282)
          to label %284 unwind label %297

284:                                              ; preds = %280
  br i1 %283, label %285, label %301

285:                                              ; preds = %284
  store i8 1, ptr %19, align 1, !tbaa !13
  br label %331

286:                                              ; preds = %255, %241, %213
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %287

287:                                              ; preds = %286, %209
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %288

288:                                              ; preds = %287, %205
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %1946

289:                                              ; preds = %259
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %4, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, 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 %372

293:                                              ; preds = %270, %262
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %4, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %5, align 4
  br label %371

297:                                              ; preds = %334, %319, %305, %301, %280, %273
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %4, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %5, align 4
  br label %370

301:                                              ; preds = %284, %279
  %302 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %303 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %302)
          to label %304 unwind label %297

304:                                              ; preds = %301
  br i1 %303, label %315, label %305

305:                                              ; preds = %304
  %306 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %307 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %306)
          to label %308 unwind label %297

308:                                              ; preds = %305
  br i1 %307, label %309, label %315

309:                                              ; preds = %308
  %310 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %311 = load double, ptr %17, align 8, !tbaa !11
  %312 = fpext double %311 to x86_fp80
  %313 = fcmp oeq x86_fp80 %310, %312
  br i1 %313, label %314, label %315

314:                                              ; preds = %309
  store i8 1, ptr %19, align 1, !tbaa !13
  br label %330

315:                                              ; preds = %309, %308, %304
  %316 = load x86_fp80, ptr %18, align 16, !tbaa !9
  %317 = fcmp olt x86_fp80 %316, 0xK3FD0B424DC35095CD800
  br i1 %317, label %318, label %319

318:                                              ; preds = %315
  store i8 1, ptr %19, align 1, !tbaa !13
  br label %329

319:                                              ; preds = %315
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %320 unwind label %297

320:                                              ; preds = %319
  %321 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %322 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %323 = load double, ptr %17, align 8, !tbaa !11
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %20, i32 noundef %321, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %322, double noundef %323, double noundef -0.000000e+00)
          to label %324 unwind label %325

324:                                              ; preds = %320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %329

325:                                              ; preds = %320
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %4, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %370

329:                                              ; preds = %324, %318
  br label %330

330:                                              ; preds = %329, %314
  br label %331

331:                                              ; preds = %330, %285
  %332 = load i8, ptr %19, align 1, !tbaa !13, !range !15, !noundef !16
  %333 = trunc i8 %332 to i1
  br i1 %333, label %334, label %343

334:                                              ; preds = %331
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %335 unwind label %297

335:                                              ; preds = %334
  %336 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %337 = load x86_fp80, ptr %18, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %21, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %336, x86_fp80 noundef %337, double noundef -0.000000e+00)
          to label %338 unwind label %339

338:                                              ; preds = %335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %343

339:                                              ; preds = %335
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %4, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %370

343:                                              ; preds = %338, %331
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %344 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %345 = add nsw i32 %344, 1
  store i32 %345, 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 %346 unwind label %373

346:                                              ; preds = %343
  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 16, ptr %24) #7
  %347 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef 1.000000e+00) #7
  store x86_fp80 %347, ptr %24, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %348 = call double @llvm.fabs.f64(double 1.000000e+00)
  store double %348, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  %349 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %350 = load double, ptr %25, align 8, !tbaa !11
  %351 = fpext double %350 to x86_fp80
  %352 = fsub x86_fp80 %349, %351
  %353 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %352)
          to label %354 unwind label %377

354:                                              ; preds = %346
  %355 = load double, ptr %25, align 8, !tbaa !11
  %356 = invoke noundef double @_ZSt3absd(double noundef %355)
          to label %357 unwind label %377

357:                                              ; preds = %354
  %358 = fadd double 1.000000e+00, %356
  %359 = fpext double %358 to x86_fp80
  %360 = fdiv x86_fp80 %353, %359
  store x86_fp80 %360, ptr %26, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  store i8 0, ptr %27, align 1, !tbaa !13
  %361 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %362 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %361)
          to label %363 unwind label %381

363:                                              ; preds = %357
  br i1 %362, label %364, label %385

364:                                              ; preds = %363
  %365 = load double, ptr %25, align 8, !tbaa !11
  %366 = fpext double %365 to x86_fp80
  %367 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %366)
          to label %368 unwind label %381

368:                                              ; preds = %364
  br i1 %367, label %369, label %385

369:                                              ; preds = %368
  store i8 1, ptr %27, align 1, !tbaa !13
  br label %415

370:                                              ; preds = %339, %325, %297
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %371

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

372:                                              ; preds = %371, %289
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %1946

373:                                              ; preds = %343
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %4, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, 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 %456

377:                                              ; preds = %354, %346
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %4, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %5, align 4
  br label %455

381:                                              ; preds = %418, %403, %389, %385, %364, %357
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %4, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %5, align 4
  br label %454

385:                                              ; preds = %368, %363
  %386 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %387 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %386)
          to label %388 unwind label %381

388:                                              ; preds = %385
  br i1 %387, label %399, label %389

389:                                              ; preds = %388
  %390 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %391 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %390)
          to label %392 unwind label %381

392:                                              ; preds = %389
  br i1 %391, label %393, label %399

393:                                              ; preds = %392
  %394 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %395 = load double, ptr %25, align 8, !tbaa !11
  %396 = fpext double %395 to x86_fp80
  %397 = fcmp oeq x86_fp80 %394, %396
  br i1 %397, label %398, label %399

398:                                              ; preds = %393
  store i8 1, ptr %27, align 1, !tbaa !13
  br label %414

399:                                              ; preds = %393, %392, %388
  %400 = load x86_fp80, ptr %26, align 16, !tbaa !9
  %401 = fcmp olt x86_fp80 %400, 0xK3FD0B424DC35095CD800
  br i1 %401, label %402, label %403

402:                                              ; preds = %399
  store i8 1, ptr %27, align 1, !tbaa !13
  br label %413

403:                                              ; preds = %399
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %404 unwind label %381

404:                                              ; preds = %403
  %405 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %406 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %407 = load double, ptr %25, align 8, !tbaa !11
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %28, i32 noundef %405, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %406, double noundef %407, double noundef 1.000000e+00)
          to label %408 unwind label %409

408:                                              ; preds = %404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %413

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

413:                                              ; preds = %408, %402
  br label %414

414:                                              ; preds = %413, %398
  br label %415

415:                                              ; preds = %414, %369
  %416 = load i8, ptr %27, align 1, !tbaa !13, !range !15, !noundef !16
  %417 = trunc i8 %416 to i1
  br i1 %417, label %418, label %427

418:                                              ; preds = %415
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %419 unwind label %381

419:                                              ; preds = %418
  %420 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %421 = load x86_fp80, ptr %26, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %29, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %420, x86_fp80 noundef %421, double noundef 1.000000e+00)
          to label %422 unwind label %423

422:                                              ; preds = %419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %427

423:                                              ; preds = %419
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %4, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %454

427:                                              ; preds = %422, %415
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %428 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %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 %430 unwind label %457

430:                                              ; preds = %427
  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 16, ptr %32) #7
  %431 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef -1.000000e+00) #7
  store x86_fp80 %431, ptr %32, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %432 = call double @llvm.fabs.f64(double -1.000000e+00)
  store double %432, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #7
  %433 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %434 = load double, ptr %33, align 8, !tbaa !11
  %435 = fpext double %434 to x86_fp80
  %436 = fsub x86_fp80 %433, %435
  %437 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %436)
          to label %438 unwind label %461

438:                                              ; preds = %430
  %439 = load double, ptr %33, align 8, !tbaa !11
  %440 = invoke noundef double @_ZSt3absd(double noundef %439)
          to label %441 unwind label %461

441:                                              ; preds = %438
  %442 = fadd double 1.000000e+00, %440
  %443 = fpext double %442 to x86_fp80
  %444 = fdiv x86_fp80 %437, %443
  store x86_fp80 %444, ptr %34, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  store i8 0, ptr %35, align 1, !tbaa !13
  %445 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %446 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %445)
          to label %447 unwind label %465

447:                                              ; preds = %441
  br i1 %446, label %448, label %469

448:                                              ; preds = %447
  %449 = load double, ptr %33, align 8, !tbaa !11
  %450 = fpext double %449 to x86_fp80
  %451 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %450)
          to label %452 unwind label %465

452:                                              ; preds = %448
  br i1 %451, label %453, label %469

453:                                              ; preds = %452
  store i8 1, ptr %35, align 1, !tbaa !13
  br label %499

454:                                              ; preds = %423, %409, %381
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  br label %455

455:                                              ; preds = %454, %377
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %456

456:                                              ; preds = %455, %373
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %1946

457:                                              ; preds = %427
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %4, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, 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 %538

461:                                              ; preds = %438, %430
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %4, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %5, align 4
  br label %537

465:                                              ; preds = %502, %487, %473, %469, %448, %441
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %4, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %5, align 4
  br label %536

469:                                              ; preds = %452, %447
  %470 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %471 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %470)
          to label %472 unwind label %465

472:                                              ; preds = %469
  br i1 %471, label %483, label %473

473:                                              ; preds = %472
  %474 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %475 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %474)
          to label %476 unwind label %465

476:                                              ; preds = %473
  br i1 %475, label %477, label %483

477:                                              ; preds = %476
  %478 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %479 = load double, ptr %33, align 8, !tbaa !11
  %480 = fpext double %479 to x86_fp80
  %481 = fcmp oeq x86_fp80 %478, %480
  br i1 %481, label %482, label %483

482:                                              ; preds = %477
  store i8 1, ptr %35, align 1, !tbaa !13
  br label %498

483:                                              ; preds = %477, %476, %472
  %484 = load x86_fp80, ptr %34, align 16, !tbaa !9
  %485 = fcmp olt x86_fp80 %484, 0xK3FD0B424DC35095CD800
  br i1 %485, label %486, label %487

486:                                              ; preds = %483
  store i8 1, ptr %35, align 1, !tbaa !13
  br label %497

487:                                              ; preds = %483
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %488 unwind label %465

488:                                              ; preds = %487
  %489 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %490 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %491 = load double, ptr %33, align 8, !tbaa !11
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %36, i32 noundef %489, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %490, double noundef %491, double noundef -1.000000e+00)
          to label %492 unwind label %493

492:                                              ; preds = %488
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %497

493:                                              ; preds = %488
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %4, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %536

497:                                              ; preds = %492, %486
  br label %498

498:                                              ; preds = %497, %482
  br label %499

499:                                              ; preds = %498, %453
  %500 = load i8, ptr %35, align 1, !tbaa !13, !range !15, !noundef !16
  %501 = trunc i8 %500 to i1
  br i1 %501, label %502, label %511

502:                                              ; preds = %499
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %503 unwind label %465

503:                                              ; preds = %502
  %504 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %505 = load x86_fp80, ptr %34, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %37, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %504, x86_fp80 noundef %505, double noundef -1.000000e+00)
          to label %506 unwind label %507

506:                                              ; preds = %503
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %511

507:                                              ; preds = %503
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %4, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %536

511:                                              ; preds = %506, %499
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %512 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, 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 %514 unwind label %539

514:                                              ; preds = %511
  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 16, ptr %40) #7
  %515 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xK00000000000000000000) #7
  store x86_fp80 %515, ptr %40, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #7
  %516 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK00000000000000000000)
          to label %517 unwind label %543

517:                                              ; preds = %514
  store x86_fp80 %516, ptr %41, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #7
  %518 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %519 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %520 = fsub x86_fp80 %518, %519
  %521 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %520)
          to label %522 unwind label %547

522:                                              ; preds = %517
  %523 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %524 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %523)
          to label %525 unwind label %547

525:                                              ; preds = %522
  %526 = fadd x86_fp80 0xK3FFF8000000000000000, %524
  %527 = fdiv x86_fp80 %521, %526
  store x86_fp80 %527, ptr %42, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  store i8 0, ptr %43, align 1, !tbaa !13
  %528 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %529 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %528)
          to label %530 unwind label %551

530:                                              ; preds = %525
  br i1 %529, label %531, label %555

531:                                              ; preds = %530
  %532 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %533 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %532)
          to label %534 unwind label %551

534:                                              ; preds = %531
  br i1 %533, label %535, label %555

535:                                              ; preds = %534
  store i8 1, ptr %43, align 1, !tbaa !13
  br label %584

536:                                              ; preds = %507, %493, %465
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %537

537:                                              ; preds = %536, %461
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %538

538:                                              ; preds = %537, %457
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %1946

539:                                              ; preds = %511
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %4, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, 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 %624

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

547:                                              ; preds = %522, %517
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %4, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %5, align 4
  br label %622

551:                                              ; preds = %587, %572, %559, %555, %531, %525
  %552 = landingpad { ptr, i32 }
          cleanup
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %4, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %5, align 4
  br label %621

555:                                              ; preds = %534, %530
  %556 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %557 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %556)
          to label %558 unwind label %551

558:                                              ; preds = %555
  br i1 %557, label %568, label %559

559:                                              ; preds = %558
  %560 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %561 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %560)
          to label %562 unwind label %551

562:                                              ; preds = %559
  br i1 %561, label %563, label %568

563:                                              ; preds = %562
  %564 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %565 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %566 = fcmp oeq x86_fp80 %564, %565
  br i1 %566, label %567, label %568

567:                                              ; preds = %563
  store i8 1, ptr %43, align 1, !tbaa !13
  br label %583

568:                                              ; preds = %563, %562, %558
  %569 = load x86_fp80, ptr %42, align 16, !tbaa !9
  %570 = fcmp olt x86_fp80 %569, 0xK3FD0B424DC35095CD800
  br i1 %570, label %571, label %572

571:                                              ; preds = %568
  store i8 1, ptr %43, align 1, !tbaa !13
  br label %582

572:                                              ; preds = %568
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %573 unwind label %551

573:                                              ; preds = %572
  %574 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %575 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %576 = load x86_fp80, ptr %41, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %44, i32 noundef %574, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %575, x86_fp80 noundef %576, x86_fp80 noundef 0xK00000000000000000000)
          to label %577 unwind label %578

577:                                              ; preds = %573
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %582

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

582:                                              ; preds = %577, %571
  br label %583

583:                                              ; preds = %582, %567
  br label %584

584:                                              ; preds = %583, %535
  %585 = load i8, ptr %43, align 1, !tbaa !13, !range !15, !noundef !16
  %586 = trunc i8 %585 to i1
  br i1 %586, label %587, label %596

587:                                              ; preds = %584
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %588 unwind label %551

588:                                              ; preds = %587
  %589 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %590 = load x86_fp80, ptr %42, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %45, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %589, x86_fp80 noundef %590, x86_fp80 noundef 0xK00000000000000000000)
          to label %591 unwind label %592

591:                                              ; preds = %588
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %596

592:                                              ; preds = %588
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %4, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %621

596:                                              ; preds = %591, %584
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %597 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  store i32 %598, 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 %599 unwind label %625

599:                                              ; preds = %596
  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 16, ptr %48) #7
  %600 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xK80000000000000000000) #7
  store x86_fp80 %600, ptr %48, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #7
  %601 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK80000000000000000000)
          to label %602 unwind label %629

602:                                              ; preds = %599
  store x86_fp80 %601, ptr %49, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #7
  %603 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %604 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %605 = fsub x86_fp80 %603, %604
  %606 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %605)
          to label %607 unwind label %633

607:                                              ; preds = %602
  %608 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %609 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %608)
          to label %610 unwind label %633

610:                                              ; preds = %607
  %611 = fadd x86_fp80 0xK3FFF8000000000000000, %609
  %612 = fdiv x86_fp80 %606, %611
  store x86_fp80 %612, ptr %50, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #7
  store i8 0, ptr %51, align 1, !tbaa !13
  %613 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %614 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %613)
          to label %615 unwind label %637

615:                                              ; preds = %610
  br i1 %614, label %616, label %641

616:                                              ; preds = %615
  %617 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %618 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %617)
          to label %619 unwind label %637

619:                                              ; preds = %616
  br i1 %618, label %620, label %641

620:                                              ; preds = %619
  store i8 1, ptr %51, align 1, !tbaa !13
  br label %670

621:                                              ; preds = %592, %578, %551
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %622

622:                                              ; preds = %621, %547
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  br label %623

623:                                              ; preds = %622, %543
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %624

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

625:                                              ; preds = %596
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %4, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, 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 %710

629:                                              ; preds = %599
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %4, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %5, align 4
  br label %709

633:                                              ; preds = %607, %602
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %4, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %5, align 4
  br label %708

637:                                              ; preds = %673, %658, %645, %641, %616, %610
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %4, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %5, align 4
  br label %707

641:                                              ; preds = %619, %615
  %642 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %643 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %642)
          to label %644 unwind label %637

644:                                              ; preds = %641
  br i1 %643, label %654, label %645

645:                                              ; preds = %644
  %646 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %647 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %646)
          to label %648 unwind label %637

648:                                              ; preds = %645
  br i1 %647, label %649, label %654

649:                                              ; preds = %648
  %650 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %651 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %652 = fcmp oeq x86_fp80 %650, %651
  br i1 %652, label %653, label %654

653:                                              ; preds = %649
  store i8 1, ptr %51, align 1, !tbaa !13
  br label %669

654:                                              ; preds = %649, %648, %644
  %655 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %656 = fcmp olt x86_fp80 %655, 0xK3FD0B424DC35095CD800
  br i1 %656, label %657, label %658

657:                                              ; preds = %654
  store i8 1, ptr %51, align 1, !tbaa !13
  br label %668

658:                                              ; preds = %654
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %659 unwind label %637

659:                                              ; preds = %658
  %660 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %661 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %662 = load x86_fp80, ptr %49, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %52, i32 noundef %660, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %661, x86_fp80 noundef %662, x86_fp80 noundef 0xK80000000000000000000)
          to label %663 unwind label %664

663:                                              ; preds = %659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %668

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

668:                                              ; preds = %663, %657
  br label %669

669:                                              ; preds = %668, %653
  br label %670

670:                                              ; preds = %669, %620
  %671 = load i8, ptr %51, align 1, !tbaa !13, !range !15, !noundef !16
  %672 = trunc i8 %671 to i1
  br i1 %672, label %673, label %682

673:                                              ; preds = %670
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %674 unwind label %637

674:                                              ; preds = %673
  %675 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %676 = load x86_fp80, ptr %50, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %53, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %675, x86_fp80 noundef %676, x86_fp80 noundef 0xK80000000000000000000)
          to label %677 unwind label %678

677:                                              ; preds = %674
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %682

678:                                              ; preds = %674
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %4, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %707

682:                                              ; preds = %677, %670
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %683 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %684 = add nsw i32 %683, 1
  store i32 %684, 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 %685 unwind label %711

685:                                              ; preds = %682
  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 16, ptr %56) #7
  %686 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xK3FFF8000000000000000) #7
  store x86_fp80 %686, ptr %56, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #7
  %687 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %688 unwind label %715

688:                                              ; preds = %685
  store x86_fp80 %687, ptr %57, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #7
  %689 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %690 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %691 = fsub x86_fp80 %689, %690
  %692 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %691)
          to label %693 unwind label %719

693:                                              ; preds = %688
  %694 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %695 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %694)
          to label %696 unwind label %719

696:                                              ; preds = %693
  %697 = fadd x86_fp80 0xK3FFF8000000000000000, %695
  %698 = fdiv x86_fp80 %692, %697
  store x86_fp80 %698, ptr %58, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  store i8 0, ptr %59, align 1, !tbaa !13
  %699 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %700 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %699)
          to label %701 unwind label %723

701:                                              ; preds = %696
  br i1 %700, label %702, label %727

702:                                              ; preds = %701
  %703 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %704 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %703)
          to label %705 unwind label %723

705:                                              ; preds = %702
  br i1 %704, label %706, label %727

706:                                              ; preds = %705
  store i8 1, ptr %59, align 1, !tbaa !13
  br label %756

707:                                              ; preds = %678, %664, %637
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  br label %708

708:                                              ; preds = %707, %633
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #7
  br label %709

709:                                              ; preds = %708, %629
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %710

710:                                              ; preds = %709, %625
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %1946

711:                                              ; preds = %682
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %4, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, 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 %796

715:                                              ; preds = %685
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %4, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %5, align 4
  br label %795

719:                                              ; preds = %693, %688
  %720 = landingpad { ptr, i32 }
          cleanup
  %721 = extractvalue { ptr, i32 } %720, 0
  store ptr %721, ptr %4, align 8
  %722 = extractvalue { ptr, i32 } %720, 1
  store i32 %722, ptr %5, align 4
  br label %794

723:                                              ; preds = %759, %744, %731, %727, %702, %696
  %724 = landingpad { ptr, i32 }
          cleanup
  %725 = extractvalue { ptr, i32 } %724, 0
  store ptr %725, ptr %4, align 8
  %726 = extractvalue { ptr, i32 } %724, 1
  store i32 %726, ptr %5, align 4
  br label %793

727:                                              ; preds = %705, %701
  %728 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %729 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %728)
          to label %730 unwind label %723

730:                                              ; preds = %727
  br i1 %729, label %740, label %731

731:                                              ; preds = %730
  %732 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %733 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %732)
          to label %734 unwind label %723

734:                                              ; preds = %731
  br i1 %733, label %735, label %740

735:                                              ; preds = %734
  %736 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %737 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %738 = fcmp oeq x86_fp80 %736, %737
  br i1 %738, label %739, label %740

739:                                              ; preds = %735
  store i8 1, ptr %59, align 1, !tbaa !13
  br label %755

740:                                              ; preds = %735, %734, %730
  %741 = load x86_fp80, ptr %58, align 16, !tbaa !9
  %742 = fcmp olt x86_fp80 %741, 0xK3FD0B424DC35095CD800
  br i1 %742, label %743, label %744

743:                                              ; preds = %740
  store i8 1, ptr %59, align 1, !tbaa !13
  br label %754

744:                                              ; preds = %740
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %745 unwind label %723

745:                                              ; preds = %744
  %746 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %747 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %748 = load x86_fp80, ptr %57, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %60, i32 noundef %746, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %747, x86_fp80 noundef %748, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %749 unwind label %750

749:                                              ; preds = %745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %754

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

754:                                              ; preds = %749, %743
  br label %755

755:                                              ; preds = %754, %739
  br label %756

756:                                              ; preds = %755, %706
  %757 = load i8, ptr %59, align 1, !tbaa !13, !range !15, !noundef !16
  %758 = trunc i8 %757 to i1
  br i1 %758, label %759, label %768

759:                                              ; preds = %756
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %760 unwind label %723

760:                                              ; preds = %759
  %761 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %762 = load x86_fp80, ptr %58, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %61, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %761, x86_fp80 noundef %762, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %763 unwind label %764

763:                                              ; preds = %760
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %768

764:                                              ; preds = %760
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %4, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %793

768:                                              ; preds = %763, %756
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %769 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %770 = add nsw i32 %769, 1
  store i32 %770, 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 %771 unwind label %797

771:                                              ; preds = %768
  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 16, ptr %64) #7
  %772 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xKBFFF8000000000000000) #7
  store x86_fp80 %772, ptr %64, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #7
  %773 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %774 unwind label %801

774:                                              ; preds = %771
  store x86_fp80 %773, ptr %65, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #7
  %775 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %776 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %777 = fsub x86_fp80 %775, %776
  %778 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %777)
          to label %779 unwind label %805

779:                                              ; preds = %774
  %780 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %781 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %780)
          to label %782 unwind label %805

782:                                              ; preds = %779
  %783 = fadd x86_fp80 0xK3FFF8000000000000000, %781
  %784 = fdiv x86_fp80 %778, %783
  store x86_fp80 %784, ptr %66, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  store i8 0, ptr %67, align 1, !tbaa !13
  %785 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %786 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %785)
          to label %787 unwind label %809

787:                                              ; preds = %782
  br i1 %786, label %788, label %813

788:                                              ; preds = %787
  %789 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %790 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %789)
          to label %791 unwind label %809

791:                                              ; preds = %788
  br i1 %790, label %792, label %813

792:                                              ; preds = %791
  store i8 1, ptr %67, align 1, !tbaa !13
  br label %842

793:                                              ; preds = %764, %750, %723
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  br label %794

794:                                              ; preds = %793, %719
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  br label %795

795:                                              ; preds = %794, %715
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %796

796:                                              ; preds = %795, %711
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %1946

797:                                              ; preds = %768
  %798 = landingpad { ptr, i32 }
          cleanup
  %799 = extractvalue { ptr, i32 } %798, 0
  store ptr %799, ptr %4, align 8
  %800 = extractvalue { ptr, i32 } %798, 1
  store i32 %800, 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 %886

801:                                              ; preds = %771
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %4, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %5, align 4
  br label %885

805:                                              ; preds = %779, %774
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %4, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %5, align 4
  br label %884

809:                                              ; preds = %845, %830, %817, %813, %788, %782
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %4, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %5, align 4
  br label %883

813:                                              ; preds = %791, %787
  %814 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %815 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %814)
          to label %816 unwind label %809

816:                                              ; preds = %813
  br i1 %815, label %826, label %817

817:                                              ; preds = %816
  %818 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %819 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %818)
          to label %820 unwind label %809

820:                                              ; preds = %817
  br i1 %819, label %821, label %826

821:                                              ; preds = %820
  %822 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %823 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %824 = fcmp oeq x86_fp80 %822, %823
  br i1 %824, label %825, label %826

825:                                              ; preds = %821
  store i8 1, ptr %67, align 1, !tbaa !13
  br label %841

826:                                              ; preds = %821, %820, %816
  %827 = load x86_fp80, ptr %66, align 16, !tbaa !9
  %828 = fcmp olt x86_fp80 %827, 0xK3FD0B424DC35095CD800
  br i1 %828, label %829, label %830

829:                                              ; preds = %826
  store i8 1, ptr %67, align 1, !tbaa !13
  br label %840

830:                                              ; preds = %826
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %831 unwind label %809

831:                                              ; preds = %830
  %832 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %833 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %834 = load x86_fp80, ptr %65, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %68, i32 noundef %832, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %833, x86_fp80 noundef %834, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %835 unwind label %836

835:                                              ; preds = %831
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %840

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

840:                                              ; preds = %835, %829
  br label %841

841:                                              ; preds = %840, %825
  br label %842

842:                                              ; preds = %841, %792
  %843 = load i8, ptr %67, align 1, !tbaa !13, !range !15, !noundef !16
  %844 = trunc i8 %843 to i1
  br i1 %844, label %845, label %854

845:                                              ; preds = %842
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %846 unwind label %809

846:                                              ; preds = %845
  %847 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %848 = load x86_fp80, ptr %66, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %69, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %847, x86_fp80 noundef %848, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %849 unwind label %850

849:                                              ; preds = %846
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %854

850:                                              ; preds = %846
  %851 = landingpad { ptr, i32 }
          cleanup
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %4, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %883

854:                                              ; preds = %849, %842
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %855 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %856 = add nsw i32 %855, 1
  store i32 %856, 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 %857 unwind label %887

857:                                              ; preds = %854
  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 16, ptr %72) #7
  %858 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %859 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %858) #7
  store x86_fp80 %859, ptr %72, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %860 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %861 = call double @llvm.fabs.f64(double %860)
  store double %861, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #7
  %862 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %863 = load double, ptr %73, align 8, !tbaa !11
  %864 = fpext double %863 to x86_fp80
  %865 = fsub x86_fp80 %862, %864
  %866 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %865)
          to label %867 unwind label %891

867:                                              ; preds = %857
  %868 = load double, ptr %73, align 8, !tbaa !11
  %869 = invoke noundef double @_ZSt3absd(double noundef %868)
          to label %870 unwind label %891

870:                                              ; preds = %867
  %871 = fadd double 1.000000e+00, %869
  %872 = fpext double %871 to x86_fp80
  %873 = fdiv x86_fp80 %866, %872
  store x86_fp80 %873, ptr %74, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #7
  store i8 0, ptr %75, align 1, !tbaa !13
  %874 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %875 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %874)
          to label %876 unwind label %895

876:                                              ; preds = %870
  br i1 %875, label %877, label %899

877:                                              ; preds = %876
  %878 = load double, ptr %73, align 8, !tbaa !11
  %879 = fpext double %878 to x86_fp80
  %880 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %879)
          to label %881 unwind label %895

881:                                              ; preds = %877
  br i1 %880, label %882, label %899

882:                                              ; preds = %881
  store i8 1, ptr %75, align 1, !tbaa !13
  br label %930

883:                                              ; preds = %850, %836, %809
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  br label %884

884:                                              ; preds = %883, %805
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #7
  br label %885

885:                                              ; preds = %884, %801
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %886

886:                                              ; preds = %885, %797
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %1946

887:                                              ; preds = %854
  %888 = landingpad { ptr, i32 }
          cleanup
  %889 = extractvalue { ptr, i32 } %888, 0
  store ptr %889, ptr %4, align 8
  %890 = extractvalue { ptr, i32 } %888, 1
  store i32 %890, 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 %974

891:                                              ; preds = %867, %857
  %892 = landingpad { ptr, i32 }
          cleanup
  %893 = extractvalue { ptr, i32 } %892, 0
  store ptr %893, ptr %4, align 8
  %894 = extractvalue { ptr, i32 } %892, 1
  store i32 %894, ptr %5, align 4
  br label %973

895:                                              ; preds = %933, %917, %903, %899, %877, %870
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %4, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %5, align 4
  br label %972

899:                                              ; preds = %881, %876
  %900 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %901 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %900)
          to label %902 unwind label %895

902:                                              ; preds = %899
  br i1 %901, label %913, label %903

903:                                              ; preds = %902
  %904 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %905 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %904)
          to label %906 unwind label %895

906:                                              ; preds = %903
  br i1 %905, label %907, label %913

907:                                              ; preds = %906
  %908 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %909 = load double, ptr %73, align 8, !tbaa !11
  %910 = fpext double %909 to x86_fp80
  %911 = fcmp oeq x86_fp80 %908, %910
  br i1 %911, label %912, label %913

912:                                              ; preds = %907
  store i8 1, ptr %75, align 1, !tbaa !13
  br label %929

913:                                              ; preds = %907, %906, %902
  %914 = load x86_fp80, ptr %74, align 16, !tbaa !9
  %915 = fcmp olt x86_fp80 %914, 0xK3FD0B424DC35095CD800
  br i1 %915, label %916, label %917

916:                                              ; preds = %913
  store i8 1, ptr %75, align 1, !tbaa !13
  br label %928

917:                                              ; preds = %913
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %918 unwind label %895

918:                                              ; preds = %917
  %919 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %920 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %921 = load double, ptr %73, align 8, !tbaa !11
  %922 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %76, i32 noundef %919, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %920, double noundef %921, double noundef %922)
          to label %923 unwind label %924

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

924:                                              ; preds = %918
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %4, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %972

928:                                              ; preds = %923, %916
  br label %929

929:                                              ; preds = %928, %912
  br label %930

930:                                              ; preds = %929, %882
  %931 = load i8, ptr %75, align 1, !tbaa !13, !range !15, !noundef !16
  %932 = trunc i8 %931 to i1
  br i1 %932, label %933, label %943

933:                                              ; preds = %930
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %934 unwind label %895

934:                                              ; preds = %933
  %935 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %936 = load x86_fp80, ptr %74, align 16, !tbaa !9
  %937 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %77, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %935, x86_fp80 noundef %936, double noundef %937)
          to label %938 unwind label %939

938:                                              ; preds = %934
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %943

939:                                              ; preds = %934
  %940 = landingpad { ptr, i32 }
          cleanup
  %941 = extractvalue { ptr, i32 } %940, 0
  store ptr %941, ptr %4, align 8
  %942 = extractvalue { ptr, i32 } %940, 1
  store i32 %942, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %972

943:                                              ; preds = %938, %930
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %944 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, 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 %946 unwind label %975

946:                                              ; preds = %943
  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 16, ptr %80) #7
  %947 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %948 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %947) #7
  store x86_fp80 %948, ptr %80, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %949 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %950 = call double @llvm.fabs.f64(double %949)
  store double %950, ptr %81, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %82) #7
  %951 = load x86_fp80, ptr %80, align 16, !tbaa !9
  %952 = load double, ptr %81, align 8, !tbaa !11
  %953 = fpext double %952 to x86_fp80
  %954 = fsub x86_fp80 %951, %953
  %955 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %954)
          to label %956 unwind label %979

956:                                              ; preds = %946
  %957 = load double, ptr %81, align 8, !tbaa !11
  %958 = invoke noundef double @_ZSt3absd(double noundef %957)
          to label %959 unwind label %979

959:                                              ; preds = %956
  %960 = fadd double 1.000000e+00, %958
  %961 = fpext double %960 to x86_fp80
  %962 = fdiv x86_fp80 %955, %961
  store x86_fp80 %962, ptr %82, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #7
  store i8 0, ptr %83, align 1, !tbaa !13
  %963 = load x86_fp80, ptr %80, align 16, !tbaa !9
  %964 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %963)
          to label %965 unwind label %983

965:                                              ; preds = %959
  br i1 %964, label %966, label %987

966:                                              ; preds = %965
  %967 = load double, ptr %81, align 8, !tbaa !11
  %968 = fpext double %967 to x86_fp80
  %969 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %968)
          to label %970 unwind label %983

970:                                              ; preds = %966
  br i1 %969, label %971, label %987

971:                                              ; preds = %970
  store i8 1, ptr %83, align 1, !tbaa !13
  br label %1018

972:                                              ; preds = %939, %924, %895
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  br label %973

973:                                              ; preds = %972, %891
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %974

974:                                              ; preds = %973, %887
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %1946

975:                                              ; preds = %943
  %976 = landingpad { ptr, i32 }
          cleanup
  %977 = extractvalue { ptr, i32 } %976, 0
  store ptr %977, ptr %4, align 8
  %978 = extractvalue { ptr, i32 } %976, 1
  store i32 %978, 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 %1062

979:                                              ; preds = %956, %946
  %980 = landingpad { ptr, i32 }
          cleanup
  %981 = extractvalue { ptr, i32 } %980, 0
  store ptr %981, ptr %4, align 8
  %982 = extractvalue { ptr, i32 } %980, 1
  store i32 %982, ptr %5, align 4
  br label %1061

983:                                              ; preds = %1021, %1005, %991, %987, %966, %959
  %984 = landingpad { ptr, i32 }
          cleanup
  %985 = extractvalue { ptr, i32 } %984, 0
  store ptr %985, ptr %4, align 8
  %986 = extractvalue { ptr, i32 } %984, 1
  store i32 %986, ptr %5, align 4
  br label %1060

987:                                              ; preds = %970, %965
  %988 = load x86_fp80, ptr %80, align 16, !tbaa !9
  %989 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %988)
          to label %990 unwind label %983

990:                                              ; preds = %987
  br i1 %989, label %1001, label %991

991:                                              ; preds = %990
  %992 = load x86_fp80, ptr %80, align 16, !tbaa !9
  %993 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %992)
          to label %994 unwind label %983

994:                                              ; preds = %991
  br i1 %993, label %995, label %1001

995:                                              ; preds = %994
  %996 = load x86_fp80, ptr %80, align 16, !tbaa !9
  %997 = load double, ptr %81, align 8, !tbaa !11
  %998 = fpext double %997 to x86_fp80
  %999 = fcmp oeq x86_fp80 %996, %998
  br i1 %999, label %1000, label %1001

1000:                                             ; preds = %995
  store i8 1, ptr %83, align 1, !tbaa !13
  br label %1017

1001:                                             ; preds = %995, %994, %990
  %1002 = load x86_fp80, ptr %82, align 16, !tbaa !9
  %1003 = fcmp olt x86_fp80 %1002, 0xK3FD0B424DC35095CD800
  br i1 %1003, label %1004, label %1005

1004:                                             ; preds = %1001
  store i8 1, ptr %83, align 1, !tbaa !13
  br label %1016

1005:                                             ; preds = %1001
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1006 unwind label %983

1006:                                             ; preds = %1005
  %1007 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1008 = load x86_fp80, ptr %80, align 16, !tbaa !9
  %1009 = load double, ptr %81, align 8, !tbaa !11
  %1010 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %84, i32 noundef %1007, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1008, double noundef %1009, double noundef %1010)
          to label %1011 unwind label %1012

1011:                                             ; preds = %1006
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1016

1012:                                             ; preds = %1006
  %1013 = landingpad { ptr, i32 }
          cleanup
  %1014 = extractvalue { ptr, i32 } %1013, 0
  store ptr %1014, ptr %4, align 8
  %1015 = extractvalue { ptr, i32 } %1013, 1
  store i32 %1015, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1060

1016:                                             ; preds = %1011, %1004
  br label %1017

1017:                                             ; preds = %1016, %1000
  br label %1018

1018:                                             ; preds = %1017, %971
  %1019 = load i8, ptr %83, align 1, !tbaa !13, !range !15, !noundef !16
  %1020 = trunc i8 %1019 to i1
  br i1 %1020, label %1021, label %1031

1021:                                             ; preds = %1018
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1022 unwind label %983

1022:                                             ; preds = %1021
  %1023 = load x86_fp80, ptr %80, align 16, !tbaa !9
  %1024 = load x86_fp80, ptr %82, align 16, !tbaa !9
  %1025 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %85, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1023, x86_fp80 noundef %1024, double noundef %1025)
          to label %1026 unwind label %1027

1026:                                             ; preds = %1022
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1031

1027:                                             ; preds = %1022
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %4, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1060

1031:                                             ; preds = %1026, %1018
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %1032 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1033 = add nsw i32 %1032, 1
  store i32 %1033, 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 %1034 unwind label %1063

1034:                                             ; preds = %1031
  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 16, ptr %88) #7
  %1035 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %1036 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %1035) #7
  store x86_fp80 %1036, ptr %88, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  %1037 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %1038 = call double @llvm.fabs.f64(double %1037)
  store double %1038, ptr %89, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #7
  %1039 = load x86_fp80, ptr %88, align 16, !tbaa !9
  %1040 = load double, ptr %89, align 8, !tbaa !11
  %1041 = fpext double %1040 to x86_fp80
  %1042 = fsub x86_fp80 %1039, %1041
  %1043 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1042)
          to label %1044 unwind label %1067

1044:                                             ; preds = %1034
  %1045 = load double, ptr %89, align 8, !tbaa !11
  %1046 = invoke noundef double @_ZSt3absd(double noundef %1045)
          to label %1047 unwind label %1067

1047:                                             ; preds = %1044
  %1048 = fadd double 1.000000e+00, %1046
  %1049 = fpext double %1048 to x86_fp80
  %1050 = fdiv x86_fp80 %1043, %1049
  store x86_fp80 %1050, ptr %90, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #7
  store i8 0, ptr %91, align 1, !tbaa !13
  %1051 = load x86_fp80, ptr %88, align 16, !tbaa !9
  %1052 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1051)
          to label %1053 unwind label %1071

1053:                                             ; preds = %1047
  br i1 %1052, label %1054, label %1075

1054:                                             ; preds = %1053
  %1055 = load double, ptr %89, align 8, !tbaa !11
  %1056 = fpext double %1055 to x86_fp80
  %1057 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1056)
          to label %1058 unwind label %1071

1058:                                             ; preds = %1054
  br i1 %1057, label %1059, label %1075

1059:                                             ; preds = %1058
  store i8 1, ptr %91, align 1, !tbaa !13
  br label %1106

1060:                                             ; preds = %1027, %1012, %983
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  br label %1061

1061:                                             ; preds = %1060, %979
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %1062

1062:                                             ; preds = %1061, %975
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  br label %1946

1063:                                             ; preds = %1031
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %4, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %5, align 4
  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 %1148

1067:                                             ; preds = %1044, %1034
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %4, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %5, align 4
  br label %1147

1071:                                             ; preds = %1109, %1093, %1079, %1075, %1054, %1047
  %1072 = landingpad { ptr, i32 }
          cleanup
  %1073 = extractvalue { ptr, i32 } %1072, 0
  store ptr %1073, ptr %4, align 8
  %1074 = extractvalue { ptr, i32 } %1072, 1
  store i32 %1074, ptr %5, align 4
  br label %1146

1075:                                             ; preds = %1058, %1053
  %1076 = load x86_fp80, ptr %88, align 16, !tbaa !9
  %1077 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1076)
          to label %1078 unwind label %1071

1078:                                             ; preds = %1075
  br i1 %1077, label %1089, label %1079

1079:                                             ; preds = %1078
  %1080 = load x86_fp80, ptr %88, align 16, !tbaa !9
  %1081 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1080)
          to label %1082 unwind label %1071

1082:                                             ; preds = %1079
  br i1 %1081, label %1083, label %1089

1083:                                             ; preds = %1082
  %1084 = load x86_fp80, ptr %88, align 16, !tbaa !9
  %1085 = load double, ptr %89, align 8, !tbaa !11
  %1086 = fpext double %1085 to x86_fp80
  %1087 = fcmp oeq x86_fp80 %1084, %1086
  br i1 %1087, label %1088, label %1089

1088:                                             ; preds = %1083
  store i8 1, ptr %91, align 1, !tbaa !13
  br label %1105

1089:                                             ; preds = %1083, %1082, %1078
  %1090 = load x86_fp80, ptr %90, align 16, !tbaa !9
  %1091 = fcmp olt x86_fp80 %1090, 0xK3FD0B424DC35095CD800
  br i1 %1091, label %1092, label %1093

1092:                                             ; preds = %1089
  store i8 1, ptr %91, align 1, !tbaa !13
  br label %1104

1093:                                             ; preds = %1089
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1094 unwind label %1071

1094:                                             ; preds = %1093
  %1095 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1096 = load x86_fp80, ptr %88, align 16, !tbaa !9
  %1097 = load double, ptr %89, align 8, !tbaa !11
  %1098 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %92, i32 noundef %1095, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1096, double noundef %1097, double noundef %1098)
          to label %1099 unwind label %1100

1099:                                             ; preds = %1094
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1104

1100:                                             ; preds = %1094
  %1101 = landingpad { ptr, i32 }
          cleanup
  %1102 = extractvalue { ptr, i32 } %1101, 0
  store ptr %1102, ptr %4, align 8
  %1103 = extractvalue { ptr, i32 } %1101, 1
  store i32 %1103, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1146

1104:                                             ; preds = %1099, %1092
  br label %1105

1105:                                             ; preds = %1104, %1088
  br label %1106

1106:                                             ; preds = %1105, %1059
  %1107 = load i8, ptr %91, align 1, !tbaa !13, !range !15, !noundef !16
  %1108 = trunc i8 %1107 to i1
  br i1 %1108, label %1109, label %1119

1109:                                             ; preds = %1106
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1110 unwind label %1071

1110:                                             ; preds = %1109
  %1111 = load x86_fp80, ptr %88, align 16, !tbaa !9
  %1112 = load x86_fp80, ptr %90, align 16, !tbaa !9
  %1113 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %93, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1111, x86_fp80 noundef %1112, double noundef %1113)
          to label %1114 unwind label %1115

1114:                                             ; preds = %1110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1119

1115:                                             ; preds = %1110
  %1116 = landingpad { ptr, i32 }
          cleanup
  %1117 = extractvalue { ptr, i32 } %1116, 0
  store ptr %1117, ptr %4, align 8
  %1118 = extractvalue { ptr, i32 } %1116, 1
  store i32 %1118, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1146

1119:                                             ; preds = %1114, %1106
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 16, 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
  %1120 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1121 = add nsw i32 %1120, 1
  store i32 %1121, 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 %1122 unwind label %1149

1122:                                             ; preds = %1119
  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
  %1123 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %1124 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %1123) #7
  store x86_fp80 %1124, ptr %96, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #7
  %1125 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %1126 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %1125)
          to label %1127 unwind label %1153

1127:                                             ; preds = %1122
  store x86_fp80 %1126, ptr %97, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #7
  %1128 = load x86_fp80, ptr %96, align 16, !tbaa !9
  %1129 = load x86_fp80, ptr %97, align 16, !tbaa !9
  %1130 = fsub x86_fp80 %1128, %1129
  %1131 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1130)
          to label %1132 unwind label %1157

1132:                                             ; preds = %1127
  %1133 = load x86_fp80, ptr %97, align 16, !tbaa !9
  %1134 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1133)
          to label %1135 unwind label %1157

1135:                                             ; preds = %1132
  %1136 = fadd x86_fp80 0xK3FFF8000000000000000, %1134
  %1137 = fdiv x86_fp80 %1131, %1136
  store x86_fp80 %1137, ptr %98, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #7
  store i8 0, ptr %99, align 1, !tbaa !13
  %1138 = load x86_fp80, ptr %96, align 16, !tbaa !9
  %1139 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1138)
          to label %1140 unwind label %1161

1140:                                             ; preds = %1135
  br i1 %1139, label %1141, label %1165

1141:                                             ; preds = %1140
  %1142 = load x86_fp80, ptr %97, align 16, !tbaa !9
  %1143 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1142)
          to label %1144 unwind label %1161

1144:                                             ; preds = %1141
  br i1 %1143, label %1145, label %1165

1145:                                             ; preds = %1144
  store i8 1, ptr %99, align 1, !tbaa !13
  br label %1195

1146:                                             ; preds = %1115, %1100, %1071
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #7
  br label %1147

1147:                                             ; preds = %1146, %1067
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %1148

1148:                                             ; preds = %1147, %1063
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  br label %1946

1149:                                             ; preds = %1119
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %4, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %5, align 4
  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 %1238

1153:                                             ; preds = %1122
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %4, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %5, align 4
  br label %1237

1157:                                             ; preds = %1132, %1127
  %1158 = landingpad { ptr, i32 }
          cleanup
  %1159 = extractvalue { ptr, i32 } %1158, 0
  store ptr %1159, ptr %4, align 8
  %1160 = extractvalue { ptr, i32 } %1158, 1
  store i32 %1160, ptr %5, align 4
  br label %1236

1161:                                             ; preds = %1198, %1182, %1169, %1165, %1141, %1135
  %1162 = landingpad { ptr, i32 }
          cleanup
  %1163 = extractvalue { ptr, i32 } %1162, 0
  store ptr %1163, ptr %4, align 8
  %1164 = extractvalue { ptr, i32 } %1162, 1
  store i32 %1164, ptr %5, align 4
  br label %1235

1165:                                             ; preds = %1144, %1140
  %1166 = load x86_fp80, ptr %96, align 16, !tbaa !9
  %1167 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1166)
          to label %1168 unwind label %1161

1168:                                             ; preds = %1165
  br i1 %1167, label %1178, label %1169

1169:                                             ; preds = %1168
  %1170 = load x86_fp80, ptr %96, align 16, !tbaa !9
  %1171 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1170)
          to label %1172 unwind label %1161

1172:                                             ; preds = %1169
  br i1 %1171, label %1173, label %1178

1173:                                             ; preds = %1172
  %1174 = load x86_fp80, ptr %96, align 16, !tbaa !9
  %1175 = load x86_fp80, ptr %97, align 16, !tbaa !9
  %1176 = fcmp oeq x86_fp80 %1174, %1175
  br i1 %1176, label %1177, label %1178

1177:                                             ; preds = %1173
  store i8 1, ptr %99, align 1, !tbaa !13
  br label %1194

1178:                                             ; preds = %1173, %1172, %1168
  %1179 = load x86_fp80, ptr %98, align 16, !tbaa !9
  %1180 = fcmp olt x86_fp80 %1179, 0xK3FD0B424DC35095CD800
  br i1 %1180, label %1181, label %1182

1181:                                             ; preds = %1178
  store i8 1, ptr %99, align 1, !tbaa !13
  br label %1193

1182:                                             ; preds = %1178
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1183 unwind label %1161

1183:                                             ; preds = %1182
  %1184 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1185 = load x86_fp80, ptr %96, align 16, !tbaa !9
  %1186 = load x86_fp80, ptr %97, align 16, !tbaa !9
  %1187 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %100, i32 noundef %1184, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1185, x86_fp80 noundef %1186, x86_fp80 noundef %1187)
          to label %1188 unwind label %1189

1188:                                             ; preds = %1183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1193

1189:                                             ; preds = %1183
  %1190 = landingpad { ptr, i32 }
          cleanup
  %1191 = extractvalue { ptr, i32 } %1190, 0
  store ptr %1191, ptr %4, align 8
  %1192 = extractvalue { ptr, i32 } %1190, 1
  store i32 %1192, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1235

1193:                                             ; preds = %1188, %1181
  br label %1194

1194:                                             ; preds = %1193, %1177
  br label %1195

1195:                                             ; preds = %1194, %1145
  %1196 = load i8, ptr %99, align 1, !tbaa !13, !range !15, !noundef !16
  %1197 = trunc i8 %1196 to i1
  br i1 %1197, label %1198, label %1208

1198:                                             ; preds = %1195
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1199 unwind label %1161

1199:                                             ; preds = %1198
  %1200 = load x86_fp80, ptr %96, align 16, !tbaa !9
  %1201 = load x86_fp80, ptr %98, align 16, !tbaa !9
  %1202 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %101, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1200, x86_fp80 noundef %1201, x86_fp80 noundef %1202)
          to label %1203 unwind label %1204

1203:                                             ; preds = %1199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1208

1204:                                             ; preds = %1199
  %1205 = landingpad { ptr, i32 }
          cleanup
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %4, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1235

1208:                                             ; preds = %1203, %1195
  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
  %1209 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1210 = add nsw i32 %1209, 1
  store i32 %1210, 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 %1211 unwind label %1239

1211:                                             ; preds = %1208
  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
  %1212 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %1213 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %1212) #7
  store x86_fp80 %1213, ptr %104, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #7
  %1214 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %1215 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %1214)
          to label %1216 unwind label %1243

1216:                                             ; preds = %1211
  store x86_fp80 %1215, ptr %105, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #7
  %1217 = load x86_fp80, ptr %104, align 16, !tbaa !9
  %1218 = load x86_fp80, ptr %105, align 16, !tbaa !9
  %1219 = fsub x86_fp80 %1217, %1218
  %1220 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1219)
          to label %1221 unwind label %1247

1221:                                             ; preds = %1216
  %1222 = load x86_fp80, ptr %105, align 16, !tbaa !9
  %1223 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1222)
          to label %1224 unwind label %1247

1224:                                             ; preds = %1221
  %1225 = fadd x86_fp80 0xK3FFF8000000000000000, %1223
  %1226 = fdiv x86_fp80 %1220, %1225
  store x86_fp80 %1226, ptr %106, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #7
  store i8 0, ptr %107, align 1, !tbaa !13
  %1227 = load x86_fp80, ptr %104, align 16, !tbaa !9
  %1228 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1227)
          to label %1229 unwind label %1251

1229:                                             ; preds = %1224
  br i1 %1228, label %1230, label %1255

1230:                                             ; preds = %1229
  %1231 = load x86_fp80, ptr %105, align 16, !tbaa !9
  %1232 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1231)
          to label %1233 unwind label %1251

1233:                                             ; preds = %1230
  br i1 %1232, label %1234, label %1255

1234:                                             ; preds = %1233
  store i8 1, ptr %107, align 1, !tbaa !13
  br label %1285

1235:                                             ; preds = %1204, %1189, %1161
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #7
  br label %1236

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

1237:                                             ; preds = %1236, %1153
  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 %1238

1238:                                             ; preds = %1237, %1149
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  br label %1946

1239:                                             ; preds = %1208
  %1240 = landingpad { ptr, i32 }
          cleanup
  %1241 = extractvalue { ptr, i32 } %1240, 0
  store ptr %1241, ptr %4, align 8
  %1242 = extractvalue { ptr, i32 } %1240, 1
  store i32 %1242, 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 %1328

1243:                                             ; preds = %1211
  %1244 = landingpad { ptr, i32 }
          cleanup
  %1245 = extractvalue { ptr, i32 } %1244, 0
  store ptr %1245, ptr %4, align 8
  %1246 = extractvalue { ptr, i32 } %1244, 1
  store i32 %1246, ptr %5, align 4
  br label %1327

1247:                                             ; preds = %1221, %1216
  %1248 = landingpad { ptr, i32 }
          cleanup
  %1249 = extractvalue { ptr, i32 } %1248, 0
  store ptr %1249, ptr %4, align 8
  %1250 = extractvalue { ptr, i32 } %1248, 1
  store i32 %1250, ptr %5, align 4
  br label %1326

1251:                                             ; preds = %1288, %1272, %1259, %1255, %1230, %1224
  %1252 = landingpad { ptr, i32 }
          cleanup
  %1253 = extractvalue { ptr, i32 } %1252, 0
  store ptr %1253, ptr %4, align 8
  %1254 = extractvalue { ptr, i32 } %1252, 1
  store i32 %1254, ptr %5, align 4
  br label %1325

1255:                                             ; preds = %1233, %1229
  %1256 = load x86_fp80, ptr %104, align 16, !tbaa !9
  %1257 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1256)
          to label %1258 unwind label %1251

1258:                                             ; preds = %1255
  br i1 %1257, label %1268, label %1259

1259:                                             ; preds = %1258
  %1260 = load x86_fp80, ptr %104, align 16, !tbaa !9
  %1261 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1260)
          to label %1262 unwind label %1251

1262:                                             ; preds = %1259
  br i1 %1261, label %1263, label %1268

1263:                                             ; preds = %1262
  %1264 = load x86_fp80, ptr %104, align 16, !tbaa !9
  %1265 = load x86_fp80, ptr %105, align 16, !tbaa !9
  %1266 = fcmp oeq x86_fp80 %1264, %1265
  br i1 %1266, label %1267, label %1268

1267:                                             ; preds = %1263
  store i8 1, ptr %107, align 1, !tbaa !13
  br label %1284

1268:                                             ; preds = %1263, %1262, %1258
  %1269 = load x86_fp80, ptr %106, align 16, !tbaa !9
  %1270 = fcmp olt x86_fp80 %1269, 0xK3FD0B424DC35095CD800
  br i1 %1270, label %1271, label %1272

1271:                                             ; preds = %1268
  store i8 1, ptr %107, align 1, !tbaa !13
  br label %1283

1272:                                             ; preds = %1268
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1273 unwind label %1251

1273:                                             ; preds = %1272
  %1274 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1275 = load x86_fp80, ptr %104, align 16, !tbaa !9
  %1276 = load x86_fp80, ptr %105, align 16, !tbaa !9
  %1277 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %108, i32 noundef %1274, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1275, x86_fp80 noundef %1276, x86_fp80 noundef %1277)
          to label %1278 unwind label %1279

1278:                                             ; preds = %1273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1283

1279:                                             ; preds = %1273
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %4, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1325

1283:                                             ; preds = %1278, %1271
  br label %1284

1284:                                             ; preds = %1283, %1267
  br label %1285

1285:                                             ; preds = %1284, %1234
  %1286 = load i8, ptr %107, align 1, !tbaa !13, !range !15, !noundef !16
  %1287 = trunc i8 %1286 to i1
  br i1 %1287, label %1288, label %1298

1288:                                             ; preds = %1285
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1289 unwind label %1251

1289:                                             ; preds = %1288
  %1290 = load x86_fp80, ptr %104, align 16, !tbaa !9
  %1291 = load x86_fp80, ptr %106, align 16, !tbaa !9
  %1292 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %109, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1290, x86_fp80 noundef %1291, x86_fp80 noundef %1292)
          to label %1293 unwind label %1294

1293:                                             ; preds = %1289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1298

1294:                                             ; preds = %1289
  %1295 = landingpad { ptr, i32 }
          cleanup
  %1296 = extractvalue { ptr, i32 } %1295, 0
  store ptr %1296, ptr %4, align 8
  %1297 = extractvalue { ptr, i32 } %1295, 1
  store i32 %1297, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1325

1298:                                             ; preds = %1293, %1285
  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
  %1299 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1300 = add nsw i32 %1299, 1
  store i32 %1300, 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 %1301 unwind label %1329

1301:                                             ; preds = %1298
  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
  %1302 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %1303 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %1302) #7
  store x86_fp80 %1303, ptr %112, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #7
  %1304 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %1305 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %1304)
          to label %1306 unwind label %1333

1306:                                             ; preds = %1301
  store x86_fp80 %1305, ptr %113, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #7
  %1307 = load x86_fp80, ptr %112, align 16, !tbaa !9
  %1308 = load x86_fp80, ptr %113, align 16, !tbaa !9
  %1309 = fsub x86_fp80 %1307, %1308
  %1310 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1309)
          to label %1311 unwind label %1337

1311:                                             ; preds = %1306
  %1312 = load x86_fp80, ptr %113, align 16, !tbaa !9
  %1313 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1312)
          to label %1314 unwind label %1337

1314:                                             ; preds = %1311
  %1315 = fadd x86_fp80 0xK3FFF8000000000000000, %1313
  %1316 = fdiv x86_fp80 %1310, %1315
  store x86_fp80 %1316, ptr %114, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #7
  store i8 0, ptr %115, align 1, !tbaa !13
  %1317 = load x86_fp80, ptr %112, align 16, !tbaa !9
  %1318 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1317)
          to label %1319 unwind label %1341

1319:                                             ; preds = %1314
  br i1 %1318, label %1320, label %1345

1320:                                             ; preds = %1319
  %1321 = load x86_fp80, ptr %113, align 16, !tbaa !9
  %1322 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1321)
          to label %1323 unwind label %1341

1323:                                             ; preds = %1320
  br i1 %1322, label %1324, label %1345

1324:                                             ; preds = %1323
  store i8 1, ptr %115, align 1, !tbaa !13
  br label %1375

1325:                                             ; preds = %1294, %1279, %1251
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #7
  br label %1326

1326:                                             ; preds = %1325, %1247
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #7
  br label %1327

1327:                                             ; preds = %1326, %1243
  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 %1328

1328:                                             ; preds = %1327, %1239
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %1946

1329:                                             ; preds = %1298
  %1330 = landingpad { ptr, i32 }
          cleanup
  %1331 = extractvalue { ptr, i32 } %1330, 0
  store ptr %1331, ptr %4, align 8
  %1332 = extractvalue { ptr, i32 } %1330, 1
  store i32 %1332, 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 %1420

1333:                                             ; preds = %1301
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %4, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %5, align 4
  br label %1419

1337:                                             ; preds = %1311, %1306
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %4, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %5, align 4
  br label %1418

1341:                                             ; preds = %1378, %1362, %1349, %1345, %1320, %1314
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %4, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %5, align 4
  br label %1417

1345:                                             ; preds = %1323, %1319
  %1346 = load x86_fp80, ptr %112, align 16, !tbaa !9
  %1347 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1346)
          to label %1348 unwind label %1341

1348:                                             ; preds = %1345
  br i1 %1347, label %1358, label %1349

1349:                                             ; preds = %1348
  %1350 = load x86_fp80, ptr %112, align 16, !tbaa !9
  %1351 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1350)
          to label %1352 unwind label %1341

1352:                                             ; preds = %1349
  br i1 %1351, label %1353, label %1358

1353:                                             ; preds = %1352
  %1354 = load x86_fp80, ptr %112, align 16, !tbaa !9
  %1355 = load x86_fp80, ptr %113, align 16, !tbaa !9
  %1356 = fcmp oeq x86_fp80 %1354, %1355
  br i1 %1356, label %1357, label %1358

1357:                                             ; preds = %1353
  store i8 1, ptr %115, align 1, !tbaa !13
  br label %1374

1358:                                             ; preds = %1353, %1352, %1348
  %1359 = load x86_fp80, ptr %114, align 16, !tbaa !9
  %1360 = fcmp olt x86_fp80 %1359, 0xK3FD0B424DC35095CD800
  br i1 %1360, label %1361, label %1362

1361:                                             ; preds = %1358
  store i8 1, ptr %115, align 1, !tbaa !13
  br label %1373

1362:                                             ; preds = %1358
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1363 unwind label %1341

1363:                                             ; preds = %1362
  %1364 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1365 = load x86_fp80, ptr %112, align 16, !tbaa !9
  %1366 = load x86_fp80, ptr %113, align 16, !tbaa !9
  %1367 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %116, i32 noundef %1364, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1365, x86_fp80 noundef %1366, x86_fp80 noundef %1367)
          to label %1368 unwind label %1369

1368:                                             ; preds = %1363
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1373

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

1373:                                             ; preds = %1368, %1361
  br label %1374

1374:                                             ; preds = %1373, %1357
  br label %1375

1375:                                             ; preds = %1374, %1324
  %1376 = load i8, ptr %115, align 1, !tbaa !13, !range !15, !noundef !16
  %1377 = trunc i8 %1376 to i1
  br i1 %1377, label %1378, label %1388

1378:                                             ; preds = %1375
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1379 unwind label %1341

1379:                                             ; preds = %1378
  %1380 = load x86_fp80, ptr %112, align 16, !tbaa !9
  %1381 = load x86_fp80, ptr %114, align 16, !tbaa !9
  %1382 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %117, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1380, x86_fp80 noundef %1381, x86_fp80 noundef %1382)
          to label %1383 unwind label %1384

1383:                                             ; preds = %1379
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1388

1384:                                             ; preds = %1379
  %1385 = landingpad { ptr, i32 }
          cleanup
  %1386 = extractvalue { ptr, i32 } %1385, 0
  store ptr %1386, ptr %4, align 8
  %1387 = extractvalue { ptr, i32 } %1385, 1
  store i32 %1387, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1417

1388:                                             ; preds = %1383, %1375
  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
  %1389 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1390 = add nsw i32 %1389, 1
  store i32 %1390, 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 %1391 unwind label %1421

1391:                                             ; preds = %1388
  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
  %1392 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %1393 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %1392) #7
  store x86_fp80 %1393, ptr %120, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #7
  %1394 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %1395 = call double @llvm.fabs.f64(double %1394)
  store double %1395, ptr %121, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #7
  %1396 = load x86_fp80, ptr %120, align 16, !tbaa !9
  %1397 = load double, ptr %121, align 8, !tbaa !11
  %1398 = fpext double %1397 to x86_fp80
  %1399 = fsub x86_fp80 %1396, %1398
  %1400 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1399)
          to label %1401 unwind label %1425

1401:                                             ; preds = %1391
  %1402 = load double, ptr %121, align 8, !tbaa !11
  %1403 = invoke noundef double @_ZSt3absd(double noundef %1402)
          to label %1404 unwind label %1425

1404:                                             ; preds = %1401
  %1405 = fadd double 1.000000e+00, %1403
  %1406 = fpext double %1405 to x86_fp80
  %1407 = fdiv x86_fp80 %1400, %1406
  store x86_fp80 %1407, ptr %122, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #7
  store i8 0, ptr %123, align 1, !tbaa !13
  %1408 = load x86_fp80, ptr %120, align 16, !tbaa !9
  %1409 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1408)
          to label %1410 unwind label %1429

1410:                                             ; preds = %1404
  br i1 %1409, label %1411, label %1433

1411:                                             ; preds = %1410
  %1412 = load double, ptr %121, align 8, !tbaa !11
  %1413 = fpext double %1412 to x86_fp80
  %1414 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1413)
          to label %1415 unwind label %1429

1415:                                             ; preds = %1411
  br i1 %1414, label %1416, label %1433

1416:                                             ; preds = %1415
  store i8 1, ptr %123, align 1, !tbaa !13
  br label %1464

1417:                                             ; preds = %1384, %1369, %1341
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #7
  br label %1418

1418:                                             ; preds = %1417, %1337
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #7
  br label %1419

1419:                                             ; preds = %1418, %1333
  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 %1420

1420:                                             ; preds = %1419, %1329
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  br label %1946

1421:                                             ; preds = %1388
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %4, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, 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 %1508

1425:                                             ; preds = %1401, %1391
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %4, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %5, align 4
  br label %1507

1429:                                             ; preds = %1467, %1451, %1437, %1433, %1411, %1404
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %4, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %5, align 4
  br label %1506

1433:                                             ; preds = %1415, %1410
  %1434 = load x86_fp80, ptr %120, align 16, !tbaa !9
  %1435 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1434)
          to label %1436 unwind label %1429

1436:                                             ; preds = %1433
  br i1 %1435, label %1447, label %1437

1437:                                             ; preds = %1436
  %1438 = load x86_fp80, ptr %120, align 16, !tbaa !9
  %1439 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1438)
          to label %1440 unwind label %1429

1440:                                             ; preds = %1437
  br i1 %1439, label %1441, label %1447

1441:                                             ; preds = %1440
  %1442 = load x86_fp80, ptr %120, align 16, !tbaa !9
  %1443 = load double, ptr %121, align 8, !tbaa !11
  %1444 = fpext double %1443 to x86_fp80
  %1445 = fcmp oeq x86_fp80 %1442, %1444
  br i1 %1445, label %1446, label %1447

1446:                                             ; preds = %1441
  store i8 1, ptr %123, align 1, !tbaa !13
  br label %1463

1447:                                             ; preds = %1441, %1440, %1436
  %1448 = load x86_fp80, ptr %122, align 16, !tbaa !9
  %1449 = fcmp olt x86_fp80 %1448, 0xK3FD0B424DC35095CD800
  br i1 %1449, label %1450, label %1451

1450:                                             ; preds = %1447
  store i8 1, ptr %123, align 1, !tbaa !13
  br label %1462

1451:                                             ; preds = %1447
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1452 unwind label %1429

1452:                                             ; preds = %1451
  %1453 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1454 = load x86_fp80, ptr %120, align 16, !tbaa !9
  %1455 = load double, ptr %121, align 8, !tbaa !11
  %1456 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %124, i32 noundef %1453, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1454, double noundef %1455, double noundef %1456)
          to label %1457 unwind label %1458

1457:                                             ; preds = %1452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1462

1458:                                             ; preds = %1452
  %1459 = landingpad { ptr, i32 }
          cleanup
  %1460 = extractvalue { ptr, i32 } %1459, 0
  store ptr %1460, ptr %4, align 8
  %1461 = extractvalue { ptr, i32 } %1459, 1
  store i32 %1461, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1506

1462:                                             ; preds = %1457, %1450
  br label %1463

1463:                                             ; preds = %1462, %1446
  br label %1464

1464:                                             ; preds = %1463, %1416
  %1465 = load i8, ptr %123, align 1, !tbaa !13, !range !15, !noundef !16
  %1466 = trunc i8 %1465 to i1
  br i1 %1466, label %1467, label %1477

1467:                                             ; preds = %1464
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1468 unwind label %1429

1468:                                             ; preds = %1467
  %1469 = load x86_fp80, ptr %120, align 16, !tbaa !9
  %1470 = load x86_fp80, ptr %122, align 16, !tbaa !9
  %1471 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %125, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1469, x86_fp80 noundef %1470, double noundef %1471)
          to label %1472 unwind label %1473

1472:                                             ; preds = %1468
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1477

1473:                                             ; preds = %1468
  %1474 = landingpad { ptr, i32 }
          cleanup
  %1475 = extractvalue { ptr, i32 } %1474, 0
  store ptr %1475, ptr %4, align 8
  %1476 = extractvalue { ptr, i32 } %1474, 1
  store i32 %1476, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1506

1477:                                             ; preds = %1472, %1464
  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 8, 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
  %1478 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, 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 %1480 unwind label %1509

1480:                                             ; preds = %1477
  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
  %1481 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1482 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %1481) #7
  store x86_fp80 %1482, ptr %128, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #7
  %1483 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1484 = call double @llvm.fabs.f64(double %1483)
  store double %1484, ptr %129, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #7
  %1485 = load x86_fp80, ptr %128, align 16, !tbaa !9
  %1486 = load double, ptr %129, align 8, !tbaa !11
  %1487 = fpext double %1486 to x86_fp80
  %1488 = fsub x86_fp80 %1485, %1487
  %1489 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1488)
          to label %1490 unwind label %1513

1490:                                             ; preds = %1480
  %1491 = load double, ptr %129, align 8, !tbaa !11
  %1492 = invoke noundef double @_ZSt3absd(double noundef %1491)
          to label %1493 unwind label %1513

1493:                                             ; preds = %1490
  %1494 = fadd double 1.000000e+00, %1492
  %1495 = fpext double %1494 to x86_fp80
  %1496 = fdiv x86_fp80 %1489, %1495
  store x86_fp80 %1496, ptr %130, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #7
  store i8 0, ptr %131, align 1, !tbaa !13
  %1497 = load x86_fp80, ptr %128, align 16, !tbaa !9
  %1498 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1497)
          to label %1499 unwind label %1517

1499:                                             ; preds = %1493
  br i1 %1498, label %1500, label %1521

1500:                                             ; preds = %1499
  %1501 = load double, ptr %129, align 8, !tbaa !11
  %1502 = fpext double %1501 to x86_fp80
  %1503 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1502)
          to label %1504 unwind label %1517

1504:                                             ; preds = %1500
  br i1 %1503, label %1505, label %1521

1505:                                             ; preds = %1504
  store i8 1, ptr %131, align 1, !tbaa !13
  br label %1552

1506:                                             ; preds = %1473, %1458, %1429
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #7
  br label %1507

1507:                                             ; preds = %1506, %1425
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 %1508

1508:                                             ; preds = %1507, %1421
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  br label %1946

1509:                                             ; preds = %1477
  %1510 = landingpad { ptr, i32 }
          cleanup
  %1511 = extractvalue { ptr, i32 } %1510, 0
  store ptr %1511, ptr %4, align 8
  %1512 = extractvalue { ptr, i32 } %1510, 1
  store i32 %1512, 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 %1598

1513:                                             ; preds = %1490, %1480
  %1514 = landingpad { ptr, i32 }
          cleanup
  %1515 = extractvalue { ptr, i32 } %1514, 0
  store ptr %1515, ptr %4, align 8
  %1516 = extractvalue { ptr, i32 } %1514, 1
  store i32 %1516, ptr %5, align 4
  br label %1597

1517:                                             ; preds = %1555, %1539, %1525, %1521, %1500, %1493
  %1518 = landingpad { ptr, i32 }
          cleanup
  %1519 = extractvalue { ptr, i32 } %1518, 0
  store ptr %1519, ptr %4, align 8
  %1520 = extractvalue { ptr, i32 } %1518, 1
  store i32 %1520, ptr %5, align 4
  br label %1596

1521:                                             ; preds = %1504, %1499
  %1522 = load x86_fp80, ptr %128, align 16, !tbaa !9
  %1523 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1522)
          to label %1524 unwind label %1517

1524:                                             ; preds = %1521
  br i1 %1523, label %1535, label %1525

1525:                                             ; preds = %1524
  %1526 = load x86_fp80, ptr %128, align 16, !tbaa !9
  %1527 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1526)
          to label %1528 unwind label %1517

1528:                                             ; preds = %1525
  br i1 %1527, label %1529, label %1535

1529:                                             ; preds = %1528
  %1530 = load x86_fp80, ptr %128, align 16, !tbaa !9
  %1531 = load double, ptr %129, align 8, !tbaa !11
  %1532 = fpext double %1531 to x86_fp80
  %1533 = fcmp oeq x86_fp80 %1530, %1532
  br i1 %1533, label %1534, label %1535

1534:                                             ; preds = %1529
  store i8 1, ptr %131, align 1, !tbaa !13
  br label %1551

1535:                                             ; preds = %1529, %1528, %1524
  %1536 = load x86_fp80, ptr %130, align 16, !tbaa !9
  %1537 = fcmp olt x86_fp80 %1536, 0xK3FD0B424DC35095CD800
  br i1 %1537, label %1538, label %1539

1538:                                             ; preds = %1535
  store i8 1, ptr %131, align 1, !tbaa !13
  br label %1550

1539:                                             ; preds = %1535
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1540 unwind label %1517

1540:                                             ; preds = %1539
  %1541 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1542 = load x86_fp80, ptr %128, align 16, !tbaa !9
  %1543 = load double, ptr %129, align 8, !tbaa !11
  %1544 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %132, i32 noundef %1541, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1542, double noundef %1543, double noundef %1544)
          to label %1545 unwind label %1546

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

1546:                                             ; preds = %1540
  %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) %132) #7
  br label %1596

1550:                                             ; preds = %1545, %1538
  br label %1551

1551:                                             ; preds = %1550, %1534
  br label %1552

1552:                                             ; preds = %1551, %1505
  %1553 = load i8, ptr %131, align 1, !tbaa !13, !range !15, !noundef !16
  %1554 = trunc i8 %1553 to i1
  br i1 %1554, label %1555, label %1565

1555:                                             ; preds = %1552
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1556 unwind label %1517

1556:                                             ; preds = %1555
  %1557 = load x86_fp80, ptr %128, align 16, !tbaa !9
  %1558 = load x86_fp80, ptr %130, align 16, !tbaa !9
  %1559 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %133, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1557, x86_fp80 noundef %1558, double noundef %1559)
          to label %1560 unwind label %1561

1560:                                             ; preds = %1556
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1565

1561:                                             ; preds = %1556
  %1562 = landingpad { ptr, i32 }
          cleanup
  %1563 = extractvalue { ptr, i32 } %1562, 0
  store ptr %1563, ptr %4, align 8
  %1564 = extractvalue { ptr, i32 } %1562, 1
  store i32 %1564, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1596

1565:                                             ; preds = %1560, %1552
  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 8, 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
  %1566 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, 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 %1568 unwind label %1599

1568:                                             ; preds = %1565
  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
  %1569 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1570 = fneg double %1569
  %1571 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %1570) #7
  store x86_fp80 %1571, ptr %136, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #7
  %1572 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1573 = fneg double %1572
  %1574 = call double @llvm.fabs.f64(double %1573)
  store double %1574, ptr %137, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %138) #7
  %1575 = load x86_fp80, ptr %136, align 16, !tbaa !9
  %1576 = load double, ptr %137, align 8, !tbaa !11
  %1577 = fpext double %1576 to x86_fp80
  %1578 = fsub x86_fp80 %1575, %1577
  %1579 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1578)
          to label %1580 unwind label %1603

1580:                                             ; preds = %1568
  %1581 = load double, ptr %137, align 8, !tbaa !11
  %1582 = invoke noundef double @_ZSt3absd(double noundef %1581)
          to label %1583 unwind label %1603

1583:                                             ; preds = %1580
  %1584 = fadd double 1.000000e+00, %1582
  %1585 = fpext double %1584 to x86_fp80
  %1586 = fdiv x86_fp80 %1579, %1585
  store x86_fp80 %1586, ptr %138, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #7
  store i8 0, ptr %139, align 1, !tbaa !13
  %1587 = load x86_fp80, ptr %136, align 16, !tbaa !9
  %1588 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1587)
          to label %1589 unwind label %1607

1589:                                             ; preds = %1583
  br i1 %1588, label %1590, label %1611

1590:                                             ; preds = %1589
  %1591 = load double, ptr %137, align 8, !tbaa !11
  %1592 = fpext double %1591 to x86_fp80
  %1593 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1592)
          to label %1594 unwind label %1607

1594:                                             ; preds = %1590
  br i1 %1593, label %1595, label %1611

1595:                                             ; preds = %1594
  store i8 1, ptr %139, align 1, !tbaa !13
  br label %1643

1596:                                             ; preds = %1561, %1546, %1517
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #7
  br label %1597

1597:                                             ; preds = %1596, %1513
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 %1598

1598:                                             ; preds = %1597, %1509
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  br label %1946

1599:                                             ; preds = %1565
  %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
  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 %1686

1603:                                             ; preds = %1580, %1568
  %1604 = landingpad { ptr, i32 }
          cleanup
  %1605 = extractvalue { ptr, i32 } %1604, 0
  store ptr %1605, ptr %4, align 8
  %1606 = extractvalue { ptr, i32 } %1604, 1
  store i32 %1606, ptr %5, align 4
  br label %1685

1607:                                             ; preds = %1646, %1629, %1615, %1611, %1590, %1583
  %1608 = landingpad { ptr, i32 }
          cleanup
  %1609 = extractvalue { ptr, i32 } %1608, 0
  store ptr %1609, ptr %4, align 8
  %1610 = extractvalue { ptr, i32 } %1608, 1
  store i32 %1610, ptr %5, align 4
  br label %1684

1611:                                             ; preds = %1594, %1589
  %1612 = load x86_fp80, ptr %136, align 16, !tbaa !9
  %1613 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1612)
          to label %1614 unwind label %1607

1614:                                             ; preds = %1611
  br i1 %1613, label %1625, label %1615

1615:                                             ; preds = %1614
  %1616 = load x86_fp80, ptr %136, align 16, !tbaa !9
  %1617 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1616)
          to label %1618 unwind label %1607

1618:                                             ; preds = %1615
  br i1 %1617, label %1619, label %1625

1619:                                             ; preds = %1618
  %1620 = load x86_fp80, ptr %136, align 16, !tbaa !9
  %1621 = load double, ptr %137, align 8, !tbaa !11
  %1622 = fpext double %1621 to x86_fp80
  %1623 = fcmp oeq x86_fp80 %1620, %1622
  br i1 %1623, label %1624, label %1625

1624:                                             ; preds = %1619
  store i8 1, ptr %139, align 1, !tbaa !13
  br label %1642

1625:                                             ; preds = %1619, %1618, %1614
  %1626 = load x86_fp80, ptr %138, align 16, !tbaa !9
  %1627 = fcmp olt x86_fp80 %1626, 0xK3FD0B424DC35095CD800
  br i1 %1627, label %1628, label %1629

1628:                                             ; preds = %1625
  store i8 1, ptr %139, align 1, !tbaa !13
  br label %1641

1629:                                             ; preds = %1625
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1630 unwind label %1607

1630:                                             ; preds = %1629
  %1631 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1632 = load x86_fp80, ptr %136, align 16, !tbaa !9
  %1633 = load double, ptr %137, align 8, !tbaa !11
  %1634 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1635 = fneg double %1634
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %140, i32 noundef %1631, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1632, double noundef %1633, double noundef %1635)
          to label %1636 unwind label %1637

1636:                                             ; preds = %1630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1641

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

1641:                                             ; preds = %1636, %1628
  br label %1642

1642:                                             ; preds = %1641, %1624
  br label %1643

1643:                                             ; preds = %1642, %1595
  %1644 = load i8, ptr %139, align 1, !tbaa !13, !range !15, !noundef !16
  %1645 = trunc i8 %1644 to i1
  br i1 %1645, label %1646, label %1657

1646:                                             ; preds = %1643
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1647 unwind label %1607

1647:                                             ; preds = %1646
  %1648 = load x86_fp80, ptr %136, align 16, !tbaa !9
  %1649 = load x86_fp80, ptr %138, align 16, !tbaa !9
  %1650 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %1651 = fneg double %1650
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %141, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1648, x86_fp80 noundef %1649, double noundef %1651)
          to label %1652 unwind label %1653

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

1653:                                             ; preds = %1647
  %1654 = landingpad { ptr, i32 }
          cleanup
  %1655 = extractvalue { ptr, i32 } %1654, 0
  store ptr %1655, ptr %4, align 8
  %1656 = extractvalue { ptr, i32 } %1654, 1
  store i32 %1656, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1684

1657:                                             ; preds = %1652, %1643
  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 8, 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
  %1658 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1659 = add nsw i32 %1658, 1
  store i32 %1659, 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 %1660 unwind label %1687

1660:                                             ; preds = %1657
  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
  %1661 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1662 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %1661) #7
  store x86_fp80 %1662, ptr %144, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %145) #7
  %1663 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %1664 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %1663)
          to label %1665 unwind label %1691

1665:                                             ; preds = %1660
  store x86_fp80 %1664, ptr %145, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %146) #7
  %1666 = load x86_fp80, ptr %144, align 16, !tbaa !9
  %1667 = load x86_fp80, ptr %145, align 16, !tbaa !9
  %1668 = fsub x86_fp80 %1666, %1667
  %1669 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1668)
          to label %1670 unwind label %1695

1670:                                             ; preds = %1665
  %1671 = load x86_fp80, ptr %145, align 16, !tbaa !9
  %1672 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1671)
          to label %1673 unwind label %1695

1673:                                             ; preds = %1670
  %1674 = fadd x86_fp80 0xK3FFF8000000000000000, %1672
  %1675 = fdiv x86_fp80 %1669, %1674
  store x86_fp80 %1675, ptr %146, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #7
  store i8 0, ptr %147, align 1, !tbaa !13
  %1676 = load x86_fp80, ptr %144, align 16, !tbaa !9
  %1677 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1676)
          to label %1678 unwind label %1699

1678:                                             ; preds = %1673
  br i1 %1677, label %1679, label %1703

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

1682:                                             ; preds = %1679
  br i1 %1681, label %1683, label %1703

1683:                                             ; preds = %1682
  store i8 1, ptr %147, align 1, !tbaa !13
  br label %1733

1684:                                             ; preds = %1653, %1637, %1607
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  br label %1685

1685:                                             ; preds = %1684, %1603
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 %1686

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

1687:                                             ; preds = %1657
  %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) %143) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #7
  br label %1776

1691:                                             ; preds = %1660
  %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 %1775

1695:                                             ; preds = %1670, %1665
  %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 %1774

1699:                                             ; preds = %1736, %1720, %1707, %1703, %1679, %1673
  %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 %1773

1703:                                             ; preds = %1682, %1678
  %1704 = load x86_fp80, ptr %144, align 16, !tbaa !9
  %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 %144, align 16, !tbaa !9
  %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 %144, align 16, !tbaa !9
  %1713 = load x86_fp80, ptr %145, align 16, !tbaa !9
  %1714 = fcmp oeq x86_fp80 %1712, %1713
  br i1 %1714, label %1715, label %1716

1715:                                             ; preds = %1711
  store i8 1, ptr %147, align 1, !tbaa !13
  br label %1732

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

1719:                                             ; preds = %1716
  store i8 1, ptr %147, align 1, !tbaa !13
  br label %1731

1720:                                             ; preds = %1716
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %142)
          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 %144, align 16, !tbaa !9
  %1724 = load x86_fp80, ptr %145, align 16, !tbaa !9
  %1725 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %148, i32 noundef %1722, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1723, x86_fp80 noundef %1724, x86_fp80 noundef %1725)
          to label %1726 unwind label %1727

1726:                                             ; preds = %1721
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %1731

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

1731:                                             ; preds = %1726, %1719
  br label %1732

1732:                                             ; preds = %1731, %1715
  br label %1733

1733:                                             ; preds = %1732, %1683
  %1734 = load i8, ptr %147, align 1, !tbaa !13, !range !15, !noundef !16
  %1735 = trunc i8 %1734 to i1
  br i1 %1735, label %1736, label %1746

1736:                                             ; preds = %1733
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1737 unwind label %1699

1737:                                             ; preds = %1736
  %1738 = load x86_fp80, ptr %144, align 16, !tbaa !9
  %1739 = load x86_fp80, ptr %146, align 16, !tbaa !9
  %1740 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %149, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1738, x86_fp80 noundef %1739, x86_fp80 noundef %1740)
          to label %1741 unwind label %1742

1741:                                             ; preds = %1737
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %1746

1742:                                             ; preds = %1737
  %1743 = landingpad { ptr, i32 }
          cleanup
  %1744 = extractvalue { ptr, i32 } %1743, 0
  store ptr %1744, ptr %4, align 8
  %1745 = extractvalue { ptr, i32 } %1743, 1
  store i32 %1745, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %1773

1746:                                             ; preds = %1741, %1733
  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
  %1747 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1748 = add nsw i32 %1747, 1
  store i32 %1748, 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 %1749 unwind label %1777

1749:                                             ; preds = %1746
  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
  %1750 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1751 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %1750) #7
  store x86_fp80 %1751, ptr %152, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %153) #7
  %1752 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1753 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %1752)
          to label %1754 unwind label %1781

1754:                                             ; preds = %1749
  store x86_fp80 %1753, ptr %153, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %154) #7
  %1755 = load x86_fp80, ptr %152, align 16, !tbaa !9
  %1756 = load x86_fp80, ptr %153, align 16, !tbaa !9
  %1757 = fsub x86_fp80 %1755, %1756
  %1758 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1757)
          to label %1759 unwind label %1785

1759:                                             ; preds = %1754
  %1760 = load x86_fp80, ptr %153, align 16, !tbaa !9
  %1761 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1760)
          to label %1762 unwind label %1785

1762:                                             ; preds = %1759
  %1763 = fadd x86_fp80 0xK3FFF8000000000000000, %1761
  %1764 = fdiv x86_fp80 %1758, %1763
  store x86_fp80 %1764, ptr %154, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #7
  store i8 0, ptr %155, align 1, !tbaa !13
  %1765 = load x86_fp80, ptr %152, align 16, !tbaa !9
  %1766 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1765)
          to label %1767 unwind label %1789

1767:                                             ; preds = %1762
  br i1 %1766, label %1768, label %1793

1768:                                             ; preds = %1767
  %1769 = load x86_fp80, ptr %153, align 16, !tbaa !9
  %1770 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1769)
          to label %1771 unwind label %1789

1771:                                             ; preds = %1768
  br i1 %1770, label %1772, label %1793

1772:                                             ; preds = %1771
  store i8 1, ptr %155, align 1, !tbaa !13
  br label %1823

1773:                                             ; preds = %1742, %1727, %1699
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  br label %1774

1774:                                             ; preds = %1773, %1695
  call void @llvm.lifetime.end.p0(i64 16, ptr %146) #7
  br label %1775

1775:                                             ; preds = %1774, %1691
  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 %1776

1776:                                             ; preds = %1775, %1687
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  br label %1946

1777:                                             ; preds = %1746
  %1778 = landingpad { ptr, i32 }
          cleanup
  %1779 = extractvalue { ptr, i32 } %1778, 0
  store ptr %1779, ptr %4, align 8
  %1780 = extractvalue { ptr, i32 } %1778, 1
  store i32 %1780, 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 %1868

1781:                                             ; preds = %1749
  %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
  br label %1867

1785:                                             ; preds = %1759, %1754
  %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 %1866

1789:                                             ; preds = %1826, %1810, %1797, %1793, %1768, %1762
  %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 %1865

1793:                                             ; preds = %1771, %1767
  %1794 = load x86_fp80, ptr %152, align 16, !tbaa !9
  %1795 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1794)
          to label %1796 unwind label %1789

1796:                                             ; preds = %1793
  br i1 %1795, label %1806, label %1797

1797:                                             ; preds = %1796
  %1798 = load x86_fp80, ptr %152, align 16, !tbaa !9
  %1799 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1798)
          to label %1800 unwind label %1789

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

1801:                                             ; preds = %1800
  %1802 = load x86_fp80, ptr %152, align 16, !tbaa !9
  %1803 = load x86_fp80, ptr %153, align 16, !tbaa !9
  %1804 = fcmp oeq x86_fp80 %1802, %1803
  br i1 %1804, label %1805, label %1806

1805:                                             ; preds = %1801
  store i8 1, ptr %155, align 1, !tbaa !13
  br label %1822

1806:                                             ; preds = %1801, %1800, %1796
  %1807 = load x86_fp80, ptr %154, align 16, !tbaa !9
  %1808 = fcmp olt x86_fp80 %1807, 0xK3FD0B424DC35095CD800
  br i1 %1808, label %1809, label %1810

1809:                                             ; preds = %1806
  store i8 1, ptr %155, align 1, !tbaa !13
  br label %1821

1810:                                             ; preds = %1806
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1811 unwind label %1789

1811:                                             ; preds = %1810
  %1812 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1813 = load x86_fp80, ptr %152, align 16, !tbaa !9
  %1814 = load x86_fp80, ptr %153, align 16, !tbaa !9
  %1815 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %156, i32 noundef %1812, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1813, x86_fp80 noundef %1814, x86_fp80 noundef %1815)
          to label %1816 unwind label %1817

1816:                                             ; preds = %1811
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1821

1817:                                             ; preds = %1811
  %1818 = landingpad { ptr, i32 }
          cleanup
  %1819 = extractvalue { ptr, i32 } %1818, 0
  store ptr %1819, ptr %4, align 8
  %1820 = extractvalue { ptr, i32 } %1818, 1
  store i32 %1820, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1865

1821:                                             ; preds = %1816, %1809
  br label %1822

1822:                                             ; preds = %1821, %1805
  br label %1823

1823:                                             ; preds = %1822, %1772
  %1824 = load i8, ptr %155, align 1, !tbaa !13, !range !15, !noundef !16
  %1825 = trunc i8 %1824 to i1
  br i1 %1825, label %1826, label %1836

1826:                                             ; preds = %1823
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1827 unwind label %1789

1827:                                             ; preds = %1826
  %1828 = load x86_fp80, ptr %152, align 16, !tbaa !9
  %1829 = load x86_fp80, ptr %154, align 16, !tbaa !9
  %1830 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %157, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1828, x86_fp80 noundef %1829, x86_fp80 noundef %1830)
          to label %1831 unwind label %1832

1831:                                             ; preds = %1827
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %1836

1832:                                             ; preds = %1827
  %1833 = landingpad { ptr, i32 }
          cleanup
  %1834 = extractvalue { ptr, i32 } %1833, 0
  store ptr %1834, ptr %4, align 8
  %1835 = extractvalue { ptr, i32 } %1833, 1
  store i32 %1835, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %1865

1836:                                             ; preds = %1831, %1823
  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
  %1837 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1838 = add nsw i32 %1837, 1
  store i32 %1838, 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 %1839 unwind label %1869

1839:                                             ; preds = %1836
  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
  %1840 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1841 = fneg x86_fp80 %1840
  %1842 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %1841) #7
  store x86_fp80 %1842, ptr %160, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %161) #7
  %1843 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1844 = fneg x86_fp80 %1843
  %1845 = invoke noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %1844)
          to label %1846 unwind label %1873

1846:                                             ; preds = %1839
  store x86_fp80 %1845, ptr %161, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %162) #7
  %1847 = load x86_fp80, ptr %160, align 16, !tbaa !9
  %1848 = load x86_fp80, ptr %161, align 16, !tbaa !9
  %1849 = fsub x86_fp80 %1847, %1848
  %1850 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1849)
          to label %1851 unwind label %1877

1851:                                             ; preds = %1846
  %1852 = load x86_fp80, ptr %161, align 16, !tbaa !9
  %1853 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %1852)
          to label %1854 unwind label %1877

1854:                                             ; preds = %1851
  %1855 = fadd x86_fp80 0xK3FFF8000000000000000, %1853
  %1856 = fdiv x86_fp80 %1850, %1855
  store x86_fp80 %1856, ptr %162, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #7
  store i8 0, ptr %163, align 1, !tbaa !13
  %1857 = load x86_fp80, ptr %160, align 16, !tbaa !9
  %1858 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1857)
          to label %1859 unwind label %1881

1859:                                             ; preds = %1854
  br i1 %1858, label %1860, label %1885

1860:                                             ; preds = %1859
  %1861 = load x86_fp80, ptr %161, align 16, !tbaa !9
  %1862 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1861)
          to label %1863 unwind label %1881

1863:                                             ; preds = %1860
  br i1 %1862, label %1864, label %1885

1864:                                             ; preds = %1863
  store i8 1, ptr %163, align 1, !tbaa !13
  br label %1916

1865:                                             ; preds = %1832, %1817, %1789
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #7
  br label %1866

1866:                                             ; preds = %1865, %1785
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #7
  br label %1867

1867:                                             ; preds = %1866, %1781
  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 %1868

1868:                                             ; preds = %1867, %1777
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #7
  br label %1946

1869:                                             ; preds = %1836
  %1870 = landingpad { ptr, i32 }
          cleanup
  %1871 = extractvalue { ptr, i32 } %1870, 0
  store ptr %1871, ptr %4, align 8
  %1872 = extractvalue { ptr, i32 } %1870, 1
  store i32 %1872, ptr %5, align 4
  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 %1936

1873:                                             ; preds = %1839
  %1874 = landingpad { ptr, i32 }
          cleanup
  %1875 = extractvalue { ptr, i32 } %1874, 0
  store ptr %1875, ptr %4, align 8
  %1876 = extractvalue { ptr, i32 } %1874, 1
  store i32 %1876, ptr %5, align 4
  br label %1935

1877:                                             ; preds = %1851, %1846
  %1878 = landingpad { ptr, i32 }
          cleanup
  %1879 = extractvalue { ptr, i32 } %1878, 0
  store ptr %1879, ptr %4, align 8
  %1880 = extractvalue { ptr, i32 } %1878, 1
  store i32 %1880, ptr %5, align 4
  br label %1934

1881:                                             ; preds = %1919, %1902, %1889, %1885, %1860, %1854
  %1882 = landingpad { ptr, i32 }
          cleanup
  %1883 = extractvalue { ptr, i32 } %1882, 0
  store ptr %1883, ptr %4, align 8
  %1884 = extractvalue { ptr, i32 } %1882, 1
  store i32 %1884, ptr %5, align 4
  br label %1933

1885:                                             ; preds = %1863, %1859
  %1886 = load x86_fp80, ptr %160, align 16, !tbaa !9
  %1887 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1886)
          to label %1888 unwind label %1881

1888:                                             ; preds = %1885
  br i1 %1887, label %1898, label %1889

1889:                                             ; preds = %1888
  %1890 = load x86_fp80, ptr %160, align 16, !tbaa !9
  %1891 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1890)
          to label %1892 unwind label %1881

1892:                                             ; preds = %1889
  br i1 %1891, label %1893, label %1898

1893:                                             ; preds = %1892
  %1894 = load x86_fp80, ptr %160, align 16, !tbaa !9
  %1895 = load x86_fp80, ptr %161, align 16, !tbaa !9
  %1896 = fcmp oeq x86_fp80 %1894, %1895
  br i1 %1896, label %1897, label %1898

1897:                                             ; preds = %1893
  store i8 1, ptr %163, align 1, !tbaa !13
  br label %1915

1898:                                             ; preds = %1893, %1892, %1888
  %1899 = load x86_fp80, ptr %162, align 16, !tbaa !9
  %1900 = fcmp olt x86_fp80 %1899, 0xK3FD0B424DC35095CD800
  br i1 %1900, label %1901, label %1902

1901:                                             ; preds = %1898
  store i8 1, ptr %163, align 1, !tbaa !13
  br label %1914

1902:                                             ; preds = %1898
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1903 unwind label %1881

1903:                                             ; preds = %1902
  %1904 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1905 = load x86_fp80, ptr %160, align 16, !tbaa !9
  %1906 = load x86_fp80, ptr %161, align 16, !tbaa !9
  %1907 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1908 = fneg x86_fp80 %1907
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %164, i32 noundef %1904, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1905, x86_fp80 noundef %1906, x86_fp80 noundef %1908)
          to label %1909 unwind label %1910

1909:                                             ; preds = %1903
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %1914

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

1914:                                             ; preds = %1909, %1901
  br label %1915

1915:                                             ; preds = %1914, %1897
  br label %1916

1916:                                             ; preds = %1915, %1864
  %1917 = load i8, ptr %163, align 1, !tbaa !13, !range !15, !noundef !16
  %1918 = trunc i8 %1917 to i1
  br i1 %1918, label %1919, label %1930

1919:                                             ; preds = %1916
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1920 unwind label %1881

1920:                                             ; preds = %1919
  %1921 = load x86_fp80, ptr %160, align 16, !tbaa !9
  %1922 = load x86_fp80, ptr %162, align 16, !tbaa !9
  %1923 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %1924 = fneg x86_fp80 %1923
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %165, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %1921, x86_fp80 noundef %1922, x86_fp80 noundef %1924)
          to label %1925 unwind label %1926

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

1926:                                             ; preds = %1920
  %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) %165) #7
  br label %1933

1930:                                             ; preds = %1925, %1916
  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
  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, ptr noundef nonnull align 1 dereferenceable(1) %167)
          to label %1931 unwind label %1937

1931:                                             ; preds = %1930
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %166)
          to label %1932 unwind label %1941

1932:                                             ; preds = %1931
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  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
  ret i32 0

1933:                                             ; preds = %1926, %1910, %1881
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  br label %1934

1934:                                             ; preds = %1933, %1877
  call void @llvm.lifetime.end.p0(i64 16, ptr %162) #7
  br label %1935

1935:                                             ; preds = %1934, %1873
  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 %1936

1936:                                             ; preds = %1935, %1869
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  br label %1946

1937:                                             ; preds = %1930
  %1938 = landingpad { ptr, i32 }
          cleanup
  %1939 = extractvalue { ptr, i32 } %1938, 0
  store ptr %1939, ptr %4, align 8
  %1940 = extractvalue { ptr, i32 } %1938, 1
  store i32 %1940, ptr %5, align 4
  br label %1945

1941:                                             ; preds = %1931
  %1942 = landingpad { ptr, i32 }
          cleanup
  %1943 = extractvalue { ptr, i32 } %1942, 0
  store ptr %1943, ptr %4, align 8
  %1944 = extractvalue { ptr, i32 } %1942, 1
  store i32 %1944, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %1945

1945:                                             ; preds = %1941, %1937
  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 %1946

1946:                                             ; preds = %1945, %1936, %1868, %1776, %1686, %1598, %1508, %1420, %1328, %1238, %1148, %1062, %974, %886, %796, %710, %624, %538, %456, %372, %288, %204
  %1947 = load ptr, ptr %4, align 8
  %1948 = load i32, ptr %5, align 4
  %1949 = insertvalue { ptr, i32 } poison, ptr %1947, 0
  %1950 = insertvalue { ptr, i32 } %1949, i32 %1948, 1
  resume { ptr, i32 } %1950
}

; 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 x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef) #6

; 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_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 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_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, double noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3minEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3maxEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

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

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


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

%"class.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 [6 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.std::__cxx11::basic_string", align 8
  %2 = alloca %"class.std::allocator", align 1
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator", align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  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 %85 unwind label %99

85:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %86 unwind label %101

86:                                               ; preds = %85
  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
  %87 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %88 = add nsw i32 %87, 1
  store i32 %88, 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 %89 unwind label %104

89:                                               ; preds = %86
  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
  %90 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef 0.000000e+00) #7
  %91 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %90)
  %92 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %93 = fadd double %92, 1.000000e+00
  %94 = fpext double %93 to x86_fp80
  %95 = fdiv x86_fp80 %91, %94
  %96 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %90)
  br i1 %96, label %97, label %108

97:                                               ; preds = %89
  %98 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %98, label %120, label %108

99:                                               ; preds = %0
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %103

101:                                              ; preds = %85
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #7
  br label %103

103:                                              ; preds = %101, %99
  %.pn = phi { ptr, i32 } [ %102, %101 ], [ %100, %99 ]
  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 %864

104:                                              ; preds = %86
  %105 = 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 %137

106:                                              ; preds = %120, %115
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %136

108:                                              ; preds = %97, %89
  %109 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %90)
  br i1 %109, label %114, label %110

110:                                              ; preds = %108
  %111 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %90)
  %112 = fcmp oeq x86_fp80 %90, 0xK00000000000000000000
  %or.cond = and i1 %112, %111
  %113 = fcmp olt x86_fp80 %95, 0xK3FD0B424DC35095CD800
  %or.cond532 = or i1 %113, %or.cond
  br i1 %or.cond532, label %120, label %115

114:                                              ; preds = %108
  %.old = fcmp olt x86_fp80 %95, 0xK3FD0B424DC35095CD800
  br i1 %.old, label %120, label %115

115:                                              ; preds = %110, %114
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %116 unwind label %106

116:                                              ; preds = %115
  %117 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %5, i32 noundef %117, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %90, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %.critedge unwind label %118

118:                                              ; preds = %116
  %119 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %136

120:                                              ; preds = %97, %110, %114
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %121 unwind label %106

121:                                              ; preds = %120
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %90, x86_fp80 noundef %95, double noundef 0.000000e+00)
          to label %.critedge unwind label %122

122:                                              ; preds = %121
  %123 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %136

.critedge:                                        ; preds = %121, %116
  %.sink = phi ptr [ %5, %116 ], [ %6, %121 ]
  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
  %124 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %125 = add nsw i32 %124, 1
  store i32 %125, 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 %126 unwind label %138

126:                                              ; 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
  %127 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef -0.000000e+00) #7
  %128 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %127)
  %129 = call noundef double @_ZSt3absd(double noundef 0.000000e+00)
  %130 = fadd double %129, 1.000000e+00
  %131 = fpext double %130 to x86_fp80
  %132 = fdiv x86_fp80 %128, %131
  %133 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %127)
  br i1 %133, label %134, label %142

134:                                              ; preds = %126
  %135 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK00000000000000000000)
  br i1 %135, label %154, label %142

136:                                              ; preds = %122, %118, %106
  %.pn412 = phi { ptr, i32 } [ %123, %122 ], [ %107, %106 ], [ %119, %118 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %137

137:                                              ; preds = %136, %104
  %.pn412.pn = phi { ptr, i32 } [ %.pn412, %136 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %864

138:                                              ; preds = %.critedge
  %139 = 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 %172

140:                                              ; preds = %154, %149
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %171

142:                                              ; preds = %134, %126
  %143 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %127)
  br i1 %143, label %148, label %144

144:                                              ; preds = %142
  %145 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %127)
  %146 = fcmp oeq x86_fp80 %127, 0xK00000000000000000000
  %or.cond475 = and i1 %146, %145
  %147 = fcmp olt x86_fp80 %132, 0xK3FD0B424DC35095CD800
  %or.cond534 = or i1 %147, %or.cond475
  br i1 %or.cond534, label %154, label %149

148:                                              ; preds = %142
  %.old533 = fcmp olt x86_fp80 %132, 0xK3FD0B424DC35095CD800
  br i1 %.old533, label %154, label %149

149:                                              ; preds = %144, %148
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %150 unwind label %140

150:                                              ; preds = %149
  %151 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %9, i32 noundef %151, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %127, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %.critedge477 unwind label %152

152:                                              ; preds = %150
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %171

154:                                              ; preds = %134, %144, %148
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %155 unwind label %140

155:                                              ; preds = %154
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %127, x86_fp80 noundef %132, double noundef -0.000000e+00)
          to label %.critedge477 unwind label %156

156:                                              ; preds = %155
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %171

.critedge477:                                     ; preds = %155, %150
  %.sink571 = phi ptr [ %9, %150 ], [ %10, %155 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink571) #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
  %158 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %159 = add nsw i32 %158, 1
  store i32 %159, 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 %160 unwind label %173

160:                                              ; preds = %.critedge477
  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
  %161 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef 1.000000e+00) #7
  %162 = fadd x86_fp80 %161, 0xKBFFF8000000000000000
  %163 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %162)
  %164 = call noundef double @_ZSt3absd(double noundef 1.000000e+00)
  %165 = fadd double %164, 1.000000e+00
  %166 = fpext double %165 to x86_fp80
  %167 = fdiv x86_fp80 %163, %166
  %168 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %161)
  br i1 %168, label %169, label %177

169:                                              ; preds = %160
  %170 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFF8000000000000000)
  br i1 %170, label %189, label %177

171:                                              ; preds = %156, %152, %140
  %.pn415 = phi { ptr, i32 } [ %157, %156 ], [ %141, %140 ], [ %153, %152 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %172

172:                                              ; preds = %171, %138
  %.pn415.pn = phi { ptr, i32 } [ %.pn415, %171 ], [ %139, %138 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %864

173:                                              ; preds = %.critedge477
  %174 = 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 %207

175:                                              ; preds = %189, %184
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %206

177:                                              ; preds = %169, %160
  %178 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %161)
  br i1 %178, label %183, label %179

179:                                              ; preds = %177
  %180 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %161)
  %181 = fcmp oeq x86_fp80 %161, 0xK3FFF8000000000000000
  %or.cond478 = and i1 %181, %180
  %182 = fcmp olt x86_fp80 %167, 0xK3FD0B424DC35095CD800
  %or.cond536 = or i1 %182, %or.cond478
  br i1 %or.cond536, label %189, label %184

183:                                              ; preds = %177
  %.old535 = fcmp olt x86_fp80 %167, 0xK3FD0B424DC35095CD800
  br i1 %.old535, label %189, label %184

184:                                              ; preds = %179, %183
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %185 unwind label %175

185:                                              ; preds = %184
  %186 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %13, i32 noundef %186, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %161, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %.critedge480 unwind label %187

187:                                              ; preds = %185
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %206

189:                                              ; preds = %169, %179, %183
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %190 unwind label %175

190:                                              ; preds = %189
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %161, x86_fp80 noundef %167, double noundef 1.000000e+00)
          to label %.critedge480 unwind label %191

191:                                              ; preds = %190
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %206

.critedge480:                                     ; preds = %190, %185
  %.sink572 = phi ptr [ %13, %185 ], [ %14, %190 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink572) #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
  %193 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %194 = add nsw i32 %193, 1
  store i32 %194, 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 %195 unwind label %208

195:                                              ; preds = %.critedge480
  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
  %196 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef -1.000000e+00) #7
  %197 = fadd x86_fp80 %196, 0xKBFFF8000000000000000
  %198 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %197)
  %199 = call noundef double @_ZSt3absd(double noundef 1.000000e+00)
  %200 = fadd double %199, 1.000000e+00
  %201 = fpext double %200 to x86_fp80
  %202 = fdiv x86_fp80 %198, %201
  %203 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %196)
  br i1 %203, label %204, label %212

204:                                              ; preds = %195
  %205 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef 0xK3FFF8000000000000000)
  br i1 %205, label %224, label %212

206:                                              ; preds = %191, %187, %175
  %.pn418 = phi { ptr, i32 } [ %192, %191 ], [ %176, %175 ], [ %188, %187 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %207

207:                                              ; preds = %206, %173
  %.pn418.pn = phi { ptr, i32 } [ %.pn418, %206 ], [ %174, %173 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  br label %864

208:                                              ; preds = %.critedge480
  %209 = 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 %242

210:                                              ; preds = %224, %219
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %241

212:                                              ; preds = %204, %195
  %213 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %196)
  br i1 %213, label %218, label %214

214:                                              ; preds = %212
  %215 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %196)
  %216 = fcmp oeq x86_fp80 %196, 0xK3FFF8000000000000000
  %or.cond481 = and i1 %216, %215
  %217 = fcmp olt x86_fp80 %202, 0xK3FD0B424DC35095CD800
  %or.cond538 = or i1 %217, %or.cond481
  br i1 %or.cond538, label %224, label %219

218:                                              ; preds = %212
  %.old537 = fcmp olt x86_fp80 %202, 0xK3FD0B424DC35095CD800
  br i1 %.old537, label %224, label %219

219:                                              ; preds = %214, %218
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %220 unwind label %210

220:                                              ; preds = %219
  %221 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %17, i32 noundef %221, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %196, double noundef 1.000000e+00, double noundef -1.000000e+00)
          to label %.critedge483 unwind label %222

222:                                              ; preds = %220
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %241

224:                                              ; preds = %204, %214, %218
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %225 unwind label %210

225:                                              ; preds = %224
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %196, x86_fp80 noundef %202, double noundef -1.000000e+00)
          to label %.critedge483 unwind label %226

226:                                              ; preds = %225
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %241

.critedge483:                                     ; preds = %225, %220
  %.sink573 = phi ptr [ %17, %220 ], [ %18, %225 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink573) #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
  %228 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %229 = add nsw i32 %228, 1
  store i32 %229, 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 %230 unwind label %243

230:                                              ; preds = %.critedge483
  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
  %231 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xK00000000000000000000) #7
  %232 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK00000000000000000000)
  %233 = fsub x86_fp80 %231, %232
  %234 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %233)
  %235 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %232)
  %236 = fadd x86_fp80 %235, 0xK3FFF8000000000000000
  %237 = fdiv x86_fp80 %234, %236
  %238 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %231)
  br i1 %238, label %239, label %247

239:                                              ; preds = %230
  %240 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %232)
  br i1 %240, label %259, label %247

241:                                              ; preds = %226, %222, %210
  %.pn421 = phi { ptr, i32 } [ %227, %226 ], [ %211, %210 ], [ %223, %222 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %242

242:                                              ; preds = %241, %208
  %.pn421.pn = phi { ptr, i32 } [ %.pn421, %241 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %864

243:                                              ; preds = %.critedge483
  %244 = 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 %277

245:                                              ; preds = %259, %254
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %276

247:                                              ; preds = %239, %230
  %248 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %231)
  br i1 %248, label %253, label %249

249:                                              ; preds = %247
  %250 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %231)
  %251 = fcmp oeq x86_fp80 %231, %232
  %or.cond484 = and i1 %251, %250
  %252 = fcmp olt x86_fp80 %237, 0xK3FD0B424DC35095CD800
  %or.cond540 = or i1 %252, %or.cond484
  br i1 %or.cond540, label %259, label %254

253:                                              ; preds = %247
  %.old539 = fcmp olt x86_fp80 %237, 0xK3FD0B424DC35095CD800
  br i1 %.old539, label %259, label %254

254:                                              ; preds = %249, %253
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %255 unwind label %245

255:                                              ; preds = %254
  %256 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %21, i32 noundef %256, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %231, x86_fp80 noundef %232, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge486 unwind label %257

257:                                              ; preds = %255
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %276

259:                                              ; preds = %239, %249, %253
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %260 unwind label %245

260:                                              ; preds = %259
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %22, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %231, x86_fp80 noundef %237, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge486 unwind label %261

261:                                              ; preds = %260
  %262 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %276

.critedge486:                                     ; preds = %260, %255
  %.sink574 = phi ptr [ %21, %255 ], [ %22, %260 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink574) #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
  %263 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %264 = add nsw i32 %263, 1
  store i32 %264, 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 %265 unwind label %278

265:                                              ; preds = %.critedge486
  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
  %266 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xK80000000000000000000) #7
  %267 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK80000000000000000000)
  %268 = fsub x86_fp80 %266, %267
  %269 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %268)
  %270 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %267)
  %271 = fadd x86_fp80 %270, 0xK3FFF8000000000000000
  %272 = fdiv x86_fp80 %269, %271
  %273 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %266)
  br i1 %273, label %274, label %282

274:                                              ; preds = %265
  %275 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %267)
  br i1 %275, label %294, label %282

276:                                              ; preds = %261, %257, %245
  %.pn424 = phi { ptr, i32 } [ %262, %261 ], [ %246, %245 ], [ %258, %257 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %277

277:                                              ; preds = %276, %243
  %.pn424.pn = phi { ptr, i32 } [ %.pn424, %276 ], [ %244, %243 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %864

278:                                              ; preds = %.critedge486
  %279 = 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 %312

280:                                              ; preds = %294, %289
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %311

282:                                              ; preds = %274, %265
  %283 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %266)
  br i1 %283, label %288, label %284

284:                                              ; preds = %282
  %285 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %266)
  %286 = fcmp oeq x86_fp80 %266, %267
  %or.cond487 = and i1 %286, %285
  %287 = fcmp olt x86_fp80 %272, 0xK3FD0B424DC35095CD800
  %or.cond542 = or i1 %287, %or.cond487
  br i1 %or.cond542, label %294, label %289

288:                                              ; preds = %282
  %.old541 = fcmp olt x86_fp80 %272, 0xK3FD0B424DC35095CD800
  br i1 %.old541, label %294, label %289

289:                                              ; preds = %284, %288
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %290 unwind label %280

290:                                              ; preds = %289
  %291 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %25, i32 noundef %291, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %266, x86_fp80 noundef %267, x86_fp80 noundef 0xK80000000000000000000)
          to label %.critedge489 unwind label %292

292:                                              ; preds = %290
  %293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %311

294:                                              ; preds = %274, %284, %288
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %295 unwind label %280

295:                                              ; preds = %294
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %26, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %266, x86_fp80 noundef %272, x86_fp80 noundef 0xK80000000000000000000)
          to label %.critedge489 unwind label %296

296:                                              ; preds = %295
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %311

.critedge489:                                     ; preds = %295, %290
  %.sink575 = phi ptr [ %25, %290 ], [ %26, %295 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink575) #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
  %298 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %299 = add nsw i32 %298, 1
  store i32 %299, 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 %300 unwind label %313

300:                                              ; preds = %.critedge489
  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
  %301 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xK3FFF8000000000000000) #7
  %302 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xK3FFF8000000000000000)
  %303 = fsub x86_fp80 %301, %302
  %304 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %303)
  %305 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %302)
  %306 = fadd x86_fp80 %305, 0xK3FFF8000000000000000
  %307 = fdiv x86_fp80 %304, %306
  %308 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %301)
  br i1 %308, label %309, label %317

309:                                              ; preds = %300
  %310 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %302)
  br i1 %310, label %329, label %317

311:                                              ; preds = %296, %292, %280
  %.pn427 = phi { ptr, i32 } [ %297, %296 ], [ %281, %280 ], [ %293, %292 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %312

312:                                              ; preds = %311, %278
  %.pn427.pn = phi { ptr, i32 } [ %.pn427, %311 ], [ %279, %278 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %864

313:                                              ; preds = %.critedge489
  %314 = 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 %347

315:                                              ; preds = %329, %324
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %346

317:                                              ; preds = %309, %300
  %318 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %301)
  br i1 %318, label %323, label %319

319:                                              ; preds = %317
  %320 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %301)
  %321 = fcmp oeq x86_fp80 %301, %302
  %or.cond490 = and i1 %321, %320
  %322 = fcmp olt x86_fp80 %307, 0xK3FD0B424DC35095CD800
  %or.cond544 = or i1 %322, %or.cond490
  br i1 %or.cond544, label %329, label %324

323:                                              ; preds = %317
  %.old543 = fcmp olt x86_fp80 %307, 0xK3FD0B424DC35095CD800
  br i1 %.old543, label %329, label %324

324:                                              ; preds = %319, %323
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %325 unwind label %315

325:                                              ; preds = %324
  %326 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %29, i32 noundef %326, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %301, x86_fp80 noundef %302, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %.critedge492 unwind label %327

327:                                              ; preds = %325
  %328 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %346

329:                                              ; preds = %309, %319, %323
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %330 unwind label %315

330:                                              ; preds = %329
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %301, x86_fp80 noundef %307, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %.critedge492 unwind label %331

331:                                              ; preds = %330
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %346

.critedge492:                                     ; preds = %330, %325
  %.sink576 = phi ptr [ %29, %325 ], [ %30, %330 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink576) #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
  %333 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %334 = add nsw i32 %333, 1
  store i32 %334, 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 %335 unwind label %348

335:                                              ; preds = %.critedge492
  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
  %336 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef 0xKBFFF8000000000000000) #7
  %337 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef 0xKBFFF8000000000000000)
  %338 = fsub x86_fp80 %336, %337
  %339 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %338)
  %340 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %337)
  %341 = fadd x86_fp80 %340, 0xK3FFF8000000000000000
  %342 = fdiv x86_fp80 %339, %341
  %343 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %336)
  br i1 %343, label %344, label %352

344:                                              ; preds = %335
  %345 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %337)
  br i1 %345, label %364, label %352

346:                                              ; preds = %331, %327, %315
  %.pn430 = phi { ptr, i32 } [ %332, %331 ], [ %316, %315 ], [ %328, %327 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %347

347:                                              ; preds = %346, %313
  %.pn430.pn = phi { ptr, i32 } [ %.pn430, %346 ], [ %314, %313 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %864

348:                                              ; preds = %.critedge492
  %349 = 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 %386

350:                                              ; preds = %364, %359
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %385

352:                                              ; preds = %344, %335
  %353 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %336)
  br i1 %353, label %358, label %354

354:                                              ; preds = %352
  %355 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %336)
  %356 = fcmp oeq x86_fp80 %336, %337
  %or.cond493 = and i1 %356, %355
  %357 = fcmp olt x86_fp80 %342, 0xK3FD0B424DC35095CD800
  %or.cond546 = or i1 %357, %or.cond493
  br i1 %or.cond546, label %364, label %359

358:                                              ; preds = %352
  %.old545 = fcmp olt x86_fp80 %342, 0xK3FD0B424DC35095CD800
  br i1 %.old545, label %364, label %359

359:                                              ; preds = %354, %358
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %360 unwind label %350

360:                                              ; preds = %359
  %361 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %33, i32 noundef %361, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %336, x86_fp80 noundef %337, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %.critedge495 unwind label %362

362:                                              ; preds = %360
  %363 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %385

364:                                              ; preds = %344, %354, %358
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %365 unwind label %350

365:                                              ; preds = %364
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %34, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %336, x86_fp80 noundef %342, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %.critedge495 unwind label %366

366:                                              ; preds = %365
  %367 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %385

.critedge495:                                     ; preds = %365, %360
  %.sink577 = phi ptr [ %33, %360 ], [ %34, %365 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink577) #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
  %368 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, 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 %370 unwind label %387

370:                                              ; preds = %.critedge495
  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
  %371 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %372 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %371) #7
  %373 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  %374 = call double @llvm.fabs.f64(double %373)
  %375 = fpext double %374 to x86_fp80
  %376 = fsub x86_fp80 %372, %375
  %377 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %376)
  %378 = call noundef double @_ZSt3absd(double noundef %374)
  %379 = fadd double %378, 1.000000e+00
  %380 = fpext double %379 to x86_fp80
  %381 = fdiv x86_fp80 %377, %380
  %382 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %372)
  br i1 %382, label %383, label %391

383:                                              ; preds = %370
  %384 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %375)
  br i1 %384, label %404, label %391

385:                                              ; preds = %366, %362, %350
  %.pn433 = phi { ptr, i32 } [ %367, %366 ], [ %351, %350 ], [ %363, %362 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %386

386:                                              ; preds = %385, %348
  %.pn433.pn = phi { ptr, i32 } [ %.pn433, %385 ], [ %349, %348 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %864

387:                                              ; preds = %.critedge495
  %388 = 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 %427

389:                                              ; preds = %404, %398
  %390 = landingpad { ptr, i32 }
          cleanup
  br label %426

391:                                              ; preds = %383, %370
  %392 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %372)
  br i1 %392, label %397, label %393

393:                                              ; preds = %391
  %394 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %372)
  %395 = fcmp oeq x86_fp80 %372, %375
  %or.cond496 = and i1 %395, %394
  %396 = fcmp olt x86_fp80 %381, 0xK3FD0B424DC35095CD800
  %or.cond548 = or i1 %396, %or.cond496
  br i1 %or.cond548, label %404, label %398

397:                                              ; preds = %391
  %.old547 = fcmp olt x86_fp80 %381, 0xK3FD0B424DC35095CD800
  br i1 %.old547, label %404, label %398

398:                                              ; preds = %393, %397
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %399 unwind label %389

399:                                              ; preds = %398
  %400 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %401 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %37, i32 noundef %400, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %372, double noundef %374, double noundef %401)
          to label %.critedge498 unwind label %402

402:                                              ; preds = %399
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %426

404:                                              ; preds = %383, %393, %397
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %405 unwind label %389

405:                                              ; preds = %404
  %406 = call noundef double @_ZNSt14numeric_limitsIdE6lowestEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %372, x86_fp80 noundef %381, double noundef %406)
          to label %.critedge498 unwind label %407

407:                                              ; preds = %405
  %408 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %426

.critedge498:                                     ; preds = %405, %399
  %.sink578 = phi ptr [ %37, %399 ], [ %38, %405 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink578) #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
  %409 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %410 = add nsw i32 %409, 1
  store i32 %410, 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 %411 unwind label %428

411:                                              ; preds = %.critedge498
  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
  %412 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %413 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %412) #7
  %414 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  %415 = call double @llvm.fabs.f64(double %414)
  %416 = fpext double %415 to x86_fp80
  %417 = fsub x86_fp80 %413, %416
  %418 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %417)
  %419 = call noundef double @_ZSt3absd(double noundef %415)
  %420 = fadd double %419, 1.000000e+00
  %421 = fpext double %420 to x86_fp80
  %422 = fdiv x86_fp80 %418, %421
  %423 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %413)
  br i1 %423, label %424, label %432

424:                                              ; preds = %411
  %425 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %416)
  br i1 %425, label %445, label %432

426:                                              ; preds = %407, %402, %389
  %.pn436 = phi { ptr, i32 } [ %408, %407 ], [ %390, %389 ], [ %403, %402 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %427

427:                                              ; preds = %426, %387
  %.pn436.pn = phi { ptr, i32 } [ %.pn436, %426 ], [ %388, %387 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %864

428:                                              ; preds = %.critedge498
  %429 = 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 %468

430:                                              ; preds = %445, %439
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %467

432:                                              ; preds = %424, %411
  %433 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %413)
  br i1 %433, label %438, label %434

434:                                              ; preds = %432
  %435 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %413)
  %436 = fcmp oeq x86_fp80 %413, %416
  %or.cond499 = and i1 %436, %435
  %437 = fcmp olt x86_fp80 %422, 0xK3FD0B424DC35095CD800
  %or.cond550 = or i1 %437, %or.cond499
  br i1 %or.cond550, label %445, label %439

438:                                              ; preds = %432
  %.old549 = fcmp olt x86_fp80 %422, 0xK3FD0B424DC35095CD800
  br i1 %.old549, label %445, label %439

439:                                              ; preds = %434, %438
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %440 unwind label %430

440:                                              ; preds = %439
  %441 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %442 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %41, i32 noundef %441, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %413, double noundef %415, double noundef %442)
          to label %.critedge501 unwind label %443

443:                                              ; preds = %440
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %467

445:                                              ; preds = %424, %434, %438
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %446 unwind label %430

446:                                              ; preds = %445
  %447 = call noundef double @_ZNSt14numeric_limitsIdE3minEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %42, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %413, x86_fp80 noundef %422, double noundef %447)
          to label %.critedge501 unwind label %448

448:                                              ; preds = %446
  %449 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %467

.critedge501:                                     ; preds = %446, %440
  %.sink579 = phi ptr [ %41, %440 ], [ %42, %446 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink579) #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
  %450 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, 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 %452 unwind label %469

452:                                              ; preds = %.critedge501
  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
  %453 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %454 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %453) #7
  %455 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  %456 = call double @llvm.fabs.f64(double %455)
  %457 = fpext double %456 to x86_fp80
  %458 = fsub x86_fp80 %454, %457
  %459 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %458)
  %460 = call noundef double @_ZSt3absd(double noundef %456)
  %461 = fadd double %460, 1.000000e+00
  %462 = fpext double %461 to x86_fp80
  %463 = fdiv x86_fp80 %459, %462
  %464 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %454)
  br i1 %464, label %465, label %473

465:                                              ; preds = %452
  %466 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %457)
  br i1 %466, label %486, label %473

467:                                              ; preds = %448, %443, %430
  %.pn439 = phi { ptr, i32 } [ %449, %448 ], [ %431, %430 ], [ %444, %443 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %468

468:                                              ; preds = %467, %428
  %.pn439.pn = phi { ptr, i32 } [ %.pn439, %467 ], [ %429, %428 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  br label %864

469:                                              ; preds = %.critedge501
  %470 = 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 %507

471:                                              ; preds = %486, %480
  %472 = landingpad { ptr, i32 }
          cleanup
  br label %506

473:                                              ; preds = %465, %452
  %474 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %454)
  br i1 %474, label %479, label %475

475:                                              ; preds = %473
  %476 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %454)
  %477 = fcmp oeq x86_fp80 %454, %457
  %or.cond502 = and i1 %477, %476
  %478 = fcmp olt x86_fp80 %463, 0xK3FD0B424DC35095CD800
  %or.cond552 = or i1 %478, %or.cond502
  br i1 %or.cond552, label %486, label %480

479:                                              ; preds = %473
  %.old551 = fcmp olt x86_fp80 %463, 0xK3FD0B424DC35095CD800
  br i1 %.old551, label %486, label %480

480:                                              ; preds = %475, %479
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %481 unwind label %471

481:                                              ; preds = %480
  %482 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %483 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %45, i32 noundef %482, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %454, double noundef %456, double noundef %483)
          to label %.critedge504 unwind label %484

484:                                              ; preds = %481
  %485 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %506

486:                                              ; preds = %465, %475, %479
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %487 unwind label %471

487:                                              ; preds = %486
  %488 = call noundef double @_ZNSt14numeric_limitsIdE3maxEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %46, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %454, x86_fp80 noundef %463, double noundef %488)
          to label %.critedge504 unwind label %489

489:                                              ; preds = %487
  %490 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %506

.critedge504:                                     ; preds = %487, %481
  %.sink580 = phi ptr [ %45, %481 ], [ %46, %487 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink580) #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
  %491 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %492 = add nsw i32 %491, 1
  store i32 %492, 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 %493 unwind label %508

493:                                              ; preds = %.critedge504
  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
  %494 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %495 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %494) #7
  %496 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  %497 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %496)
  %498 = fsub x86_fp80 %495, %497
  %499 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %498)
  %500 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %497)
  %501 = fadd x86_fp80 %500, 0xK3FFF8000000000000000
  %502 = fdiv x86_fp80 %499, %501
  %503 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %495)
  br i1 %503, label %504, label %512

504:                                              ; preds = %493
  %505 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %497)
  br i1 %505, label %525, label %512

506:                                              ; preds = %489, %484, %471
  %.pn442 = phi { ptr, i32 } [ %490, %489 ], [ %472, %471 ], [ %485, %484 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %507

507:                                              ; preds = %506, %469
  %.pn442.pn = phi { ptr, i32 } [ %.pn442, %506 ], [ %470, %469 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  br label %864

508:                                              ; preds = %.critedge504
  %509 = 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 %546

510:                                              ; preds = %525, %519
  %511 = landingpad { ptr, i32 }
          cleanup
  br label %545

512:                                              ; preds = %504, %493
  %513 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %495)
  br i1 %513, label %518, label %514

514:                                              ; preds = %512
  %515 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %495)
  %516 = fcmp oeq x86_fp80 %495, %497
  %or.cond505 = and i1 %516, %515
  %517 = fcmp olt x86_fp80 %502, 0xK3FD0B424DC35095CD800
  %or.cond554 = or i1 %517, %or.cond505
  br i1 %or.cond554, label %525, label %519

518:                                              ; preds = %512
  %.old553 = fcmp olt x86_fp80 %502, 0xK3FD0B424DC35095CD800
  br i1 %.old553, label %525, label %519

519:                                              ; preds = %514, %518
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %520 unwind label %510

520:                                              ; preds = %519
  %521 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %522 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %49, i32 noundef %521, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %495, x86_fp80 noundef %497, x86_fp80 noundef %522)
          to label %.critedge507 unwind label %523

523:                                              ; preds = %520
  %524 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %545

525:                                              ; preds = %504, %514, %518
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %526 unwind label %510

526:                                              ; preds = %525
  %527 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %50, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %495, x86_fp80 noundef %502, x86_fp80 noundef %527)
          to label %.critedge507 unwind label %528

528:                                              ; preds = %526
  %529 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %545

.critedge507:                                     ; preds = %526, %520
  %.sink581 = phi ptr [ %49, %520 ], [ %50, %526 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink581) #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
  %530 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  store i32 %531, 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 %532 unwind label %547

532:                                              ; preds = %.critedge507
  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
  %533 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %534 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %533) #7
  %535 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  %536 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %535)
  %537 = fsub x86_fp80 %534, %536
  %538 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %537)
  %539 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %536)
  %540 = fadd x86_fp80 %539, 0xK3FFF8000000000000000
  %541 = fdiv x86_fp80 %538, %540
  %542 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %534)
  br i1 %542, label %543, label %551

543:                                              ; preds = %532
  %544 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %536)
  br i1 %544, label %564, label %551

545:                                              ; preds = %528, %523, %510
  %.pn445 = phi { ptr, i32 } [ %529, %528 ], [ %511, %510 ], [ %524, %523 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %546

546:                                              ; preds = %545, %508
  %.pn445.pn = phi { ptr, i32 } [ %.pn445, %545 ], [ %509, %508 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  br label %864

547:                                              ; preds = %.critedge507
  %548 = 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 %585

549:                                              ; preds = %564, %558
  %550 = landingpad { ptr, i32 }
          cleanup
  br label %584

551:                                              ; preds = %543, %532
  %552 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %534)
  br i1 %552, label %557, label %553

553:                                              ; preds = %551
  %554 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %534)
  %555 = fcmp oeq x86_fp80 %534, %536
  %or.cond508 = and i1 %555, %554
  %556 = fcmp olt x86_fp80 %541, 0xK3FD0B424DC35095CD800
  %or.cond556 = or i1 %556, %or.cond508
  br i1 %or.cond556, label %564, label %558

557:                                              ; preds = %551
  %.old555 = fcmp olt x86_fp80 %541, 0xK3FD0B424DC35095CD800
  br i1 %.old555, label %564, label %558

558:                                              ; preds = %553, %557
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %559 unwind label %549

559:                                              ; preds = %558
  %560 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %561 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %53, i32 noundef %560, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %534, x86_fp80 noundef %536, x86_fp80 noundef %561)
          to label %.critedge510 unwind label %562

562:                                              ; preds = %559
  %563 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %584

564:                                              ; preds = %543, %553, %557
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %565 unwind label %549

565:                                              ; preds = %564
  %566 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %54, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %534, x86_fp80 noundef %541, x86_fp80 noundef %566)
          to label %.critedge510 unwind label %567

567:                                              ; preds = %565
  %568 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %584

.critedge510:                                     ; preds = %565, %559
  %.sink582 = phi ptr [ %53, %559 ], [ %54, %565 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink582) #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
  %569 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  store i32 %570, 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 %571 unwind label %586

571:                                              ; preds = %.critedge510
  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
  %572 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %573 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %572) #7
  %574 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  %575 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %574)
  %576 = fsub x86_fp80 %573, %575
  %577 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %576)
  %578 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %575)
  %579 = fadd x86_fp80 %578, 0xK3FFF8000000000000000
  %580 = fdiv x86_fp80 %577, %579
  %581 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %573)
  br i1 %581, label %582, label %590

582:                                              ; preds = %571
  %583 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %575)
  br i1 %583, label %603, label %590

584:                                              ; preds = %567, %562, %549
  %.pn448 = phi { ptr, i32 } [ %568, %567 ], [ %550, %549 ], [ %563, %562 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %585

585:                                              ; preds = %584, %547
  %.pn448.pn = phi { ptr, i32 } [ %.pn448, %584 ], [ %548, %547 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  br label %864

586:                                              ; preds = %.critedge510
  %587 = 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 %626

588:                                              ; preds = %603, %597
  %589 = landingpad { ptr, i32 }
          cleanup
  br label %625

590:                                              ; preds = %582, %571
  %591 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %573)
  br i1 %591, label %596, label %592

592:                                              ; preds = %590
  %593 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %573)
  %594 = fcmp oeq x86_fp80 %573, %575
  %or.cond511 = and i1 %594, %593
  %595 = fcmp olt x86_fp80 %580, 0xK3FD0B424DC35095CD800
  %or.cond558 = or i1 %595, %or.cond511
  br i1 %or.cond558, label %603, label %597

596:                                              ; preds = %590
  %.old557 = fcmp olt x86_fp80 %580, 0xK3FD0B424DC35095CD800
  br i1 %.old557, label %603, label %597

597:                                              ; preds = %592, %596
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %598 unwind label %588

598:                                              ; preds = %597
  %599 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %600 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %57, i32 noundef %599, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %573, x86_fp80 noundef %575, x86_fp80 noundef %600)
          to label %.critedge513 unwind label %601

601:                                              ; preds = %598
  %602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %625

603:                                              ; preds = %582, %592, %596
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %604 unwind label %588

604:                                              ; preds = %603
  %605 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %58, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %573, x86_fp80 noundef %580, x86_fp80 noundef %605)
          to label %.critedge513 unwind label %606

606:                                              ; preds = %604
  %607 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %625

.critedge513:                                     ; preds = %604, %598
  %.sink583 = phi ptr [ %57, %598 ], [ %58, %604 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink583) #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
  %608 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %609 = add nsw i32 %608, 1
  store i32 %609, 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 %610 unwind label %627

610:                                              ; preds = %.critedge513
  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
  %611 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %612 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %611) #7
  %613 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %614 = call double @llvm.fabs.f64(double %613)
  %615 = fpext double %614 to x86_fp80
  %616 = fsub x86_fp80 %612, %615
  %617 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %616)
  %618 = call noundef double @_ZSt3absd(double noundef %614)
  %619 = fadd double %618, 1.000000e+00
  %620 = fpext double %619 to x86_fp80
  %621 = fdiv x86_fp80 %617, %620
  %622 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %612)
  br i1 %622, label %623, label %631

623:                                              ; preds = %610
  %624 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %615)
  br i1 %624, label %644, label %631

625:                                              ; preds = %606, %601, %588
  %.pn451 = phi { ptr, i32 } [ %607, %606 ], [ %589, %588 ], [ %602, %601 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %626

626:                                              ; preds = %625, %586
  %.pn451.pn = phi { ptr, i32 } [ %.pn451, %625 ], [ %587, %586 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  br label %864

627:                                              ; preds = %.critedge513
  %628 = 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 %667

629:                                              ; preds = %644, %638
  %630 = landingpad { ptr, i32 }
          cleanup
  br label %666

631:                                              ; preds = %623, %610
  %632 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %612)
  br i1 %632, label %637, label %633

633:                                              ; preds = %631
  %634 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %612)
  %635 = fcmp oeq x86_fp80 %612, %615
  %or.cond514 = and i1 %635, %634
  %636 = fcmp olt x86_fp80 %621, 0xK3FD0B424DC35095CD800
  %or.cond560 = or i1 %636, %or.cond514
  br i1 %or.cond560, label %644, label %638

637:                                              ; preds = %631
  %.old559 = fcmp olt x86_fp80 %621, 0xK3FD0B424DC35095CD800
  br i1 %.old559, label %644, label %638

638:                                              ; preds = %633, %637
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %639 unwind label %629

639:                                              ; preds = %638
  %640 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %641 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %61, i32 noundef %640, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %612, double noundef %614, double noundef %641)
          to label %.critedge516 unwind label %642

642:                                              ; preds = %639
  %643 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %666

644:                                              ; preds = %623, %633, %637
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %645 unwind label %629

645:                                              ; preds = %644
  %646 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %62, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %612, x86_fp80 noundef %621, double noundef %646)
          to label %.critedge516 unwind label %647

647:                                              ; preds = %645
  %648 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %666

.critedge516:                                     ; preds = %645, %639
  %.sink584 = phi ptr [ %61, %639 ], [ %62, %645 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink584) #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
  %649 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, 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 %651 unwind label %668

651:                                              ; preds = %.critedge516
  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
  %652 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %653 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %652) #7
  %654 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %655 = call double @llvm.fabs.f64(double %654)
  %656 = fpext double %655 to x86_fp80
  %657 = fsub x86_fp80 %653, %656
  %658 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %657)
  %659 = call noundef double @_ZSt3absd(double noundef %655)
  %660 = fadd double %659, 1.000000e+00
  %661 = fpext double %660 to x86_fp80
  %662 = fdiv x86_fp80 %658, %661
  %663 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %653)
  br i1 %663, label %664, label %672

664:                                              ; preds = %651
  %665 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %656)
  br i1 %665, label %685, label %672

666:                                              ; preds = %647, %642, %629
  %.pn454 = phi { ptr, i32 } [ %648, %647 ], [ %630, %629 ], [ %643, %642 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %667

667:                                              ; preds = %666, %627
  %.pn454.pn = phi { ptr, i32 } [ %.pn454, %666 ], [ %628, %627 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  br label %864

668:                                              ; preds = %.critedge516
  %669 = 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 %709

670:                                              ; preds = %685, %679
  %671 = landingpad { ptr, i32 }
          cleanup
  br label %708

672:                                              ; preds = %664, %651
  %673 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %653)
  br i1 %673, label %678, label %674

674:                                              ; preds = %672
  %675 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %653)
  %676 = fcmp oeq x86_fp80 %653, %656
  %or.cond517 = and i1 %676, %675
  %677 = fcmp olt x86_fp80 %662, 0xK3FD0B424DC35095CD800
  %or.cond562 = or i1 %677, %or.cond517
  br i1 %or.cond562, label %685, label %679

678:                                              ; preds = %672
  %.old561 = fcmp olt x86_fp80 %662, 0xK3FD0B424DC35095CD800
  br i1 %.old561, label %685, label %679

679:                                              ; preds = %674, %678
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %680 unwind label %670

680:                                              ; preds = %679
  %681 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %682 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %65, i32 noundef %681, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %653, double noundef %655, double noundef %682)
          to label %.critedge519 unwind label %683

683:                                              ; preds = %680
  %684 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %708

685:                                              ; preds = %664, %674, %678
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %686 unwind label %670

686:                                              ; preds = %685
  %687 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %66, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %653, x86_fp80 noundef %662, double noundef %687)
          to label %.critedge519 unwind label %688

688:                                              ; preds = %686
  %689 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %708

.critedge519:                                     ; preds = %686, %680
  %.sink585 = phi ptr [ %65, %680 ], [ %66, %686 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink585) #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
  %690 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  store i32 %691, 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 %692 unwind label %710

692:                                              ; preds = %.critedge519
  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
  %693 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %694 = fneg double %693
  %695 = call noundef x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef %694) #7
  %696 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %697 = call double @llvm.fabs.f64(double %696)
  %698 = fpext double %697 to x86_fp80
  %699 = fsub x86_fp80 %695, %698
  %700 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %699)
  %701 = call noundef double @_ZSt3absd(double noundef %697)
  %702 = fadd double %701, 1.000000e+00
  %703 = fpext double %702 to x86_fp80
  %704 = fdiv x86_fp80 %700, %703
  %705 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %695)
  br i1 %705, label %706, label %714

706:                                              ; preds = %692
  %707 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %698)
  br i1 %707, label %728, label %714

708:                                              ; preds = %688, %683, %670
  %.pn457 = phi { ptr, i32 } [ %689, %688 ], [ %671, %670 ], [ %684, %683 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %709

709:                                              ; preds = %708, %668
  %.pn457.pn = phi { ptr, i32 } [ %.pn457, %708 ], [ %669, %668 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  br label %864

710:                                              ; preds = %.critedge519
  %711 = 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 %750

712:                                              ; preds = %728, %721
  %713 = landingpad { ptr, i32 }
          cleanup
  br label %749

714:                                              ; preds = %706, %692
  %715 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %695)
  br i1 %715, label %720, label %716

716:                                              ; preds = %714
  %717 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %695)
  %718 = fcmp oeq x86_fp80 %695, %698
  %or.cond520 = and i1 %718, %717
  %719 = fcmp olt x86_fp80 %704, 0xK3FD0B424DC35095CD800
  %or.cond564 = or i1 %719, %or.cond520
  br i1 %or.cond564, label %728, label %721

720:                                              ; preds = %714
  %.old563 = fcmp olt x86_fp80 %704, 0xK3FD0B424DC35095CD800
  br i1 %.old563, label %728, label %721

721:                                              ; preds = %716, %720
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %722 unwind label %712

722:                                              ; preds = %721
  %723 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %724 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %725 = fneg double %724
  invoke void @_Z15print_test_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %69, i32 noundef %723, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %695, double noundef %697, double noundef %725)
          to label %.critedge522 unwind label %726

726:                                              ; preds = %722
  %727 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %749

728:                                              ; preds = %706, %716, %720
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %729 unwind label %712

729:                                              ; preds = %728
  %730 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #7
  %731 = fneg double %730
  invoke void @_Z15print_test_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %70, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %695, x86_fp80 noundef %704, double noundef %731)
          to label %.critedge522 unwind label %732

732:                                              ; preds = %729
  %733 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %749

.critedge522:                                     ; preds = %729, %722
  %.sink586 = phi ptr [ %69, %722 ], [ %70, %729 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink586) #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
  %734 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %735 = add nsw i32 %734, 1
  store i32 %735, 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 %736 unwind label %751

736:                                              ; preds = %.critedge522
  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
  %737 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %738 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %737) #7
  %739 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  %740 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %739)
  %741 = fsub x86_fp80 %738, %740
  %742 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %741)
  %743 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %740)
  %744 = fadd x86_fp80 %743, 0xK3FFF8000000000000000
  %745 = fdiv x86_fp80 %742, %744
  %746 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %738)
  br i1 %746, label %747, label %755

747:                                              ; preds = %736
  %748 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %740)
  br i1 %748, label %768, label %755

749:                                              ; preds = %732, %726, %712
  %.pn460 = phi { ptr, i32 } [ %733, %732 ], [ %713, %712 ], [ %727, %726 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %750

750:                                              ; preds = %749, %710
  %.pn460.pn = phi { ptr, i32 } [ %.pn460, %749 ], [ %711, %710 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  br label %864

751:                                              ; preds = %.critedge522
  %752 = 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 %789

753:                                              ; preds = %768, %762
  %754 = landingpad { ptr, i32 }
          cleanup
  br label %788

755:                                              ; preds = %747, %736
  %756 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %738)
  br i1 %756, label %761, label %757

757:                                              ; preds = %755
  %758 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %738)
  %759 = fcmp oeq x86_fp80 %738, %740
  %or.cond523 = and i1 %759, %758
  %760 = fcmp olt x86_fp80 %745, 0xK3FD0B424DC35095CD800
  %or.cond566 = or i1 %760, %or.cond523
  br i1 %or.cond566, label %768, label %762

761:                                              ; preds = %755
  %.old565 = fcmp olt x86_fp80 %745, 0xK3FD0B424DC35095CD800
  br i1 %.old565, label %768, label %762

762:                                              ; preds = %757, %761
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %763 unwind label %753

763:                                              ; preds = %762
  %764 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %765 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %73, i32 noundef %764, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %738, x86_fp80 noundef %740, x86_fp80 noundef %765)
          to label %.critedge525 unwind label %766

766:                                              ; preds = %763
  %767 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %788

768:                                              ; preds = %747, %757, %761
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %769 unwind label %753

769:                                              ; preds = %768
  %770 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %74, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %738, x86_fp80 noundef %745, x86_fp80 noundef %770)
          to label %.critedge525 unwind label %771

771:                                              ; preds = %769
  %772 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %788

.critedge525:                                     ; preds = %769, %763
  %.sink587 = phi ptr [ %73, %763 ], [ %74, %769 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink587) #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
  %773 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, 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 %775 unwind label %790

775:                                              ; preds = %.critedge525
  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
  %776 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %777 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %776) #7
  %778 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %779 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %778)
  %780 = fsub x86_fp80 %777, %779
  %781 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %780)
  %782 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %779)
  %783 = fadd x86_fp80 %782, 0xK3FFF8000000000000000
  %784 = fdiv x86_fp80 %781, %783
  %785 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %777)
  br i1 %785, label %786, label %794

786:                                              ; preds = %775
  %787 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %779)
  br i1 %787, label %807, label %794

788:                                              ; preds = %771, %766, %753
  %.pn463 = phi { ptr, i32 } [ %772, %771 ], [ %754, %753 ], [ %767, %766 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %789

789:                                              ; preds = %788, %751
  %.pn463.pn = phi { ptr, i32 } [ %.pn463, %788 ], [ %752, %751 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  br label %864

790:                                              ; preds = %.critedge525
  %791 = 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 %830

792:                                              ; preds = %807, %801
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %829

794:                                              ; preds = %786, %775
  %795 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %777)
  br i1 %795, label %800, label %796

796:                                              ; preds = %794
  %797 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %777)
  %798 = fcmp oeq x86_fp80 %777, %779
  %or.cond526 = and i1 %798, %797
  %799 = fcmp olt x86_fp80 %784, 0xK3FD0B424DC35095CD800
  %or.cond568 = or i1 %799, %or.cond526
  br i1 %or.cond568, label %807, label %801

800:                                              ; preds = %794
  %.old567 = fcmp olt x86_fp80 %784, 0xK3FD0B424DC35095CD800
  br i1 %.old567, label %807, label %801

801:                                              ; preds = %796, %800
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %802 unwind label %792

802:                                              ; preds = %801
  %803 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %804 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %77, i32 noundef %803, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %777, x86_fp80 noundef %779, x86_fp80 noundef %804)
          to label %.critedge528 unwind label %805

805:                                              ; preds = %802
  %806 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %829

807:                                              ; preds = %786, %796, %800
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %808 unwind label %792

808:                                              ; preds = %807
  %809 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %78, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %777, x86_fp80 noundef %784, x86_fp80 noundef %809)
          to label %.critedge528 unwind label %810

810:                                              ; preds = %808
  %811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %829

.critedge528:                                     ; preds = %808, %802
  %.sink588 = phi ptr [ %77, %802 ], [ %78, %808 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink588) #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
  %812 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %813 = add nsw i32 %812, 1
  store i32 %813, 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 %814 unwind label %831

814:                                              ; preds = %.critedge528
  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
  %815 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %816 = fneg x86_fp80 %815
  %817 = call noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef %816) #7
  %818 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %819 = fneg x86_fp80 %818
  %820 = call noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef %819)
  %821 = fsub x86_fp80 %817, %820
  %822 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %821)
  %823 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %820)
  %824 = fadd x86_fp80 %823, 0xK3FFF8000000000000000
  %825 = fdiv x86_fp80 %822, %824
  %826 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %817)
  br i1 %826, label %827, label %835

827:                                              ; preds = %814
  %828 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %820)
  br i1 %828, label %849, label %835

829:                                              ; preds = %810, %805, %792
  %.pn466 = phi { ptr, i32 } [ %811, %810 ], [ %793, %792 ], [ %806, %805 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %830

830:                                              ; preds = %829, %790
  %.pn466.pn = phi { ptr, i32 } [ %.pn466, %829 ], [ %791, %790 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  br label %864

831:                                              ; preds = %.critedge528
  %832 = 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 %858

833:                                              ; preds = %849, %842
  %834 = landingpad { ptr, i32 }
          cleanup
  br label %857

835:                                              ; preds = %827, %814
  %836 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %817)
  br i1 %836, label %841, label %837

837:                                              ; preds = %835
  %838 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %817)
  %839 = fcmp oeq x86_fp80 %817, %820
  %or.cond529 = and i1 %839, %838
  %840 = fcmp olt x86_fp80 %825, 0xK3FD0B424DC35095CD800
  %or.cond570 = or i1 %840, %or.cond529
  br i1 %or.cond570, label %849, label %842

841:                                              ; preds = %835
  %.old569 = fcmp olt x86_fp80 %825, 0xK3FD0B424DC35095CD800
  br i1 %.old569, label %849, label %842

842:                                              ; preds = %837, %841
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %843 unwind label %833

843:                                              ; preds = %842
  %844 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %845 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %846 = fneg x86_fp80 %845
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %81, i32 noundef %844, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %817, x86_fp80 noundef %820, x86_fp80 noundef %846)
          to label %.critedge531 unwind label %847

847:                                              ; preds = %843
  %848 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %857

849:                                              ; preds = %827, %837, %841
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %850 unwind label %833

850:                                              ; preds = %849
  %851 = call noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() #7
  %852 = fneg x86_fp80 %851
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %82, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %817, x86_fp80 noundef %825, x86_fp80 noundef %852)
          to label %.critedge531 unwind label %853

853:                                              ; preds = %850
  %854 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %857

.critedge531:                                     ; preds = %850, %843
  %.sink589 = phi ptr [ %81, %843 ], [ %82, %850 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink589) #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
  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, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %855 unwind label %859

855:                                              ; preds = %.critedge531
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %83)
          to label %856 unwind label %861

856:                                              ; preds = %855
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  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
  ret i32 0

857:                                              ; preds = %853, %847, %833
  %.pn469 = phi { ptr, i32 } [ %854, %853 ], [ %834, %833 ], [ %848, %847 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %858

858:                                              ; preds = %857, %831
  %.pn469.pn = phi { ptr, i32 } [ %.pn469, %857 ], [ %832, %831 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  br label %864

859:                                              ; preds = %.critedge531
  %860 = landingpad { ptr, i32 }
          cleanup
  br label %863

861:                                              ; preds = %855
  %862 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %863

863:                                              ; preds = %861, %859
  %.pn472 = phi { ptr, i32 } [ %862, %861 ], [ %860, %859 ]
  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 %864

864:                                              ; preds = %863, %858, %830, %789, %750, %709, %667, %626, %585, %546, %507, %468, %427, %386, %347, %312, %277, %242, %207, %172, %137, %103
  %.pn472.pn = phi { ptr, i32 } [ %.pn472, %863 ], [ %.pn469.pn, %858 ], [ %.pn466.pn, %830 ], [ %.pn463.pn, %789 ], [ %.pn460.pn, %750 ], [ %.pn457.pn, %709 ], [ %.pn454.pn, %667 ], [ %.pn451.pn, %626 ], [ %.pn448.pn, %585 ], [ %.pn445.pn, %546 ], [ %.pn442.pn, %507 ], [ %.pn439.pn, %468 ], [ %.pn436.pn, %427 ], [ %.pn433.pn, %386 ], [ %.pn430.pn, %347 ], [ %.pn427.pn, %312 ], [ %.pn424.pn, %277 ], [ %.pn421.pn, %242 ], [ %.pn418.pn, %207 ], [ %.pn415.pn, %172 ], [ %.pn412.pn, %137 ], [ %.pn, %103 ]
  resume { ptr, i32 } %.pn472.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 x86_fp80 @_ZN4gcem5fabslIdEEeT_(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef) local_unnamed_addr #6

; 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_failIeddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 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_passIeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem5fabslIeEEeT_(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZSt4fabse(x86_fp80 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE6lowestEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3minEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE3maxEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE6lowestEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3minEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE3maxEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE8infinityEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE9quiet_NaNEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZNSt14numeric_limitsIeE8infinityEv() 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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

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

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


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