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

; 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 [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [14 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 x86_fp80, align 16
  %10 = alloca i8, align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca x86_fp80, align 16
  %16 = alloca x86_fp80, align 16
  %17 = alloca i8, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca x86_fp80, align 16
  %23 = alloca x86_fp80, align 16
  %24 = alloca i8, 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 x86_fp80, align 16
  %30 = alloca x86_fp80, align 16
  %31 = alloca i8, align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca x86_fp80, align 16
  %37 = alloca x86_fp80, align 16
  %38 = alloca i8, align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca x86_fp80, align 16
  %44 = alloca x86_fp80, align 16
  %45 = alloca i8, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca x86_fp80, align 16
  %51 = alloca x86_fp80, align 16
  %52 = alloca i8, 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 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 i8, align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator", align 1
  %71 = alloca x86_fp80, align 16
  %72 = alloca x86_fp80, align 16
  %73 = alloca i8, align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca x86_fp80, align 16
  %79 = alloca x86_fp80, align 16
  %80 = alloca i8, align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca i8, align 1
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  %94 = alloca i8, align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca double, align 8
  %100 = alloca double, align 8
  %101 = alloca i8, align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator", align 1
  %106 = alloca double, align 8
  %107 = alloca double, align 8
  %108 = alloca i8, align 1
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator", align 1
  %113 = alloca double, align 8
  %114 = alloca double, align 8
  %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
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %3) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #6
  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 %120 unwind label %145

120:                                              ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2)
          to label %121 unwind label %149

121:                                              ; preds = %120
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #6
  %122 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  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 %124 unwind label %154

124:                                              ; preds = %121
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #6
  %125 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFFFE8D6209AFCBE6) #6
  store x86_fp80 %125, ptr %8, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #6
  %126 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %127 = fsub x86_fp80 %126, 0xKC000C000000000000000
  %128 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %127)
          to label %129 unwind label %158

129:                                              ; preds = %124
  %130 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC000C000000000000000)
          to label %131 unwind label %158

131:                                              ; preds = %129
  %132 = fadd x86_fp80 0xK3FFF8000000000000000, %130
  %133 = fdiv x86_fp80 %128, %132
  store x86_fp80 %133, ptr %9, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #6
  store i8 0, ptr %10, align 1, !tbaa !11
  %134 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %135 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %134)
          to label %136 unwind label %162

136:                                              ; preds = %131
  br i1 %135, label %166, label %137

137:                                              ; preds = %136
  %138 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %139 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %138)
          to label %140 unwind label %162

140:                                              ; preds = %137
  br i1 %139, label %141, label %166

141:                                              ; preds = %140
  %142 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %143 = fcmp oeq x86_fp80 %142, 0xKC000C000000000000000
  br i1 %143, label %144, label %166

144:                                              ; preds = %141
  store i8 1, ptr %10, align 1, !tbaa !11
  br label %180

145:                                              ; preds = %0
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %4, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %5, align 4
  br label %153

149:                                              ; preds = %120
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %4, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  br label %153

153:                                              ; preds = %149, %145
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #6
  br label %1240

154:                                              ; preds = %121
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %4, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #6
  br label %218

158:                                              ; preds = %129, %124
  %159 = landingpad { ptr, i32 }
          cleanup
  %160 = extractvalue { ptr, i32 } %159, 0
  store ptr %160, ptr %4, align 8
  %161 = extractvalue { ptr, i32 } %159, 1
  store i32 %161, ptr %5, align 4
  br label %217

162:                                              ; preds = %183, %170, %137, %131
  %163 = landingpad { ptr, i32 }
          cleanup
  %164 = extractvalue { ptr, i32 } %163, 0
  store ptr %164, ptr %4, align 8
  %165 = extractvalue { ptr, i32 } %163, 1
  store i32 %165, ptr %5, align 4
  br label %216

166:                                              ; preds = %141, %140, %136
  %167 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %168 = fcmp olt x86_fp80 %167, 0xK3FD78CBCCC096F508800
  br i1 %168, label %169, label %170

169:                                              ; preds = %166
  store i8 1, ptr %10, align 1, !tbaa !11
  br label %179

170:                                              ; preds = %166
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %171 unwind label %162

171:                                              ; preds = %170
  %172 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %173 = load x86_fp80, ptr %8, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %11, i32 noundef %172, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %173, x86_fp80 noundef 0xKC000C000000000000000, x86_fp80 noundef 0xKBFFEFFFE8D6209AFCBE6)
          to label %174 unwind label %175

174:                                              ; preds = %171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %179

175:                                              ; preds = %171
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %4, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %216

179:                                              ; preds = %174, %169
  br label %180

180:                                              ; preds = %179, %144
  %181 = load i8, ptr %10, align 1, !tbaa !11, !range !13, !noundef !14
  %182 = trunc i8 %181 to i1
  br i1 %182, label %183, label %192

183:                                              ; preds = %180
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %184 unwind label %162

184:                                              ; preds = %183
  %185 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %186 = load x86_fp80, ptr %9, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %12, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %185, x86_fp80 noundef %186, x86_fp80 noundef 0xKBFFEFFFE8D6209AFCBE6)
          to label %187 unwind label %188

187:                                              ; preds = %184
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %192

188:                                              ; preds = %184
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %4, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %216

192:                                              ; preds = %187, %180
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  %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 %13) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %195 unwind label %219

195:                                              ; preds = %192
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #6
  %196 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFFE5547A64DF5361) #6
  store x86_fp80 %196, ptr %15, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #6
  %197 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %198 = fsub x86_fp80 %197, 0xKC000A000000000000000
  %199 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %198)
          to label %200 unwind label %223

200:                                              ; preds = %195
  %201 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC000A000000000000000)
          to label %202 unwind label %223

202:                                              ; preds = %200
  %203 = fadd x86_fp80 0xK3FFF8000000000000000, %201
  %204 = fdiv x86_fp80 %199, %203
  store x86_fp80 %204, ptr %16, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #6
  store i8 0, ptr %17, align 1, !tbaa !11
  %205 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %206 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %205)
          to label %207 unwind label %227

207:                                              ; preds = %202
  br i1 %206, label %231, label %208

208:                                              ; preds = %207
  %209 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %210 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %209)
          to label %211 unwind label %227

211:                                              ; preds = %208
  br i1 %210, label %212, label %231

212:                                              ; preds = %211
  %213 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %214 = fcmp oeq x86_fp80 %213, 0xKC000A000000000000000
  br i1 %214, label %215, label %231

215:                                              ; preds = %212
  store i8 1, ptr %17, align 1, !tbaa !11
  br label %245

216:                                              ; preds = %188, %175, %162
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  br label %217

217:                                              ; preds = %216, %158
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %218

218:                                              ; preds = %217, %154
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  br label %1240

219:                                              ; preds = %192
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %4, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  br label %283

223:                                              ; preds = %200, %195
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %4, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %5, align 4
  br label %282

227:                                              ; preds = %248, %235, %208, %202
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %4, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %5, align 4
  br label %281

231:                                              ; preds = %212, %211, %207
  %232 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %233 = fcmp olt x86_fp80 %232, 0xK3FD78CBCCC096F508800
  br i1 %233, label %234, label %235

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

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

236:                                              ; preds = %235
  %237 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %238 = load x86_fp80, ptr %15, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %18, i32 noundef %237, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %238, x86_fp80 noundef 0xKC000A000000000000000, x86_fp80 noundef 0xKBFFEFFE5547A64DF5361)
          to label %239 unwind label %240

239:                                              ; preds = %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %244

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

244:                                              ; preds = %239, %234
  br label %245

245:                                              ; preds = %244, %215
  %246 = load i8, ptr %17, align 1, !tbaa !11, !range !13, !noundef !14
  %247 = trunc i8 %246 to i1
  br i1 %247, label %248, label %257

248:                                              ; preds = %245
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %249 unwind label %227

249:                                              ; preds = %248
  %250 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %251 = load x86_fp80, ptr %16, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %19, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %250, x86_fp80 noundef %251, x86_fp80 noundef 0xKBFFEFFE5547A64DF5361)
          to label %252 unwind label %253

252:                                              ; preds = %249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %257

253:                                              ; preds = %249
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %4, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %281

257:                                              ; preds = %252, %245
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  %258 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %260 unwind label %284

260:                                              ; preds = %257
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #6
  %261 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFF458A3874F4908B) #6
  store x86_fp80 %261, ptr %22, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #6
  %262 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %263 = fsub x86_fp80 %262, 0xKC000870A3D70A3D70A3D
  %264 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %263)
          to label %265 unwind label %288

265:                                              ; preds = %260
  %266 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC000870A3D70A3D70A3D)
          to label %267 unwind label %288

267:                                              ; preds = %265
  %268 = fadd x86_fp80 0xK3FFF8000000000000000, %266
  %269 = fdiv x86_fp80 %264, %268
  store x86_fp80 %269, ptr %23, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #6
  store i8 0, ptr %24, align 1, !tbaa !11
  %270 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %271 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %270)
          to label %272 unwind label %292

272:                                              ; preds = %267
  br i1 %271, label %296, label %273

273:                                              ; preds = %272
  %274 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %275 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %274)
          to label %276 unwind label %292

276:                                              ; preds = %273
  br i1 %275, label %277, label %296

277:                                              ; preds = %276
  %278 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %279 = fcmp oeq x86_fp80 %278, 0xKC000870A3D70A3D70A3D
  br i1 %279, label %280, label %296

280:                                              ; preds = %277
  store i8 1, ptr %24, align 1, !tbaa !11
  br label %310

281:                                              ; preds = %253, %240, %227
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  br label %282

282:                                              ; preds = %281, %223
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %283

283:                                              ; preds = %282, %219
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  br label %1240

284:                                              ; preds = %257
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %4, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  br label %348

288:                                              ; preds = %265, %260
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %4, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %5, align 4
  br label %347

292:                                              ; preds = %313, %300, %273, %267
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %4, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %5, align 4
  br label %346

296:                                              ; preds = %277, %276, %272
  %297 = load x86_fp80, ptr %23, align 16, !tbaa !9
  %298 = fcmp olt x86_fp80 %297, 0xK3FD78CBCCC096F508800
  br i1 %298, label %299, label %300

299:                                              ; preds = %296
  store i8 1, ptr %24, align 1, !tbaa !11
  br label %309

300:                                              ; preds = %296
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %301 unwind label %292

301:                                              ; preds = %300
  %302 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %303 = load x86_fp80, ptr %22, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %25, i32 noundef %302, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %303, x86_fp80 noundef 0xKC000870A3D70A3D70A3D, x86_fp80 noundef 0xKBFFEFF458A3874F4908B)
          to label %304 unwind label %305

304:                                              ; preds = %301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %309

305:                                              ; preds = %301
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %4, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %346

309:                                              ; preds = %304, %299
  br label %310

310:                                              ; preds = %309, %280
  %311 = load i8, ptr %24, align 1, !tbaa !11, !range !13, !noundef !14
  %312 = trunc i8 %311 to i1
  br i1 %312, label %313, label %322

313:                                              ; preds = %310
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %314 unwind label %292

314:                                              ; preds = %313
  %315 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %316 = load x86_fp80, ptr %23, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %26, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %315, x86_fp80 noundef %316, x86_fp80 noundef 0xKBFFEFF458A3874F4908B)
          to label %317 unwind label %318

317:                                              ; preds = %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %322

318:                                              ; preds = %314
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %4, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %346

322:                                              ; preds = %317, %310
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  %323 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %325 unwind label %349

325:                                              ; preds = %322
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #6
  %326 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFF0AC544E2DBFC9D) #6
  store x86_fp80 %326, ptr %29, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #6
  %327 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %328 = fsub x86_fp80 %327, 0xKC0008333333333333333
  %329 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %328)
          to label %330 unwind label %353

330:                                              ; preds = %325
  %331 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC0008333333333333333)
          to label %332 unwind label %353

332:                                              ; preds = %330
  %333 = fadd x86_fp80 0xK3FFF8000000000000000, %331
  %334 = fdiv x86_fp80 %329, %333
  store x86_fp80 %334, ptr %30, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #6
  store i8 0, ptr %31, align 1, !tbaa !11
  %335 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %336 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %335)
          to label %337 unwind label %357

337:                                              ; preds = %332
  br i1 %336, label %361, label %338

338:                                              ; preds = %337
  %339 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %340 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %339)
          to label %341 unwind label %357

341:                                              ; preds = %338
  br i1 %340, label %342, label %361

342:                                              ; preds = %341
  %343 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %344 = fcmp oeq x86_fp80 %343, 0xKC0008333333333333333
  br i1 %344, label %345, label %361

345:                                              ; preds = %342
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %375

346:                                              ; preds = %318, %305, %292
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  br label %347

347:                                              ; preds = %346, %288
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %348

348:                                              ; preds = %347, %284
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %1240

349:                                              ; preds = %322
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %4, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  br label %413

353:                                              ; preds = %330, %325
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %4, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %5, align 4
  br label %412

357:                                              ; preds = %378, %365, %338, %332
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %4, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %5, align 4
  br label %411

361:                                              ; preds = %342, %341, %337
  %362 = load x86_fp80, ptr %30, align 16, !tbaa !9
  %363 = fcmp olt x86_fp80 %362, 0xK3FD78CBCCC096F508800
  br i1 %363, label %364, label %365

364:                                              ; preds = %361
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %374

365:                                              ; preds = %361
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %366 unwind label %357

366:                                              ; preds = %365
  %367 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %368 = load x86_fp80, ptr %29, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %32, i32 noundef %367, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %368, x86_fp80 noundef 0xKC0008333333333333333, x86_fp80 noundef 0xKBFFEFF0AC544E2DBFC9D)
          to label %369 unwind label %370

369:                                              ; preds = %366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %374

370:                                              ; preds = %366
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %4, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %411

374:                                              ; preds = %369, %364
  br label %375

375:                                              ; preds = %374, %345
  %376 = load i8, ptr %31, align 1, !tbaa !11, !range !13, !noundef !14
  %377 = trunc i8 %376 to i1
  br i1 %377, label %378, label %387

378:                                              ; preds = %375
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %379 unwind label %357

379:                                              ; preds = %378
  %380 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %381 = load x86_fp80, ptr %30, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %33, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %380, x86_fp80 noundef %381, x86_fp80 noundef 0xKBFFEFF0AC544E2DBFC9D)
          to label %382 unwind label %383

382:                                              ; preds = %379
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %387

383:                                              ; preds = %379
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %4, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %411

387:                                              ; preds = %382, %375
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  %388 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %390 unwind label %414

390:                                              ; preds = %387
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #6
  %391 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEEF1B2509B969D0F6) #6
  store x86_fp80 %391, ptr %36, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #6
  %392 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %393 = fsub x86_fp80 %392, 0xKBFFFA666666666666666
  %394 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %393)
          to label %395 unwind label %418

395:                                              ; preds = %390
  %396 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKBFFFA666666666666666)
          to label %397 unwind label %418

397:                                              ; preds = %395
  %398 = fadd x86_fp80 0xK3FFF8000000000000000, %396
  %399 = fdiv x86_fp80 %394, %398
  store x86_fp80 %399, ptr %37, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #6
  store i8 0, ptr %38, align 1, !tbaa !11
  %400 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %401 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %400)
          to label %402 unwind label %422

402:                                              ; preds = %397
  br i1 %401, label %426, label %403

403:                                              ; preds = %402
  %404 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %405 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %404)
          to label %406 unwind label %422

406:                                              ; preds = %403
  br i1 %405, label %407, label %426

407:                                              ; preds = %406
  %408 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %409 = fcmp oeq x86_fp80 %408, 0xKBFFFA666666666666666
  br i1 %409, label %410, label %426

410:                                              ; preds = %407
  store i8 1, ptr %38, align 1, !tbaa !11
  br label %440

411:                                              ; preds = %383, %370, %357
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %412

412:                                              ; preds = %411, %353
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %413

413:                                              ; preds = %412, %349
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  br label %1240

414:                                              ; preds = %387
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %4, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #6
  br label %478

418:                                              ; preds = %395, %390
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %4, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %5, align 4
  br label %477

422:                                              ; preds = %443, %430, %403, %397
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %4, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %5, align 4
  br label %476

426:                                              ; preds = %407, %406, %402
  %427 = load x86_fp80, ptr %37, align 16, !tbaa !9
  %428 = fcmp olt x86_fp80 %427, 0xK3FD78CBCCC096F508800
  br i1 %428, label %429, label %430

429:                                              ; preds = %426
  store i8 1, ptr %38, align 1, !tbaa !11
  br label %439

430:                                              ; preds = %426
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %431 unwind label %422

431:                                              ; preds = %430
  %432 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %433 = load x86_fp80, ptr %36, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %39, i32 noundef %432, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %433, x86_fp80 noundef 0xKBFFFA666666666666666, x86_fp80 noundef 0xKBFFEEF1B2509B969D0F6)
          to label %434 unwind label %435

434:                                              ; preds = %431
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %439

435:                                              ; preds = %431
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %4, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %476

439:                                              ; preds = %434, %429
  br label %440

440:                                              ; preds = %439, %410
  %441 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %442 = trunc i8 %441 to i1
  br i1 %442, label %443, label %452

443:                                              ; preds = %440
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %444 unwind label %422

444:                                              ; preds = %443
  %445 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %446 = load x86_fp80, ptr %37, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %40, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %445, x86_fp80 noundef %446, x86_fp80 noundef 0xKBFFEEF1B2509B969D0F6)
          to label %447 unwind label %448

447:                                              ; preds = %444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %452

448:                                              ; preds = %444
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %4, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %476

452:                                              ; preds = %447, %440
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #6
  %453 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %455 unwind label %479

455:                                              ; preds = %452
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #6
  %456 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #6
  store x86_fp80 %456, ptr %43, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #6
  %457 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %458 = fsub x86_fp80 %457, 0xK00000000000000000000
  %459 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %458)
          to label %460 unwind label %483

460:                                              ; preds = %455
  %461 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK00000000000000000000)
          to label %462 unwind label %483

462:                                              ; preds = %460
  %463 = fadd x86_fp80 0xK3FFF8000000000000000, %461
  %464 = fdiv x86_fp80 %459, %463
  store x86_fp80 %464, ptr %44, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #6
  store i8 0, ptr %45, align 1, !tbaa !11
  %465 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %466 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %465)
          to label %467 unwind label %487

467:                                              ; preds = %462
  br i1 %466, label %491, label %468

468:                                              ; preds = %467
  %469 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %470 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %469)
          to label %471 unwind label %487

471:                                              ; preds = %468
  br i1 %470, label %472, label %491

472:                                              ; preds = %471
  %473 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %474 = fcmp oeq x86_fp80 %473, 0xK00000000000000000000
  br i1 %474, label %475, label %491

475:                                              ; preds = %472
  store i8 1, ptr %45, align 1, !tbaa !11
  br label %505

476:                                              ; preds = %448, %435, %422
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #6
  br label %477

477:                                              ; preds = %476, %418
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %478

478:                                              ; preds = %477, %414
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #6
  br label %1240

479:                                              ; preds = %452
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %4, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #6
  br label %543

483:                                              ; preds = %460, %455
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %4, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %5, align 4
  br label %542

487:                                              ; preds = %508, %495, %468, %462
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %4, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %5, align 4
  br label %541

491:                                              ; preds = %472, %471, %467
  %492 = load x86_fp80, ptr %44, align 16, !tbaa !9
  %493 = fcmp olt x86_fp80 %492, 0xK3FD78CBCCC096F508800
  br i1 %493, label %494, label %495

494:                                              ; preds = %491
  store i8 1, ptr %45, align 1, !tbaa !11
  br label %504

495:                                              ; preds = %491
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %496 unwind label %487

496:                                              ; preds = %495
  %497 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %498 = load x86_fp80, ptr %43, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %46, i32 noundef %497, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %498, x86_fp80 noundef 0xK00000000000000000000, x86_fp80 noundef 0xK00000000000000000000)
          to label %499 unwind label %500

499:                                              ; preds = %496
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %504

500:                                              ; preds = %496
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %4, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %541

504:                                              ; preds = %499, %494
  br label %505

505:                                              ; preds = %504, %475
  %506 = load i8, ptr %45, align 1, !tbaa !11, !range !13, !noundef !14
  %507 = trunc i8 %506 to i1
  br i1 %507, label %508, label %517

508:                                              ; preds = %505
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %509 unwind label %487

509:                                              ; preds = %508
  %510 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %511 = load x86_fp80, ptr %44, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %47, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %510, x86_fp80 noundef %511, x86_fp80 noundef 0xK00000000000000000000)
          to label %512 unwind label %513

512:                                              ; preds = %509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %517

513:                                              ; preds = %509
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %4, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %541

517:                                              ; preds = %512, %505
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  %518 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  store i32 %519, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %520 unwind label %544

520:                                              ; preds = %517
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #6
  %521 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEEF1B2509B969D0F6) #6
  store x86_fp80 %521, ptr %50, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #6
  %522 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %523 = fsub x86_fp80 %522, 0xK3FFFA666666666666666
  %524 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %523)
          to label %525 unwind label %548

525:                                              ; preds = %520
  %526 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFFA666666666666666)
          to label %527 unwind label %548

527:                                              ; preds = %525
  %528 = fadd x86_fp80 0xK3FFF8000000000000000, %526
  %529 = fdiv x86_fp80 %524, %528
  store x86_fp80 %529, ptr %51, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #6
  store i8 0, ptr %52, align 1, !tbaa !11
  %530 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %531 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %530)
          to label %532 unwind label %552

532:                                              ; preds = %527
  br i1 %531, label %556, label %533

533:                                              ; preds = %532
  %534 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %535 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %534)
          to label %536 unwind label %552

536:                                              ; preds = %533
  br i1 %535, label %537, label %556

537:                                              ; preds = %536
  %538 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %539 = fcmp oeq x86_fp80 %538, 0xK3FFFA666666666666666
  br i1 %539, label %540, label %556

540:                                              ; preds = %537
  store i8 1, ptr %52, align 1, !tbaa !11
  br label %570

541:                                              ; preds = %513, %500, %487
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  br label %542

542:                                              ; preds = %541, %483
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %543

543:                                              ; preds = %542, %479
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  br label %1240

544:                                              ; preds = %517
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %4, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #6
  br label %608

548:                                              ; preds = %525, %520
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %4, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %5, align 4
  br label %607

552:                                              ; preds = %573, %560, %533, %527
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %4, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %5, align 4
  br label %606

556:                                              ; preds = %537, %536, %532
  %557 = load x86_fp80, ptr %51, align 16, !tbaa !9
  %558 = fcmp olt x86_fp80 %557, 0xK3FD78CBCCC096F508800
  br i1 %558, label %559, label %560

559:                                              ; preds = %556
  store i8 1, ptr %52, align 1, !tbaa !11
  br label %569

560:                                              ; preds = %556
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %561 unwind label %552

561:                                              ; preds = %560
  %562 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %563 = load x86_fp80, ptr %50, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %53, i32 noundef %562, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %563, x86_fp80 noundef 0xK3FFFA666666666666666, x86_fp80 noundef 0xK3FFEEF1B2509B969D0F6)
          to label %564 unwind label %565

564:                                              ; preds = %561
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %569

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

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

570:                                              ; preds = %569, %540
  %571 = load i8, ptr %52, align 1, !tbaa !11, !range !13, !noundef !14
  %572 = trunc i8 %571 to i1
  br i1 %572, label %573, label %582

573:                                              ; preds = %570
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %574 unwind label %552

574:                                              ; preds = %573
  %575 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %576 = load x86_fp80, ptr %51, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %54, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %575, x86_fp80 noundef %576, x86_fp80 noundef 0xK3FFEEF1B2509B969D0F6)
          to label %577 unwind label %578

577:                                              ; preds = %574
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %582

578:                                              ; preds = %574
  %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) %54) #6
  br label %606

582:                                              ; preds = %577, %570
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  %583 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %585 unwind label %609

585:                                              ; preds = %582
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #6
  %586 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFF0AC544E2DBFC9D) #6
  store x86_fp80 %586, ptr %57, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #6
  %587 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %588 = fsub x86_fp80 %587, 0xK40008333333333333333
  %589 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %588)
          to label %590 unwind label %613

590:                                              ; preds = %585
  %591 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK40008333333333333333)
          to label %592 unwind label %613

592:                                              ; preds = %590
  %593 = fadd x86_fp80 0xK3FFF8000000000000000, %591
  %594 = fdiv x86_fp80 %589, %593
  store x86_fp80 %594, ptr %58, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #6
  store i8 0, ptr %59, align 1, !tbaa !11
  %595 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %596 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %595)
          to label %597 unwind label %617

597:                                              ; preds = %592
  br i1 %596, label %621, label %598

598:                                              ; preds = %597
  %599 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %600 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %599)
          to label %601 unwind label %617

601:                                              ; preds = %598
  br i1 %600, label %602, label %621

602:                                              ; preds = %601
  %603 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %604 = fcmp oeq x86_fp80 %603, 0xK40008333333333333333
  br i1 %604, label %605, label %621

605:                                              ; preds = %602
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %635

606:                                              ; preds = %578, %565, %552
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #6
  br label %607

607:                                              ; preds = %606, %548
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  br label %608

608:                                              ; preds = %607, %544
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  br label %1240

609:                                              ; preds = %582
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %4, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #6
  br label %673

613:                                              ; preds = %590, %585
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %4, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %5, align 4
  br label %672

617:                                              ; preds = %638, %625, %598, %592
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %4, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %5, align 4
  br label %671

621:                                              ; preds = %602, %601, %597
  %622 = load x86_fp80, ptr %58, align 16, !tbaa !9
  %623 = fcmp olt x86_fp80 %622, 0xK3FD78CBCCC096F508800
  br i1 %623, label %624, label %625

624:                                              ; preds = %621
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %634

625:                                              ; preds = %621
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %626 unwind label %617

626:                                              ; preds = %625
  %627 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %628 = load x86_fp80, ptr %57, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %60, i32 noundef %627, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %628, x86_fp80 noundef 0xK40008333333333333333, x86_fp80 noundef 0xK3FFEFF0AC544E2DBFC9D)
          to label %629 unwind label %630

629:                                              ; preds = %626
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %634

630:                                              ; preds = %626
  %631 = landingpad { ptr, i32 }
          cleanup
  %632 = extractvalue { ptr, i32 } %631, 0
  store ptr %632, ptr %4, align 8
  %633 = extractvalue { ptr, i32 } %631, 1
  store i32 %633, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %671

634:                                              ; preds = %629, %624
  br label %635

635:                                              ; preds = %634, %605
  %636 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %637 = trunc i8 %636 to i1
  br i1 %637, label %638, label %647

638:                                              ; preds = %635
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %639 unwind label %617

639:                                              ; preds = %638
  %640 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %641 = 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 %640, x86_fp80 noundef %641, x86_fp80 noundef 0xK3FFEFF0AC544E2DBFC9D)
          to label %642 unwind label %643

642:                                              ; preds = %639
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %647

643:                                              ; preds = %639
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %4, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %671

647:                                              ; preds = %642, %635
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #6
  %648 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  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 %650 unwind label %674

650:                                              ; preds = %647
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #6
  %651 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFF458A3874F4908B) #6
  store x86_fp80 %651, ptr %64, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #6
  %652 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %653 = fsub x86_fp80 %652, 0xK4000870A3D70A3D70A3D
  %654 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %653)
          to label %655 unwind label %678

655:                                              ; preds = %650
  %656 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK4000870A3D70A3D70A3D)
          to label %657 unwind label %678

657:                                              ; preds = %655
  %658 = fadd x86_fp80 0xK3FFF8000000000000000, %656
  %659 = fdiv x86_fp80 %654, %658
  store x86_fp80 %659, ptr %65, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #6
  store i8 0, ptr %66, align 1, !tbaa !11
  %660 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %661 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %660)
          to label %662 unwind label %682

662:                                              ; preds = %657
  br i1 %661, label %686, label %663

663:                                              ; preds = %662
  %664 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %665 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %664)
          to label %666 unwind label %682

666:                                              ; preds = %663
  br i1 %665, label %667, label %686

667:                                              ; preds = %666
  %668 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %669 = fcmp oeq x86_fp80 %668, 0xK4000870A3D70A3D70A3D
  br i1 %669, label %670, label %686

670:                                              ; preds = %667
  store i8 1, ptr %66, align 1, !tbaa !11
  br label %700

671:                                              ; preds = %643, %630, %617
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  br label %672

672:                                              ; preds = %671, %613
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %673

673:                                              ; preds = %672, %609
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #6
  br label %1240

674:                                              ; preds = %647
  %675 = landingpad { ptr, i32 }
          cleanup
  %676 = extractvalue { ptr, i32 } %675, 0
  store ptr %676, ptr %4, align 8
  %677 = extractvalue { ptr, i32 } %675, 1
  store i32 %677, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #6
  br label %738

678:                                              ; preds = %655, %650
  %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
  br label %737

682:                                              ; preds = %703, %690, %663, %657
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %4, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %5, align 4
  br label %736

686:                                              ; preds = %667, %666, %662
  %687 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %688 = fcmp olt x86_fp80 %687, 0xK3FD78CBCCC096F508800
  br i1 %688, label %689, label %690

689:                                              ; preds = %686
  store i8 1, ptr %66, align 1, !tbaa !11
  br label %699

690:                                              ; preds = %686
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %691 unwind label %682

691:                                              ; preds = %690
  %692 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %693 = load x86_fp80, ptr %64, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %67, i32 noundef %692, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %693, x86_fp80 noundef 0xK4000870A3D70A3D70A3D, x86_fp80 noundef 0xK3FFEFF458A3874F4908B)
          to label %694 unwind label %695

694:                                              ; preds = %691
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %699

695:                                              ; preds = %691
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %4, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %736

699:                                              ; preds = %694, %689
  br label %700

700:                                              ; preds = %699, %670
  %701 = load i8, ptr %66, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc i8 %701 to i1
  br i1 %702, label %703, label %712

703:                                              ; preds = %700
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %704 unwind label %682

704:                                              ; preds = %703
  %705 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %706 = load x86_fp80, ptr %65, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %68, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %705, x86_fp80 noundef %706, x86_fp80 noundef 0xK3FFEFF458A3874F4908B)
          to label %707 unwind label %708

707:                                              ; preds = %704
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %712

708:                                              ; preds = %704
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %4, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %736

712:                                              ; preds = %707, %700
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  %713 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %714 = add nsw i32 %713, 1
  store i32 %714, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %715 unwind label %739

715:                                              ; preds = %712
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #6
  %716 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFFE5547A64DF5361) #6
  store x86_fp80 %716, ptr %71, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %72) #6
  %717 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %718 = fsub x86_fp80 %717, 0xK4000A000000000000000
  %719 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %718)
          to label %720 unwind label %743

720:                                              ; preds = %715
  %721 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK4000A000000000000000)
          to label %722 unwind label %743

722:                                              ; preds = %720
  %723 = fadd x86_fp80 0xK3FFF8000000000000000, %721
  %724 = fdiv x86_fp80 %719, %723
  store x86_fp80 %724, ptr %72, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #6
  store i8 0, ptr %73, align 1, !tbaa !11
  %725 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %726 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %725)
          to label %727 unwind label %747

727:                                              ; preds = %722
  br i1 %726, label %751, label %728

728:                                              ; preds = %727
  %729 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %730 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %729)
          to label %731 unwind label %747

731:                                              ; preds = %728
  br i1 %730, label %732, label %751

732:                                              ; preds = %731
  %733 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %734 = fcmp oeq x86_fp80 %733, 0xK4000A000000000000000
  br i1 %734, label %735, label %751

735:                                              ; preds = %732
  store i8 1, ptr %73, align 1, !tbaa !11
  br label %765

736:                                              ; preds = %708, %695, %682
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  br label %737

737:                                              ; preds = %736, %678
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %738

738:                                              ; preds = %737, %674
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %1240

739:                                              ; preds = %712
  %740 = landingpad { ptr, i32 }
          cleanup
  %741 = extractvalue { ptr, i32 } %740, 0
  store ptr %741, ptr %4, align 8
  %742 = extractvalue { ptr, i32 } %740, 1
  store i32 %742, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #6
  br label %803

743:                                              ; preds = %720, %715
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %4, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %5, align 4
  br label %802

747:                                              ; preds = %768, %755, %728, %722
  %748 = landingpad { ptr, i32 }
          cleanup
  %749 = extractvalue { ptr, i32 } %748, 0
  store ptr %749, ptr %4, align 8
  %750 = extractvalue { ptr, i32 } %748, 1
  store i32 %750, ptr %5, align 4
  br label %801

751:                                              ; preds = %732, %731, %727
  %752 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %753 = fcmp olt x86_fp80 %752, 0xK3FD78CBCCC096F508800
  br i1 %753, label %754, label %755

754:                                              ; preds = %751
  store i8 1, ptr %73, align 1, !tbaa !11
  br label %764

755:                                              ; preds = %751
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %756 unwind label %747

756:                                              ; preds = %755
  %757 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %758 = load x86_fp80, ptr %71, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %74, i32 noundef %757, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %758, x86_fp80 noundef 0xK4000A000000000000000, x86_fp80 noundef 0xK3FFEFFE5547A64DF5361)
          to label %759 unwind label %760

759:                                              ; preds = %756
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %764

760:                                              ; preds = %756
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %4, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %801

764:                                              ; preds = %759, %754
  br label %765

765:                                              ; preds = %764, %735
  %766 = load i8, ptr %73, align 1, !tbaa !11, !range !13, !noundef !14
  %767 = trunc i8 %766 to i1
  br i1 %767, label %768, label %777

768:                                              ; preds = %765
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %769 unwind label %747

769:                                              ; preds = %768
  %770 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %771 = load x86_fp80, ptr %72, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %75, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %770, x86_fp80 noundef %771, x86_fp80 noundef 0xK3FFEFFE5547A64DF5361)
          to label %772 unwind label %773

772:                                              ; preds = %769
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %777

773:                                              ; preds = %769
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %4, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %801

777:                                              ; preds = %772, %765
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  %778 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %779 = add nsw i32 %778, 1
  store i32 %779, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %780 unwind label %804

780:                                              ; preds = %777
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %78) #6
  %781 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFFFE8D6209AFCBE6) #6
  store x86_fp80 %781, ptr %78, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #6
  %782 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %783 = fsub x86_fp80 %782, 0xK4000C000000000000000
  %784 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %783)
          to label %785 unwind label %808

785:                                              ; preds = %780
  %786 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK4000C000000000000000)
          to label %787 unwind label %808

787:                                              ; preds = %785
  %788 = fadd x86_fp80 0xK3FFF8000000000000000, %786
  %789 = fdiv x86_fp80 %784, %788
  store x86_fp80 %789, ptr %79, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #6
  store i8 0, ptr %80, align 1, !tbaa !11
  %790 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %791 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %790)
          to label %792 unwind label %812

792:                                              ; preds = %787
  br i1 %791, label %816, label %793

793:                                              ; preds = %792
  %794 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %795 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %794)
          to label %796 unwind label %812

796:                                              ; preds = %793
  br i1 %795, label %797, label %816

797:                                              ; preds = %796
  %798 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %799 = fcmp oeq x86_fp80 %798, 0xK4000C000000000000000
  br i1 %799, label %800, label %816

800:                                              ; preds = %797
  store i8 1, ptr %80, align 1, !tbaa !11
  br label %830

801:                                              ; preds = %773, %760, %747
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #6
  br label %802

802:                                              ; preds = %801, %743
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %803

803:                                              ; preds = %802, %739
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  br label %1240

804:                                              ; preds = %777
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %4, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #6
  br label %865

808:                                              ; preds = %785, %780
  %809 = landingpad { ptr, i32 }
          cleanup
  %810 = extractvalue { ptr, i32 } %809, 0
  store ptr %810, ptr %4, align 8
  %811 = extractvalue { ptr, i32 } %809, 1
  store i32 %811, ptr %5, align 4
  br label %864

812:                                              ; preds = %833, %820, %793, %787
  %813 = landingpad { ptr, i32 }
          cleanup
  %814 = extractvalue { ptr, i32 } %813, 0
  store ptr %814, ptr %4, align 8
  %815 = extractvalue { ptr, i32 } %813, 1
  store i32 %815, ptr %5, align 4
  br label %863

816:                                              ; preds = %797, %796, %792
  %817 = load x86_fp80, ptr %79, align 16, !tbaa !9
  %818 = fcmp olt x86_fp80 %817, 0xK3FD78CBCCC096F508800
  br i1 %818, label %819, label %820

819:                                              ; preds = %816
  store i8 1, ptr %80, align 1, !tbaa !11
  br label %829

820:                                              ; preds = %816
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %821 unwind label %812

821:                                              ; preds = %820
  %822 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %823 = load x86_fp80, ptr %78, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %81, i32 noundef %822, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %823, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFEFFFE8D6209AFCBE6)
          to label %824 unwind label %825

824:                                              ; preds = %821
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %829

825:                                              ; preds = %821
  %826 = landingpad { ptr, i32 }
          cleanup
  %827 = extractvalue { ptr, i32 } %826, 0
  store ptr %827, ptr %4, align 8
  %828 = extractvalue { ptr, i32 } %826, 1
  store i32 %828, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %863

829:                                              ; preds = %824, %819
  br label %830

830:                                              ; preds = %829, %800
  %831 = load i8, ptr %80, align 1, !tbaa !11, !range !13, !noundef !14
  %832 = trunc i8 %831 to i1
  br i1 %832, label %833, label %842

833:                                              ; preds = %830
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %834 unwind label %812

834:                                              ; preds = %833
  %835 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %836 = load x86_fp80, ptr %79, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %82, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %835, x86_fp80 noundef %836, x86_fp80 noundef 0xK3FFEFFFE8D6209AFCBE6)
          to label %837 unwind label %838

837:                                              ; preds = %834
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %842

838:                                              ; preds = %834
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %4, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %863

842:                                              ; preds = %837, %830
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %78) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  %843 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %844 = add nsw i32 %843, 1
  store i32 %844, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %845 unwind label %866

845:                                              ; preds = %842
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #6
  %846 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %847 = call noundef double @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %846) #6
  store double %847, ptr %85, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #6
  %848 = load double, ptr %85, align 8, !tbaa !15
  %849 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %850 = fsub double %848, %849
  %851 = invoke noundef double @_ZSt3absd(double noundef %850)
          to label %852 unwind label %870

852:                                              ; preds = %845
  %853 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %854 = invoke noundef double @_ZSt3absd(double noundef %853)
          to label %855 unwind label %870

855:                                              ; preds = %852
  %856 = fadd double 1.000000e+00, %854
  %857 = fdiv double %851, %856
  store double %857, ptr %86, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #6
  store i8 0, ptr %87, align 1, !tbaa !11
  %858 = load double, ptr %85, align 8, !tbaa !15
  %859 = fpext double %858 to x86_fp80
  %860 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %859)
          to label %861 unwind label %874

861:                                              ; preds = %855
  br i1 %860, label %862, label %878

862:                                              ; preds = %861
  store i8 1, ptr %87, align 1, !tbaa !11
  br label %910

863:                                              ; preds = %838, %825, %812
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #6
  br label %864

864:                                              ; preds = %863, %808
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %78) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %865

865:                                              ; preds = %864, %804
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %1240

866:                                              ; preds = %842
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %4, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #6
  br label %945

870:                                              ; preds = %852, %845
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %4, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %5, align 4
  br label %944

874:                                              ; preds = %913, %897, %883, %878, %855
  %875 = landingpad { ptr, i32 }
          cleanup
  %876 = extractvalue { ptr, i32 } %875, 0
  store ptr %876, ptr %4, align 8
  %877 = extractvalue { ptr, i32 } %875, 1
  store i32 %877, ptr %5, align 4
  br label %943

878:                                              ; preds = %861
  %879 = load double, ptr %85, align 8, !tbaa !15
  %880 = fpext double %879 to x86_fp80
  %881 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %880)
          to label %882 unwind label %874

882:                                              ; preds = %878
  br i1 %881, label %893, label %883

883:                                              ; preds = %882
  %884 = load double, ptr %85, align 8, !tbaa !15
  %885 = fpext double %884 to x86_fp80
  %886 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %885)
          to label %887 unwind label %874

887:                                              ; preds = %883
  br i1 %886, label %888, label %893

888:                                              ; preds = %887
  %889 = load double, ptr %85, align 8, !tbaa !15
  %890 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %891 = fcmp oeq double %889, %890
  br i1 %891, label %892, label %893

892:                                              ; preds = %888
  store i8 1, ptr %87, align 1, !tbaa !11
  br label %909

893:                                              ; preds = %888, %887, %882
  %894 = load double, ptr %86, align 8, !tbaa !15
  %895 = fcmp olt double %894, 0x3D719799812DEA11
  br i1 %895, label %896, label %897

896:                                              ; preds = %893
  store i8 1, ptr %87, align 1, !tbaa !11
  br label %908

897:                                              ; preds = %893
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %898 unwind label %874

898:                                              ; preds = %897
  %899 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %900 = load double, ptr %85, align 8, !tbaa !15
  %901 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %902 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %88, i32 noundef %899, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %900, double noundef %901, double noundef %902)
          to label %903 unwind label %904

903:                                              ; preds = %898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  br label %908

904:                                              ; preds = %898
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %4, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  br label %943

908:                                              ; preds = %903, %896
  br label %909

909:                                              ; preds = %908, %892
  br label %910

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

913:                                              ; preds = %910
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %914 unwind label %874

914:                                              ; preds = %913
  %915 = load double, ptr %85, align 8, !tbaa !15
  %916 = load double, ptr %86, align 8, !tbaa !15
  %917 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %89, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %915, double noundef %916, double noundef %917)
          to label %918 unwind label %919

918:                                              ; preds = %914
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %923

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

923:                                              ; preds = %918, %910
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #6
  %924 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %926 unwind label %946

926:                                              ; preds = %923
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #6
  %927 = call noundef double @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -1.100000e+00) #6
  store double %927, ptr %92, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #6
  %928 = load double, ptr %92, align 8, !tbaa !15
  %929 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %930 = fsub double %928, %929
  %931 = invoke noundef double @_ZSt3absd(double noundef %930)
          to label %932 unwind label %950

932:                                              ; preds = %926
  %933 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %934 = invoke noundef double @_ZSt3absd(double noundef %933)
          to label %935 unwind label %950

935:                                              ; preds = %932
  %936 = fadd double 1.000000e+00, %934
  %937 = fdiv double %931, %936
  store double %937, ptr %93, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #6
  store i8 0, ptr %94, align 1, !tbaa !11
  %938 = load double, ptr %92, align 8, !tbaa !15
  %939 = fpext double %938 to x86_fp80
  %940 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %939)
          to label %941 unwind label %954

941:                                              ; preds = %935
  br i1 %940, label %942, label %958

942:                                              ; preds = %941
  store i8 1, ptr %94, align 1, !tbaa !11
  br label %989

943:                                              ; preds = %919, %904, %874
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #6
  br label %944

944:                                              ; preds = %943, %870
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  br label %945

945:                                              ; preds = %944, %866
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #6
  br label %1240

946:                                              ; preds = %923
  %947 = landingpad { ptr, i32 }
          cleanup
  %948 = extractvalue { ptr, i32 } %947, 0
  store ptr %948, ptr %4, align 8
  %949 = extractvalue { ptr, i32 } %947, 1
  store i32 %949, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #6
  br label %1023

950:                                              ; preds = %932, %926
  %951 = landingpad { ptr, i32 }
          cleanup
  %952 = extractvalue { ptr, i32 } %951, 0
  store ptr %952, ptr %4, align 8
  %953 = extractvalue { ptr, i32 } %951, 1
  store i32 %953, ptr %5, align 4
  br label %1022

954:                                              ; preds = %992, %977, %963, %958, %935
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %4, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %5, align 4
  br label %1021

958:                                              ; preds = %941
  %959 = load double, ptr %92, align 8, !tbaa !15
  %960 = fpext double %959 to x86_fp80
  %961 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %960)
          to label %962 unwind label %954

962:                                              ; preds = %958
  br i1 %961, label %973, label %963

963:                                              ; preds = %962
  %964 = load double, ptr %92, align 8, !tbaa !15
  %965 = fpext double %964 to x86_fp80
  %966 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %965)
          to label %967 unwind label %954

967:                                              ; preds = %963
  br i1 %966, label %968, label %973

968:                                              ; preds = %967
  %969 = load double, ptr %92, align 8, !tbaa !15
  %970 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %971 = fcmp oeq double %969, %970
  br i1 %971, label %972, label %973

972:                                              ; preds = %968
  store i8 1, ptr %94, align 1, !tbaa !11
  br label %988

973:                                              ; preds = %968, %967, %962
  %974 = load double, ptr %93, align 8, !tbaa !15
  %975 = fcmp olt double %974, 0x3D719799812DEA11
  br i1 %975, label %976, label %977

976:                                              ; preds = %973
  store i8 1, ptr %94, align 1, !tbaa !11
  br label %987

977:                                              ; preds = %973
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %978 unwind label %954

978:                                              ; preds = %977
  %979 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %980 = load double, ptr %92, align 8, !tbaa !15
  %981 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %95, i32 noundef %979, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %980, double noundef %981, double noundef -1.100000e+00)
          to label %982 unwind label %983

982:                                              ; preds = %978
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %987

983:                                              ; preds = %978
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %1021

987:                                              ; preds = %982, %976
  br label %988

988:                                              ; preds = %987, %972
  br label %989

989:                                              ; preds = %988, %942
  %990 = load i8, ptr %94, align 1, !tbaa !11, !range !13, !noundef !14
  %991 = trunc i8 %990 to i1
  br i1 %991, label %992, label %1001

992:                                              ; preds = %989
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %993 unwind label %954

993:                                              ; preds = %992
  %994 = load double, ptr %92, align 8, !tbaa !15
  %995 = load double, ptr %93, align 8, !tbaa !15
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %96, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %994, double noundef %995, double noundef -1.100000e+00)
          to label %996 unwind label %997

996:                                              ; preds = %993
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  br label %1001

997:                                              ; preds = %993
  %998 = landingpad { ptr, i32 }
          cleanup
  %999 = extractvalue { ptr, i32 } %998, 0
  store ptr %999, ptr %4, align 8
  %1000 = extractvalue { ptr, i32 } %998, 1
  store i32 %1000, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  br label %1021

1001:                                             ; preds = %996, %989
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #6
  %1002 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %1004 unwind label %1024

1004:                                             ; preds = %1001
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #6
  %1005 = call noundef double @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 1.100000e+00) #6
  store double %1005, ptr %99, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #6
  %1006 = load double, ptr %99, align 8, !tbaa !15
  %1007 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %1008 = fsub double %1006, %1007
  %1009 = invoke noundef double @_ZSt3absd(double noundef %1008)
          to label %1010 unwind label %1028

1010:                                             ; preds = %1004
  %1011 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %1012 = invoke noundef double @_ZSt3absd(double noundef %1011)
          to label %1013 unwind label %1028

1013:                                             ; preds = %1010
  %1014 = fadd double 1.000000e+00, %1012
  %1015 = fdiv double %1009, %1014
  store double %1015, ptr %100, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #6
  store i8 0, ptr %101, align 1, !tbaa !11
  %1016 = load double, ptr %99, align 8, !tbaa !15
  %1017 = fpext double %1016 to x86_fp80
  %1018 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1017)
          to label %1019 unwind label %1032

1019:                                             ; preds = %1013
  br i1 %1018, label %1020, label %1036

1020:                                             ; preds = %1019
  store i8 1, ptr %101, align 1, !tbaa !11
  br label %1067

1021:                                             ; preds = %997, %983, %954
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #6
  br label %1022

1022:                                             ; preds = %1021, %950
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  br label %1023

1023:                                             ; preds = %1022, %946
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #6
  br label %1240

1024:                                             ; preds = %1001
  %1025 = landingpad { ptr, i32 }
          cleanup
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %4, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #6
  br label %1110

1028:                                             ; preds = %1010, %1004
  %1029 = landingpad { ptr, i32 }
          cleanup
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %4, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %5, align 4
  br label %1109

1032:                                             ; preds = %1070, %1055, %1041, %1036, %1013
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %4, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %5, align 4
  br label %1108

1036:                                             ; preds = %1019
  %1037 = load double, ptr %99, align 8, !tbaa !15
  %1038 = fpext double %1037 to x86_fp80
  %1039 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1038)
          to label %1040 unwind label %1032

1040:                                             ; preds = %1036
  br i1 %1039, label %1051, label %1041

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

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

1046:                                             ; preds = %1045
  %1047 = load double, ptr %99, align 8, !tbaa !15
  %1048 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %1049 = fcmp oeq double %1047, %1048
  br i1 %1049, label %1050, label %1051

1050:                                             ; preds = %1046
  store i8 1, ptr %101, align 1, !tbaa !11
  br label %1066

1051:                                             ; preds = %1046, %1045, %1040
  %1052 = load double, ptr %100, align 8, !tbaa !15
  %1053 = fcmp olt double %1052, 0x3D719799812DEA11
  br i1 %1053, label %1054, label %1055

1054:                                             ; preds = %1051
  store i8 1, ptr %101, align 1, !tbaa !11
  br label %1065

1055:                                             ; preds = %1051
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %1056 unwind label %1032

1056:                                             ; preds = %1055
  %1057 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1058 = load double, ptr %99, align 8, !tbaa !15
  %1059 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %102, i32 noundef %1057, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1058, double noundef %1059, double noundef 1.100000e+00)
          to label %1060 unwind label %1061

1060:                                             ; preds = %1056
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  br label %1065

1061:                                             ; preds = %1056
  %1062 = landingpad { ptr, i32 }
          cleanup
  %1063 = extractvalue { ptr, i32 } %1062, 0
  store ptr %1063, ptr %4, align 8
  %1064 = extractvalue { ptr, i32 } %1062, 1
  store i32 %1064, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  br label %1108

1065:                                             ; preds = %1060, %1054
  br label %1066

1066:                                             ; preds = %1065, %1050
  br label %1067

1067:                                             ; preds = %1066, %1020
  %1068 = load i8, ptr %101, align 1, !tbaa !11, !range !13, !noundef !14
  %1069 = trunc i8 %1068 to i1
  br i1 %1069, label %1070, label %1079

1070:                                             ; preds = %1067
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %1071 unwind label %1032

1071:                                             ; preds = %1070
  %1072 = load double, ptr %99, align 8, !tbaa !15
  %1073 = load double, ptr %100, align 8, !tbaa !15
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %103, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1072, double noundef %1073, double noundef 1.100000e+00)
          to label %1074 unwind label %1075

1074:                                             ; preds = %1071
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  br label %1079

1075:                                             ; preds = %1071
  %1076 = landingpad { ptr, i32 }
          cleanup
  %1077 = extractvalue { ptr, i32 } %1076, 0
  store ptr %1077, ptr %4, align 8
  %1078 = extractvalue { ptr, i32 } %1076, 1
  store i32 %1078, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  br label %1108

1079:                                             ; preds = %1074, %1067
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  %1080 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1081 = add nsw i32 %1080, 1
  store i32 %1081, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %1082 unwind label %1111

1082:                                             ; preds = %1079
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #6
  %1083 = call noundef double @_ZN4gcem7erf_invIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef 1) #6
  store double %1083, ptr %106, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #6
  %1084 = load double, ptr %106, align 8, !tbaa !15
  %1085 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %1086 = fsub double %1084, %1085
  %1087 = invoke noundef double @_ZSt3absd(double noundef %1086)
          to label %1088 unwind label %1115

1088:                                             ; preds = %1082
  %1089 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %1090 = invoke noundef double @_ZSt3absd(double noundef %1089)
          to label %1091 unwind label %1115

1091:                                             ; preds = %1088
  %1092 = fadd double 1.000000e+00, %1090
  %1093 = fdiv double %1087, %1092
  store double %1093, ptr %107, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #6
  store i8 0, ptr %108, align 1, !tbaa !11
  %1094 = load double, ptr %106, align 8, !tbaa !15
  %1095 = fpext double %1094 to x86_fp80
  %1096 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1095)
          to label %1097 unwind label %1119

1097:                                             ; preds = %1091
  br i1 %1096, label %1123, label %1098

1098:                                             ; preds = %1097
  %1099 = load double, ptr %106, align 8, !tbaa !15
  %1100 = fpext double %1099 to x86_fp80
  %1101 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1100)
          to label %1102 unwind label %1119

1102:                                             ; preds = %1098
  br i1 %1101, label %1103, label %1123

1103:                                             ; preds = %1102
  %1104 = load double, ptr %106, align 8, !tbaa !15
  %1105 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %1106 = fcmp oeq double %1104, %1105
  br i1 %1106, label %1107, label %1123

1107:                                             ; preds = %1103
  store i8 1, ptr %108, align 1, !tbaa !11
  br label %1138

1108:                                             ; preds = %1075, %1061, %1032
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #6
  br label %1109

1109:                                             ; preds = %1108, %1028
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %1110

1110:                                             ; preds = %1109, %1024
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  br label %1240

1111:                                             ; preds = %1079
  %1112 = landingpad { ptr, i32 }
          cleanup
  %1113 = extractvalue { ptr, i32 } %1112, 0
  store ptr %1113, ptr %4, align 8
  %1114 = extractvalue { ptr, i32 } %1112, 1
  store i32 %1114, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #6
  br label %1184

1115:                                             ; preds = %1088, %1082
  %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
  br label %1183

1119:                                             ; preds = %1141, %1127, %1098, %1091
  %1120 = landingpad { ptr, i32 }
          cleanup
  %1121 = extractvalue { ptr, i32 } %1120, 0
  store ptr %1121, ptr %4, align 8
  %1122 = extractvalue { ptr, i32 } %1120, 1
  store i32 %1122, ptr %5, align 4
  br label %1182

1123:                                             ; preds = %1103, %1102, %1097
  %1124 = load double, ptr %107, align 8, !tbaa !15
  %1125 = fcmp olt double %1124, 0x3D719799812DEA11
  br i1 %1125, label %1126, label %1127

1126:                                             ; preds = %1123
  store i8 1, ptr %108, align 1, !tbaa !11
  br label %1137

1127:                                             ; preds = %1123
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %1128 unwind label %1119

1128:                                             ; preds = %1127
  %1129 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1130 = load double, ptr %106, align 8, !tbaa !15
  %1131 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %109, i32 noundef %1129, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1130, double noundef %1131, i32 noundef 1)
          to label %1132 unwind label %1133

1132:                                             ; preds = %1128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %1137

1133:                                             ; preds = %1128
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %4, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %1182

1137:                                             ; preds = %1132, %1126
  br label %1138

1138:                                             ; preds = %1137, %1107
  %1139 = load i8, ptr %108, align 1, !tbaa !11, !range !13, !noundef !14
  %1140 = trunc i8 %1139 to i1
  br i1 %1140, label %1141, label %1150

1141:                                             ; preds = %1138
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %1142 unwind label %1119

1142:                                             ; preds = %1141
  %1143 = load double, ptr %106, align 8, !tbaa !15
  %1144 = load double, ptr %107, align 8, !tbaa !15
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %110, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1143, double noundef %1144, i32 noundef 1)
          to label %1145 unwind label %1146

1145:                                             ; preds = %1142
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #6
  br label %1150

1146:                                             ; preds = %1142
  %1147 = landingpad { ptr, i32 }
          cleanup
  %1148 = extractvalue { ptr, i32 } %1147, 0
  store ptr %1148, ptr %4, align 8
  %1149 = extractvalue { ptr, i32 } %1147, 1
  store i32 %1149, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #6
  br label %1182

1150:                                             ; preds = %1145, %1138
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #6
  %1151 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %1153 unwind label %1185

1153:                                             ; preds = %1150
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #6
  %1154 = call noundef double @_ZN4gcem7erf_invIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef -1) #6
  store double %1154, ptr %113, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #6
  %1155 = load double, ptr %113, align 8, !tbaa !15
  %1156 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %1157 = fneg double %1156
  %1158 = fsub double %1155, %1157
  %1159 = invoke noundef double @_ZSt3absd(double noundef %1158)
          to label %1160 unwind label %1189

1160:                                             ; preds = %1153
  %1161 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %1162 = fneg double %1161
  %1163 = invoke noundef double @_ZSt3absd(double noundef %1162)
          to label %1164 unwind label %1189

1164:                                             ; preds = %1160
  %1165 = fadd double 1.000000e+00, %1163
  %1166 = fdiv double %1159, %1165
  store double %1166, ptr %114, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #6
  store i8 0, ptr %115, align 1, !tbaa !11
  %1167 = load double, ptr %113, align 8, !tbaa !15
  %1168 = fpext double %1167 to x86_fp80
  %1169 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %1168)
          to label %1170 unwind label %1193

1170:                                             ; preds = %1164
  br i1 %1169, label %1197, label %1171

1171:                                             ; preds = %1170
  %1172 = load double, ptr %113, align 8, !tbaa !15
  %1173 = fpext double %1172 to x86_fp80
  %1174 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %1173)
          to label %1175 unwind label %1193

1175:                                             ; preds = %1171
  br i1 %1174, label %1176, label %1197

1176:                                             ; preds = %1175
  %1177 = load double, ptr %113, align 8, !tbaa !15
  %1178 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %1179 = fneg double %1178
  %1180 = fcmp oeq double %1177, %1179
  br i1 %1180, label %1181, label %1197

1181:                                             ; preds = %1176
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1213

1182:                                             ; preds = %1146, %1133, %1119
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #6
  br label %1183

1183:                                             ; preds = %1182, %1115
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #6
  br label %1184

1184:                                             ; preds = %1183, %1111
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #6
  br label %1240

1185:                                             ; preds = %1150
  %1186 = landingpad { ptr, i32 }
          cleanup
  %1187 = extractvalue { ptr, i32 } %1186, 0
  store ptr %1187, ptr %4, align 8
  %1188 = extractvalue { ptr, i32 } %1186, 1
  store i32 %1188, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #6
  br label %1230

1189:                                             ; preds = %1160, %1153
  %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
  br label %1229

1193:                                             ; preds = %1216, %1201, %1171, %1164
  %1194 = landingpad { ptr, i32 }
          cleanup
  %1195 = extractvalue { ptr, i32 } %1194, 0
  store ptr %1195, ptr %4, align 8
  %1196 = extractvalue { ptr, i32 } %1194, 1
  store i32 %1196, ptr %5, align 4
  br label %1228

1197:                                             ; preds = %1176, %1175, %1170
  %1198 = load double, ptr %114, align 8, !tbaa !15
  %1199 = fcmp olt double %1198, 0x3D719799812DEA11
  br i1 %1199, label %1200, label %1201

1200:                                             ; preds = %1197
  store i8 1, ptr %115, align 1, !tbaa !11
  br label %1212

1201:                                             ; preds = %1197
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1202 unwind label %1193

1202:                                             ; preds = %1201
  %1203 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1204 = load double, ptr %113, align 8, !tbaa !15
  %1205 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %1206 = fneg double %1205
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %116, i32 noundef %1203, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1204, double noundef %1206, i32 noundef -1)
          to label %1207 unwind label %1208

1207:                                             ; preds = %1202
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #6
  br label %1212

1208:                                             ; preds = %1202
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %4, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #6
  br label %1228

1212:                                             ; preds = %1207, %1200
  br label %1213

1213:                                             ; preds = %1212, %1181
  %1214 = load i8, ptr %115, align 1, !tbaa !11, !range !13, !noundef !14
  %1215 = trunc i8 %1214 to i1
  br i1 %1215, label %1216, label %1225

1216:                                             ; preds = %1213
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1217 unwind label %1193

1217:                                             ; preds = %1216
  %1218 = load double, ptr %113, align 8, !tbaa !15
  %1219 = load double, ptr %114, align 8, !tbaa !15
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %117, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %1218, double noundef %1219, i32 noundef -1)
          to label %1220 unwind label %1221

1220:                                             ; preds = %1217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #6
  br label %1225

1221:                                             ; preds = %1217
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %4, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #6
  br label %1228

1225:                                             ; preds = %1220, %1213
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %1226 unwind label %1231

1226:                                             ; preds = %1225
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %118)
          to label %1227 unwind label %1235

1227:                                             ; preds = %1226
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #6
  ret i32 0

1228:                                             ; preds = %1221, %1208, %1193
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #6
  br label %1229

1229:                                             ; preds = %1228, %1189
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  br label %1230

1230:                                             ; preds = %1229, %1185
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #6
  br label %1240

1231:                                             ; preds = %1225
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %4, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %5, align 4
  br label %1239

1235:                                             ; preds = %1226
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %4, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #6
  br label %1239

1239:                                             ; preds = %1235, %1231
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #6
  br label %1240

1240:                                             ; preds = %1239, %1230, %1184, %1110, %1023, %945, %865, %803, %738, %673, %608, %543, %478, %413, %348, %283, %218, %153
  %1241 = load ptr, ptr %4, align 8
  %1242 = load i32, ptr %5, align 4
  %1243 = insertvalue { ptr, i32 } poison, ptr %1241, 0
  %1244 = insertvalue { ptr, i32 } %1243, i32 %1242, 1
  resume { ptr, i32 } %1244
}

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_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: 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_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 @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem7erf_invIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

attributes #0 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"double", !7, i64 0}


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

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

@GCEM_TEST_NUMBER = external dso_local local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [14 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
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %2)
          to label %69 unwind label %85

69:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %70 unwind label %87

70:                                               ; preds = %69
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #6
  %71 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %72 = add nsw i32 %71, 1
  store i32 %72, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %73 unwind label %90

73:                                               ; preds = %70
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  %74 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFFFE8D6209AFCBE6) #6
  %75 = fadd x86_fp80 %74, 0xK4000C000000000000000
  %76 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %75)
  %77 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC000C000000000000000)
  %78 = fadd x86_fp80 %77, 0xK3FFF8000000000000000
  %79 = fdiv x86_fp80 %76, %78
  %80 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %74)
  br i1 %80, label %94, label %81

81:                                               ; preds = %73
  %82 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %74)
  %83 = fcmp oeq x86_fp80 %74, 0xKC000C000000000000000
  %or.cond = and i1 %83, %82
  %84 = fcmp olt x86_fp80 %79, 0xK3FD78CBCCC096F508800
  %or.cond322 = or i1 %84, %or.cond
  br i1 %or.cond322, label %100, label %95

85:                                               ; preds = %0
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %89

87:                                               ; preds = %69
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #6
  br label %89

89:                                               ; preds = %87, %85
  %.pn = phi { ptr, i32 } [ %88, %87 ], [ %86, %85 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #6
  br label %604

90:                                               ; preds = %70
  %91 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  br label %119

92:                                               ; preds = %100, %95
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %118

94:                                               ; preds = %73
  %.old = fcmp olt x86_fp80 %79, 0xK3FD78CBCCC096F508800
  br i1 %.old, label %100, label %95

95:                                               ; preds = %81, %94
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %96 unwind label %92

96:                                               ; preds = %95
  %97 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %5, i32 noundef %97, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %74, x86_fp80 noundef 0xKC000C000000000000000, x86_fp80 noundef 0xKBFFEFFFE8D6209AFCBE6)
          to label %.critedge unwind label %98

98:                                               ; preds = %96
  %99 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %118

100:                                              ; preds = %81, %94
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %101 unwind label %92

101:                                              ; preds = %100
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %74, x86_fp80 noundef %79, x86_fp80 noundef 0xKBFFEFFFE8D6209AFCBE6)
          to label %.critedge unwind label %102

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

.critedge:                                        ; preds = %101, %96
  %.sink = phi ptr [ %5, %96 ], [ %6, %101 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  %104 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %105 = add nsw i32 %104, 1
  store i32 %105, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %106 unwind label %120

106:                                              ; preds = %.critedge
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  %107 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFFE5547A64DF5361) #6
  %108 = fadd x86_fp80 %107, 0xK4000A000000000000000
  %109 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %108)
  %110 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC000A000000000000000)
  %111 = fadd x86_fp80 %110, 0xK3FFF8000000000000000
  %112 = fdiv x86_fp80 %109, %111
  %113 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %107)
  br i1 %113, label %124, label %114

114:                                              ; preds = %106
  %115 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %107)
  %116 = fcmp oeq x86_fp80 %107, 0xKC000A000000000000000
  %or.cond3 = and i1 %116, %115
  %117 = fcmp olt x86_fp80 %112, 0xK3FD78CBCCC096F508800
  %or.cond324 = or i1 %117, %or.cond3
  br i1 %or.cond324, label %130, label %125

118:                                              ; preds = %102, %98, %92
  %.pn241 = phi { ptr, i32 } [ %103, %102 ], [ %93, %92 ], [ %99, %98 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %119

119:                                              ; preds = %118, %90
  %.pn241.pn = phi { ptr, i32 } [ %.pn241, %118 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %604

120:                                              ; preds = %.critedge
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  br label %149

122:                                              ; preds = %130, %125
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %148

124:                                              ; preds = %106
  %.old323 = fcmp olt x86_fp80 %112, 0xK3FD78CBCCC096F508800
  br i1 %.old323, label %130, label %125

125:                                              ; preds = %114, %124
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %126 unwind label %122

126:                                              ; preds = %125
  %127 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %9, i32 noundef %127, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %107, x86_fp80 noundef 0xKC000A000000000000000, x86_fp80 noundef 0xKBFFEFFE5547A64DF5361)
          to label %.critedge293 unwind label %128

128:                                              ; preds = %126
  %129 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %148

130:                                              ; preds = %114, %124
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %131 unwind label %122

131:                                              ; preds = %130
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %107, x86_fp80 noundef %112, x86_fp80 noundef 0xKBFFEFFE5547A64DF5361)
          to label %.critedge293 unwind label %132

132:                                              ; preds = %131
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %148

.critedge293:                                     ; preds = %131, %126
  %.sink353 = phi ptr [ %9, %126 ], [ %10, %131 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink353) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  %134 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %136 unwind label %150

136:                                              ; preds = %.critedge293
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  %137 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFF458A3874F4908B) #6
  %138 = fadd x86_fp80 %137, 0xK4000870A3D70A3D70A3D
  %139 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %138)
  %140 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC000870A3D70A3D70A3D)
  %141 = fadd x86_fp80 %140, 0xK3FFF8000000000000000
  %142 = fdiv x86_fp80 %139, %141
  %143 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %137)
  br i1 %143, label %154, label %144

144:                                              ; preds = %136
  %145 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %137)
  %146 = fcmp oeq x86_fp80 %137, 0xKC000870A3D70A3D70A3D
  %or.cond5 = and i1 %146, %145
  %147 = fcmp olt x86_fp80 %142, 0xK3FD78CBCCC096F508800
  %or.cond326 = or i1 %147, %or.cond5
  br i1 %or.cond326, label %160, label %155

148:                                              ; preds = %132, %128, %122
  %.pn244 = phi { ptr, i32 } [ %133, %132 ], [ %123, %122 ], [ %129, %128 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %149

149:                                              ; preds = %148, %120
  %.pn244.pn = phi { ptr, i32 } [ %.pn244, %148 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %604

150:                                              ; preds = %.critedge293
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  br label %179

152:                                              ; preds = %160, %155
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %178

154:                                              ; preds = %136
  %.old325 = fcmp olt x86_fp80 %142, 0xK3FD78CBCCC096F508800
  br i1 %.old325, label %160, label %155

155:                                              ; preds = %144, %154
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %156 unwind label %152

156:                                              ; preds = %155
  %157 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %13, i32 noundef %157, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %137, x86_fp80 noundef 0xKC000870A3D70A3D70A3D, x86_fp80 noundef 0xKBFFEFF458A3874F4908B)
          to label %.critedge295 unwind label %158

158:                                              ; preds = %156
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %178

160:                                              ; preds = %144, %154
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %161 unwind label %152

161:                                              ; preds = %160
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %137, x86_fp80 noundef %142, x86_fp80 noundef 0xKBFFEFF458A3874F4908B)
          to label %.critedge295 unwind label %162

162:                                              ; preds = %161
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %178

.critedge295:                                     ; preds = %161, %156
  %.sink354 = phi ptr [ %13, %156 ], [ %14, %161 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink354) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  %164 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %166 unwind label %180

166:                                              ; preds = %.critedge295
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  %167 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFF0AC544E2DBFC9D) #6
  %168 = fadd x86_fp80 %167, 0xK40008333333333333333
  %169 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %168)
  %170 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKC0008333333333333333)
  %171 = fadd x86_fp80 %170, 0xK3FFF8000000000000000
  %172 = fdiv x86_fp80 %169, %171
  %173 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %167)
  br i1 %173, label %184, label %174

174:                                              ; preds = %166
  %175 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %167)
  %176 = fcmp oeq x86_fp80 %167, 0xKC0008333333333333333
  %or.cond7 = and i1 %176, %175
  %177 = fcmp olt x86_fp80 %172, 0xK3FD78CBCCC096F508800
  %or.cond328 = or i1 %177, %or.cond7
  br i1 %or.cond328, label %190, label %185

178:                                              ; preds = %162, %158, %152
  %.pn247 = phi { ptr, i32 } [ %163, %162 ], [ %153, %152 ], [ %159, %158 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %179

179:                                              ; preds = %178, %150
  %.pn247.pn = phi { ptr, i32 } [ %.pn247, %178 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %604

180:                                              ; preds = %.critedge295
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  br label %209

182:                                              ; preds = %190, %185
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %208

184:                                              ; preds = %166
  %.old327 = fcmp olt x86_fp80 %172, 0xK3FD78CBCCC096F508800
  br i1 %.old327, label %190, label %185

185:                                              ; preds = %174, %184
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %186 unwind label %182

186:                                              ; preds = %185
  %187 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %17, i32 noundef %187, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %167, x86_fp80 noundef 0xKC0008333333333333333, x86_fp80 noundef 0xKBFFEFF0AC544E2DBFC9D)
          to label %.critedge297 unwind label %188

188:                                              ; preds = %186
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %208

190:                                              ; preds = %174, %184
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %191 unwind label %182

191:                                              ; preds = %190
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %167, x86_fp80 noundef %172, x86_fp80 noundef 0xKBFFEFF0AC544E2DBFC9D)
          to label %.critedge297 unwind label %192

192:                                              ; preds = %191
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %208

.critedge297:                                     ; preds = %191, %186
  %.sink355 = phi ptr [ %17, %186 ], [ %18, %191 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink355) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  %194 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %195 = add nsw i32 %194, 1
  store i32 %195, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %196 unwind label %210

196:                                              ; preds = %.critedge297
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  %197 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEEF1B2509B969D0F6) #6
  %198 = fadd x86_fp80 %197, 0xK3FFFA666666666666666
  %199 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %198)
  %200 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xKBFFFA666666666666666)
  %201 = fadd x86_fp80 %200, 0xK3FFF8000000000000000
  %202 = fdiv x86_fp80 %199, %201
  %203 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %197)
  br i1 %203, label %214, label %204

204:                                              ; preds = %196
  %205 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %197)
  %206 = fcmp oeq x86_fp80 %197, 0xKBFFFA666666666666666
  %or.cond9 = and i1 %206, %205
  %207 = fcmp olt x86_fp80 %202, 0xK3FD78CBCCC096F508800
  %or.cond330 = or i1 %207, %or.cond9
  br i1 %or.cond330, label %220, label %215

208:                                              ; preds = %192, %188, %182
  %.pn250 = phi { ptr, i32 } [ %193, %192 ], [ %183, %182 ], [ %189, %188 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %209

209:                                              ; preds = %208, %180
  %.pn250.pn = phi { ptr, i32 } [ %.pn250, %208 ], [ %181, %180 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %604

210:                                              ; preds = %.critedge297
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  br label %238

212:                                              ; preds = %220, %215
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %237

214:                                              ; preds = %196
  %.old329 = fcmp olt x86_fp80 %202, 0xK3FD78CBCCC096F508800
  br i1 %.old329, label %220, label %215

215:                                              ; preds = %204, %214
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %216 unwind label %212

216:                                              ; preds = %215
  %217 = 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 %217, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %197, x86_fp80 noundef 0xKBFFFA666666666666666, x86_fp80 noundef 0xKBFFEEF1B2509B969D0F6)
          to label %.critedge299 unwind label %218

218:                                              ; preds = %216
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %237

220:                                              ; preds = %204, %214
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %221 unwind label %212

221:                                              ; preds = %220
  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 %197, x86_fp80 noundef %202, x86_fp80 noundef 0xKBFFEEF1B2509B969D0F6)
          to label %.critedge299 unwind label %222

222:                                              ; preds = %221
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %237

.critedge299:                                     ; preds = %221, %216
  %.sink356 = phi ptr [ %21, %216 ], [ %22, %221 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink356) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  %224 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %226 unwind label %239

226:                                              ; preds = %.critedge299
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  %227 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #6
  %228 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %227)
  %229 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK00000000000000000000)
  %230 = fadd x86_fp80 %229, 0xK3FFF8000000000000000
  %231 = fdiv x86_fp80 %228, %230
  %232 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %227)
  br i1 %232, label %243, label %233

233:                                              ; preds = %226
  %234 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %227)
  %235 = fcmp oeq x86_fp80 %227, 0xK00000000000000000000
  %or.cond11 = and i1 %235, %234
  %236 = fcmp olt x86_fp80 %231, 0xK3FD78CBCCC096F508800
  %or.cond332 = or i1 %236, %or.cond11
  br i1 %or.cond332, label %249, label %244

237:                                              ; preds = %222, %218, %212
  %.pn253 = phi { ptr, i32 } [ %223, %222 ], [ %213, %212 ], [ %219, %218 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %238

238:                                              ; preds = %237, %210
  %.pn253.pn = phi { ptr, i32 } [ %.pn253, %237 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %604

239:                                              ; preds = %.critedge299
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  br label %268

241:                                              ; preds = %249, %244
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %267

243:                                              ; preds = %226
  %.old331 = fcmp olt x86_fp80 %231, 0xK3FD78CBCCC096F508800
  br i1 %.old331, label %249, label %244

244:                                              ; preds = %233, %243
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %245 unwind label %241

245:                                              ; preds = %244
  %246 = 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 %246, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %227, x86_fp80 noundef 0xK00000000000000000000, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge301 unwind label %247

247:                                              ; preds = %245
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %267

249:                                              ; preds = %233, %243
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %250 unwind label %241

250:                                              ; preds = %249
  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 %227, x86_fp80 noundef %231, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge301 unwind label %251

251:                                              ; preds = %250
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %267

.critedge301:                                     ; preds = %250, %245
  %.sink357 = phi ptr [ %25, %245 ], [ %26, %250 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink357) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  %253 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %254 = add nsw i32 %253, 1
  store i32 %254, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %255 unwind label %269

255:                                              ; preds = %.critedge301
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  %256 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEEF1B2509B969D0F6) #6
  %257 = fadd x86_fp80 %256, 0xKBFFFA666666666666666
  %258 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %257)
  %259 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFFA666666666666666)
  %260 = fadd x86_fp80 %259, 0xK3FFF8000000000000000
  %261 = fdiv x86_fp80 %258, %260
  %262 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %256)
  br i1 %262, label %273, label %263

263:                                              ; preds = %255
  %264 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %256)
  %265 = fcmp oeq x86_fp80 %256, 0xK3FFFA666666666666666
  %or.cond13 = and i1 %265, %264
  %266 = fcmp olt x86_fp80 %261, 0xK3FD78CBCCC096F508800
  %or.cond334 = or i1 %266, %or.cond13
  br i1 %or.cond334, label %279, label %274

267:                                              ; preds = %251, %247, %241
  %.pn256 = phi { ptr, i32 } [ %252, %251 ], [ %242, %241 ], [ %248, %247 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %268

268:                                              ; preds = %267, %239
  %.pn256.pn = phi { ptr, i32 } [ %.pn256, %267 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %604

269:                                              ; preds = %.critedge301
  %270 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  br label %298

271:                                              ; preds = %279, %274
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %297

273:                                              ; preds = %255
  %.old333 = fcmp olt x86_fp80 %261, 0xK3FD78CBCCC096F508800
  br i1 %.old333, label %279, label %274

274:                                              ; preds = %263, %273
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %275 unwind label %271

275:                                              ; preds = %274
  %276 = 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 %276, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %256, x86_fp80 noundef 0xK3FFFA666666666666666, x86_fp80 noundef 0xK3FFEEF1B2509B969D0F6)
          to label %.critedge303 unwind label %277

277:                                              ; preds = %275
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %297

279:                                              ; preds = %263, %273
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %280 unwind label %271

280:                                              ; preds = %279
  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 %256, x86_fp80 noundef %261, x86_fp80 noundef 0xK3FFEEF1B2509B969D0F6)
          to label %.critedge303 unwind label %281

281:                                              ; preds = %280
  %282 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %297

.critedge303:                                     ; preds = %280, %275
  %.sink358 = phi ptr [ %29, %275 ], [ %30, %280 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink358) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  %283 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %284 = add nsw i32 %283, 1
  store i32 %284, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %285 unwind label %299

285:                                              ; preds = %.critedge303
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  %286 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFF0AC544E2DBFC9D) #6
  %287 = fadd x86_fp80 %286, 0xKC0008333333333333333
  %288 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %287)
  %289 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK40008333333333333333)
  %290 = fadd x86_fp80 %289, 0xK3FFF8000000000000000
  %291 = fdiv x86_fp80 %288, %290
  %292 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %286)
  br i1 %292, label %303, label %293

293:                                              ; preds = %285
  %294 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %286)
  %295 = fcmp oeq x86_fp80 %286, 0xK40008333333333333333
  %or.cond15 = and i1 %295, %294
  %296 = fcmp olt x86_fp80 %291, 0xK3FD78CBCCC096F508800
  %or.cond336 = or i1 %296, %or.cond15
  br i1 %or.cond336, label %309, label %304

297:                                              ; preds = %281, %277, %271
  %.pn259 = phi { ptr, i32 } [ %282, %281 ], [ %272, %271 ], [ %278, %277 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %298

298:                                              ; preds = %297, %269
  %.pn259.pn = phi { ptr, i32 } [ %.pn259, %297 ], [ %270, %269 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  br label %604

299:                                              ; preds = %.critedge303
  %300 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  br label %328

301:                                              ; preds = %309, %304
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %327

303:                                              ; preds = %285
  %.old335 = fcmp olt x86_fp80 %291, 0xK3FD78CBCCC096F508800
  br i1 %.old335, label %309, label %304

304:                                              ; preds = %293, %303
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %305 unwind label %301

305:                                              ; preds = %304
  %306 = 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 %306, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %286, x86_fp80 noundef 0xK40008333333333333333, x86_fp80 noundef 0xK3FFEFF0AC544E2DBFC9D)
          to label %.critedge305 unwind label %307

307:                                              ; preds = %305
  %308 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %327

309:                                              ; preds = %293, %303
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %310 unwind label %301

310:                                              ; preds = %309
  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 %286, x86_fp80 noundef %291, x86_fp80 noundef 0xK3FFEFF0AC544E2DBFC9D)
          to label %.critedge305 unwind label %311

311:                                              ; preds = %310
  %312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %327

.critedge305:                                     ; preds = %310, %305
  %.sink359 = phi ptr [ %33, %305 ], [ %34, %310 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink359) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  %313 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %314 = add nsw i32 %313, 1
  store i32 %314, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %315 unwind label %329

315:                                              ; preds = %.critedge305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  %316 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFF458A3874F4908B) #6
  %317 = fadd x86_fp80 %316, 0xKC000870A3D70A3D70A3D
  %318 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %317)
  %319 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK4000870A3D70A3D70A3D)
  %320 = fadd x86_fp80 %319, 0xK3FFF8000000000000000
  %321 = fdiv x86_fp80 %318, %320
  %322 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %316)
  br i1 %322, label %333, label %323

323:                                              ; preds = %315
  %324 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %316)
  %325 = fcmp oeq x86_fp80 %316, 0xK4000870A3D70A3D70A3D
  %or.cond17 = and i1 %325, %324
  %326 = fcmp olt x86_fp80 %321, 0xK3FD78CBCCC096F508800
  %or.cond338 = or i1 %326, %or.cond17
  br i1 %or.cond338, label %339, label %334

327:                                              ; preds = %311, %307, %301
  %.pn262 = phi { ptr, i32 } [ %312, %311 ], [ %302, %301 ], [ %308, %307 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %328

328:                                              ; preds = %327, %299
  %.pn262.pn = phi { ptr, i32 } [ %.pn262, %327 ], [ %300, %299 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br label %604

329:                                              ; preds = %.critedge305
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  br label %358

331:                                              ; preds = %339, %334
  %332 = landingpad { ptr, i32 }
          cleanup
  br label %357

333:                                              ; preds = %315
  %.old337 = fcmp olt x86_fp80 %321, 0xK3FD78CBCCC096F508800
  br i1 %.old337, label %339, label %334

334:                                              ; preds = %323, %333
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %335 unwind label %331

335:                                              ; preds = %334
  %336 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %37, i32 noundef %336, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %316, x86_fp80 noundef 0xK4000870A3D70A3D70A3D, x86_fp80 noundef 0xK3FFEFF458A3874F4908B)
          to label %.critedge307 unwind label %337

337:                                              ; preds = %335
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %357

339:                                              ; preds = %323, %333
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %340 unwind label %331

340:                                              ; preds = %339
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %316, x86_fp80 noundef %321, x86_fp80 noundef 0xK3FFEFF458A3874F4908B)
          to label %.critedge307 unwind label %341

341:                                              ; preds = %340
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %357

.critedge307:                                     ; preds = %340, %335
  %.sink360 = phi ptr [ %37, %335 ], [ %38, %340 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink360) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  %343 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %345 unwind label %359

345:                                              ; preds = %.critedge307
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  %346 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFFE5547A64DF5361) #6
  %347 = fadd x86_fp80 %346, 0xKC000A000000000000000
  %348 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %347)
  %349 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK4000A000000000000000)
  %350 = fadd x86_fp80 %349, 0xK3FFF8000000000000000
  %351 = fdiv x86_fp80 %348, %350
  %352 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %346)
  br i1 %352, label %363, label %353

353:                                              ; preds = %345
  %354 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %346)
  %355 = fcmp oeq x86_fp80 %346, 0xK4000A000000000000000
  %or.cond19 = and i1 %355, %354
  %356 = fcmp olt x86_fp80 %351, 0xK3FD78CBCCC096F508800
  %or.cond340 = or i1 %356, %or.cond19
  br i1 %or.cond340, label %369, label %364

357:                                              ; preds = %341, %337, %331
  %.pn265 = phi { ptr, i32 } [ %342, %341 ], [ %332, %331 ], [ %338, %337 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %358

358:                                              ; preds = %357, %329
  %.pn265.pn = phi { ptr, i32 } [ %.pn265, %357 ], [ %330, %329 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  br label %604

359:                                              ; preds = %.critedge307
  %360 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  br label %388

361:                                              ; preds = %369, %364
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %387

363:                                              ; preds = %345
  %.old339 = fcmp olt x86_fp80 %351, 0xK3FD78CBCCC096F508800
  br i1 %.old339, label %369, label %364

364:                                              ; preds = %353, %363
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %365 unwind label %361

365:                                              ; preds = %364
  %366 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %41, i32 noundef %366, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %346, x86_fp80 noundef 0xK4000A000000000000000, x86_fp80 noundef 0xK3FFEFFE5547A64DF5361)
          to label %.critedge309 unwind label %367

367:                                              ; preds = %365
  %368 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %387

369:                                              ; preds = %353, %363
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %370 unwind label %361

370:                                              ; preds = %369
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %42, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %346, x86_fp80 noundef %351, x86_fp80 noundef 0xK3FFEFFE5547A64DF5361)
          to label %.critedge309 unwind label %371

371:                                              ; preds = %370
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %387

.critedge309:                                     ; preds = %370, %365
  %.sink361 = phi ptr [ %41, %365 ], [ %42, %370 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink361) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  %373 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %375 unwind label %389

375:                                              ; preds = %.critedge309
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  %376 = call noundef x86_fp80 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFEFFFE8D6209AFCBE6) #6
  %377 = fadd x86_fp80 %376, 0xKC000C000000000000000
  %378 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %377)
  %379 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK4000C000000000000000)
  %380 = fadd x86_fp80 %379, 0xK3FFF8000000000000000
  %381 = fdiv x86_fp80 %378, %380
  %382 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %376)
  br i1 %382, label %393, label %383

383:                                              ; preds = %375
  %384 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %376)
  %385 = fcmp oeq x86_fp80 %376, 0xK4000C000000000000000
  %or.cond21 = and i1 %385, %384
  %386 = fcmp olt x86_fp80 %381, 0xK3FD78CBCCC096F508800
  %or.cond342 = or i1 %386, %or.cond21
  br i1 %or.cond342, label %399, label %394

387:                                              ; preds = %371, %367, %361
  %.pn268 = phi { ptr, i32 } [ %372, %371 ], [ %362, %361 ], [ %368, %367 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %388

388:                                              ; preds = %387, %359
  %.pn268.pn = phi { ptr, i32 } [ %.pn268, %387 ], [ %360, %359 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  br label %604

389:                                              ; preds = %.critedge309
  %390 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  br label %418

391:                                              ; preds = %399, %394
  %392 = landingpad { ptr, i32 }
          cleanup
  br label %417

393:                                              ; preds = %375
  %.old341 = fcmp olt x86_fp80 %381, 0xK3FD78CBCCC096F508800
  br i1 %.old341, label %399, label %394

394:                                              ; preds = %383, %393
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %395 unwind label %391

395:                                              ; preds = %394
  %396 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %45, i32 noundef %396, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %376, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFEFFFE8D6209AFCBE6)
          to label %.critedge311 unwind label %397

397:                                              ; preds = %395
  %398 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %417

399:                                              ; preds = %383, %393
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %400 unwind label %391

400:                                              ; preds = %399
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %46, i32 noundef 3, i32 noundef 6, i32 noundef 18, x86_fp80 noundef %376, x86_fp80 noundef %381, x86_fp80 noundef 0xK3FFEFFFE8D6209AFCBE6)
          to label %.critedge311 unwind label %401

401:                                              ; preds = %400
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %417

.critedge311:                                     ; preds = %400, %395
  %.sink362 = phi ptr [ %45, %395 ], [ %46, %400 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink362) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  %403 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %404 = add nsw i32 %403, 1
  store i32 %404, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %405 unwind label %419

405:                                              ; preds = %.critedge311
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  %406 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %407 = call noundef double @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %406) #6
  %408 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %409 = fsub double %407, %408
  %410 = call noundef double @_ZSt3absd(double noundef %409)
  %411 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %412 = call noundef double @_ZSt3absd(double noundef %411)
  %413 = fadd double %412, 1.000000e+00
  %414 = fdiv double %410, %413
  %415 = fpext double %407 to x86_fp80
  %416 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %415)
  br i1 %416, label %439, label %423

417:                                              ; preds = %401, %397, %391
  %.pn271 = phi { ptr, i32 } [ %402, %401 ], [ %392, %391 ], [ %398, %397 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %418

418:                                              ; preds = %417, %389
  %.pn271.pn = phi { ptr, i32 } [ %.pn271, %417 ], [ %390, %389 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  br label %604

419:                                              ; preds = %.critedge311
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  br label %458

421:                                              ; preds = %439, %432
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %457

423:                                              ; preds = %405
  %424 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %415)
  br i1 %424, label %431, label %425

425:                                              ; preds = %423
  %426 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %415)
  br i1 %426, label %427, label %431

427:                                              ; preds = %425
  %428 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %429 = fcmp oeq double %407, %428
  %430 = fcmp olt double %414, 0x3D719799812DEA11
  %or.cond344 = or i1 %430, %429
  br i1 %or.cond344, label %439, label %432

431:                                              ; preds = %425, %423
  %.old343 = fcmp olt double %414, 0x3D719799812DEA11
  br i1 %.old343, label %439, label %432

432:                                              ; preds = %427, %431
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %433 unwind label %421

433:                                              ; preds = %432
  %434 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %435 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %436 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %49, i32 noundef %434, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %407, double noundef %435, double noundef %436)
          to label %.critedge313 unwind label %437

437:                                              ; preds = %433
  %438 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %457

439:                                              ; preds = %405, %427, %431
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %440 unwind label %421

440:                                              ; preds = %439
  %441 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %50, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %407, double noundef %414, double noundef %441)
          to label %.critedge313 unwind label %442

442:                                              ; preds = %440
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %457

.critedge313:                                     ; preds = %440, %433
  %.sink363 = phi ptr [ %49, %433 ], [ %50, %440 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink363) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  %444 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %446 unwind label %459

446:                                              ; preds = %.critedge313
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  %447 = call noundef double @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef -1.100000e+00) #6
  %448 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %449 = fsub double %447, %448
  %450 = call noundef double @_ZSt3absd(double noundef %449)
  %451 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %452 = call noundef double @_ZSt3absd(double noundef %451)
  %453 = fadd double %452, 1.000000e+00
  %454 = fdiv double %450, %453
  %455 = fpext double %447 to x86_fp80
  %456 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %455)
  br i1 %456, label %478, label %463

457:                                              ; preds = %442, %437, %421
  %.pn274 = phi { ptr, i32 } [ %443, %442 ], [ %422, %421 ], [ %438, %437 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %458

458:                                              ; preds = %457, %419
  %.pn274.pn = phi { ptr, i32 } [ %.pn274, %457 ], [ %420, %419 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  br label %604

459:                                              ; preds = %.critedge313
  %460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  br label %496

461:                                              ; preds = %478, %472
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %495

463:                                              ; preds = %446
  %464 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %455)
  br i1 %464, label %471, label %465

465:                                              ; preds = %463
  %466 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %455)
  br i1 %466, label %467, label %471

467:                                              ; preds = %465
  %468 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %469 = fcmp oeq double %447, %468
  %470 = fcmp olt double %454, 0x3D719799812DEA11
  %or.cond346 = or i1 %470, %469
  br i1 %or.cond346, label %478, label %472

471:                                              ; preds = %465, %463
  %.old345 = fcmp olt double %454, 0x3D719799812DEA11
  br i1 %.old345, label %478, label %472

472:                                              ; preds = %467, %471
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %473 unwind label %461

473:                                              ; preds = %472
  %474 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %475 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %53, i32 noundef %474, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %447, double noundef %475, double noundef -1.100000e+00)
          to label %.critedge315 unwind label %476

476:                                              ; preds = %473
  %477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %495

478:                                              ; preds = %446, %467, %471
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %479 unwind label %461

479:                                              ; preds = %478
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %54, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %447, double noundef %454, double noundef -1.100000e+00)
          to label %.critedge315 unwind label %480

480:                                              ; preds = %479
  %481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %495

.critedge315:                                     ; preds = %479, %473
  %.sink364 = phi ptr [ %53, %473 ], [ %54, %479 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink364) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  %482 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %483 = add nsw i32 %482, 1
  store i32 %483, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %484 unwind label %497

484:                                              ; preds = %.critedge315
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  %485 = call noundef double @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef 1.100000e+00) #6
  %486 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %487 = fsub double %485, %486
  %488 = call noundef double @_ZSt3absd(double noundef %487)
  %489 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %490 = call noundef double @_ZSt3absd(double noundef %489)
  %491 = fadd double %490, 1.000000e+00
  %492 = fdiv double %488, %491
  %493 = fpext double %485 to x86_fp80
  %494 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %493)
  br i1 %494, label %516, label %501

495:                                              ; preds = %480, %476, %461
  %.pn277 = phi { ptr, i32 } [ %481, %480 ], [ %462, %461 ], [ %477, %476 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %496

496:                                              ; preds = %495, %459
  %.pn277.pn = phi { ptr, i32 } [ %.pn277, %495 ], [ %460, %459 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  br label %604

497:                                              ; preds = %.critedge315
  %498 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  br label %540

499:                                              ; preds = %516, %510
  %500 = landingpad { ptr, i32 }
          cleanup
  br label %539

501:                                              ; preds = %484
  %502 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %493)
  br i1 %502, label %509, label %503

503:                                              ; preds = %501
  %504 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %493)
  br i1 %504, label %505, label %509

505:                                              ; preds = %503
  %506 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %507 = fcmp oeq double %485, %506
  %508 = fcmp olt double %492, 0x3D719799812DEA11
  %or.cond348 = or i1 %508, %507
  br i1 %or.cond348, label %516, label %510

509:                                              ; preds = %503, %501
  %.old347 = fcmp olt double %492, 0x3D719799812DEA11
  br i1 %.old347, label %516, label %510

510:                                              ; preds = %505, %509
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %511 unwind label %499

511:                                              ; preds = %510
  %512 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %513 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %57, i32 noundef %512, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %485, double noundef %513, double noundef 1.100000e+00)
          to label %.critedge317 unwind label %514

514:                                              ; preds = %511
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %539

516:                                              ; preds = %484, %505, %509
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %517 unwind label %499

517:                                              ; preds = %516
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %58, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %485, double noundef %492, double noundef 1.100000e+00)
          to label %.critedge317 unwind label %518

518:                                              ; preds = %517
  %519 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  br label %539

.critedge317:                                     ; preds = %517, %511
  %.sink365 = phi ptr [ %57, %511 ], [ %58, %517 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink365) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  %520 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %522 unwind label %541

522:                                              ; preds = %.critedge317
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  %523 = call noundef double @_ZN4gcem7erf_invIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef 1) #6
  %524 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %525 = fsub double %523, %524
  %526 = call noundef double @_ZSt3absd(double noundef %525)
  %527 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %528 = call noundef double @_ZSt3absd(double noundef %527)
  %529 = fadd double %528, 1.000000e+00
  %530 = fdiv double %526, %529
  %531 = fpext double %523 to x86_fp80
  %532 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %531)
  br i1 %532, label %545, label %533

533:                                              ; preds = %522
  %534 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %531)
  br i1 %534, label %535, label %545

535:                                              ; preds = %533
  %536 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %537 = fcmp oeq double %523, %536
  %538 = fcmp olt double %530, 0x3D719799812DEA11
  %or.cond350 = or i1 %538, %537
  br i1 %or.cond350, label %552, label %546

539:                                              ; preds = %518, %514, %499
  %.pn280 = phi { ptr, i32 } [ %519, %518 ], [ %500, %499 ], [ %515, %514 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %540

540:                                              ; preds = %539, %497
  %.pn280.pn = phi { ptr, i32 } [ %.pn280, %539 ], [ %498, %497 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  br label %604

541:                                              ; preds = %.critedge317
  %542 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  br label %578

543:                                              ; preds = %552, %546
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %577

545:                                              ; preds = %533, %522
  %.old349 = fcmp olt double %530, 0x3D719799812DEA11
  br i1 %.old349, label %552, label %546

546:                                              ; preds = %535, %545
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %547 unwind label %543

547:                                              ; preds = %546
  %548 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %549 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %61, i32 noundef %548, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %523, double noundef %549, i32 noundef 1)
          to label %.critedge319 unwind label %550

550:                                              ; preds = %547
  %551 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %577

552:                                              ; preds = %535, %545
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %553 unwind label %543

553:                                              ; preds = %552
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %62, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %523, double noundef %530, i32 noundef 1)
          to label %.critedge319 unwind label %554

554:                                              ; preds = %553
  %555 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %577

.critedge319:                                     ; preds = %553, %547
  %.sink366 = phi ptr [ %61, %547 ], [ %62, %553 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink366) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  %556 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %558 unwind label %579

558:                                              ; preds = %.critedge319
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #6
  %559 = call noundef double @_ZN4gcem7erf_invIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef -1) #6
  %560 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %561 = fadd double %559, %560
  %562 = call noundef double @_ZSt3absd(double noundef %561)
  %563 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %564 = fneg double %563
  %565 = call noundef double @_ZSt3absd(double noundef %564)
  %566 = fadd double %565, 1.000000e+00
  %567 = fdiv double %562, %566
  %568 = fpext double %559 to x86_fp80
  %569 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %568)
  br i1 %569, label %583, label %570

570:                                              ; preds = %558
  %571 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %568)
  br i1 %571, label %572, label %583

572:                                              ; preds = %570
  %573 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %574 = fneg double %573
  %575 = fcmp oeq double %559, %574
  %576 = fcmp olt double %567, 0x3D719799812DEA11
  %or.cond352 = or i1 %576, %575
  br i1 %or.cond352, label %591, label %584

577:                                              ; preds = %554, %550, %543
  %.pn283 = phi { ptr, i32 } [ %555, %554 ], [ %544, %543 ], [ %551, %550 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %578

578:                                              ; preds = %577, %541
  %.pn283.pn = phi { ptr, i32 } [ %.pn283, %577 ], [ %542, %541 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  br label %604

579:                                              ; preds = %.critedge319
  %580 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #6
  br label %598

581:                                              ; preds = %591, %584
  %582 = landingpad { ptr, i32 }
          cleanup
  br label %597

583:                                              ; preds = %570, %558
  %.old351 = fcmp olt double %567, 0x3D719799812DEA11
  br i1 %.old351, label %591, label %584

584:                                              ; preds = %572, %583
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %585 unwind label %581

585:                                              ; preds = %584
  %586 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %587 = call noundef double @_ZNSt14numeric_limitsIdE8infinityEv() #6
  %588 = fneg double %587
  invoke void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %65, i32 noundef %586, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %559, double noundef %588, i32 noundef -1)
          to label %.critedge321 unwind label %589

589:                                              ; preds = %585
  %590 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %597

591:                                              ; preds = %572, %583
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %592 unwind label %581

592:                                              ; preds = %591
  invoke void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %66, i32 noundef 3, i32 noundef 6, i32 noundef 18, double noundef %559, double noundef %567, i32 noundef -1)
          to label %.critedge321 unwind label %593

593:                                              ; preds = %592
  %594 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %597

.critedge321:                                     ; preds = %592, %585
  %.sink367 = phi ptr [ %65, %585 ], [ %66, %592 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink367) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %595 unwind label %599

595:                                              ; preds = %.critedge321
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %67)
          to label %596 unwind label %601

596:                                              ; preds = %595
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #6
  ret i32 0

597:                                              ; preds = %593, %589, %581
  %.pn286 = phi { ptr, i32 } [ %594, %593 ], [ %582, %581 ], [ %590, %589 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %598

598:                                              ; preds = %597, %579
  %.pn286.pn = phi { ptr, i32 } [ %.pn286, %597 ], [ %580, %579 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  br label %604

599:                                              ; preds = %.critedge321
  %600 = landingpad { ptr, i32 }
          cleanup
  br label %603

601:                                              ; preds = %595
  %602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %603

603:                                              ; preds = %601, %599
  %.pn289 = phi { ptr, i32 } [ %602, %601 ], [ %600, %599 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #6
  br label %604

604:                                              ; preds = %603, %598, %578, %540, %496, %458, %418, %388, %358, %328, %298, %268, %238, %209, %179, %149, %119, %89
  %.pn289.pn = phi { ptr, i32 } [ %.pn289, %603 ], [ %.pn286.pn, %598 ], [ %.pn283.pn, %578 ], [ %.pn280.pn, %540 ], [ %.pn277.pn, %496 ], [ %.pn274.pn, %458 ], [ %.pn271.pn, %418 ], [ %.pn268.pn, %388 ], [ %.pn265.pn, %358 ], [ %.pn262.pn, %328 ], [ %.pn259.pn, %298 ], [ %.pn256.pn, %268 ], [ %.pn253.pn, %238 ], [ %.pn250.pn, %209 ], [ %.pn247.pn, %179 ], [ %.pn244.pn, %149 ], [ %.pn241.pn, %119 ], [ %.pn, %89 ]
  resume { ptr, i32 } %.pn289.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 @_ZN4gcem7erf_invIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_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: 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_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 @_ZN4gcem7erf_invIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem7erf_invIiEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(i32 noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_failIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIddiEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

attributes #0 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,ReassociatePass,SROAPass,SimplifyCFGPass