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

; 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 [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [22 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 double, align 8
  %65 = alloca double, align 8
  %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 x86_fp80, align 16
  %86 = alloca x86_fp80, align 16
  %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
  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 %92 unwind label %117

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

93:                                               ; preds = %92
  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
  %94 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %95 = add nsw i32 %94, 1
  store i32 %95, 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 %96 unwind label %126

96:                                               ; preds = %93
  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
  %97 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFBCCCCCCCCCCCCCCCD) #6
  store x86_fp80 %97, ptr %8, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #6
  %98 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %99 = fsub x86_fp80 %98, 0xK3FFBEACC0B6DE4EFC800
  %100 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %99)
          to label %101 unwind label %130

101:                                              ; preds = %96
  %102 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFBEACC0B6DE4EFC800)
          to label %103 unwind label %130

103:                                              ; preds = %101
  %104 = fadd x86_fp80 0xK3FFF8000000000000000, %102
  %105 = fdiv x86_fp80 %100, %104
  store x86_fp80 %105, 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
  %106 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %107 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %106)
          to label %108 unwind label %134

108:                                              ; preds = %103
  br i1 %107, label %138, label %109

109:                                              ; preds = %108
  %110 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %111 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %110)
          to label %112 unwind label %134

112:                                              ; preds = %109
  br i1 %111, label %113, label %138

113:                                              ; preds = %112
  %114 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %115 = fcmp oeq x86_fp80 %114, 0xK3FFBEACC0B6DE4EFC800
  br i1 %115, label %116, label %138

116:                                              ; preds = %113
  store i8 1, ptr %10, align 1, !tbaa !11
  br label %152

117:                                              ; preds = %0
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %4, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %5, align 4
  br label %125

121:                                              ; preds = %92
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %4, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  br label %125

125:                                              ; preds = %121, %117
  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 %964

126:                                              ; preds = %93
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %4, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, 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 %190

130:                                              ; preds = %101, %96
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %4, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %5, align 4
  br label %189

134:                                              ; preds = %155, %142, %109, %103
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %4, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %5, align 4
  br label %188

138:                                              ; preds = %113, %112, %108
  %139 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %140 = fcmp olt x86_fp80 %139, 0xK3FD0B424DC35095CD800
  br i1 %140, label %141, label %142

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

142:                                              ; preds = %138
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %143 unwind label %134

143:                                              ; preds = %142
  %144 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %145 = load x86_fp80, ptr %8, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %11, i32 noundef %144, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %145, x86_fp80 noundef 0xK3FFBEACC0B6DE4EFC800, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFBCCCCCCCCCCCCCCCD)
          to label %146 unwind label %147

146:                                              ; preds = %143
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %151

147:                                              ; preds = %143
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %4, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %188

151:                                              ; preds = %146, %141
  br label %152

152:                                              ; preds = %151, %116
  %153 = load i8, ptr %10, align 1, !tbaa !11, !range !13, !noundef !14
  %154 = trunc i8 %153 to i1
  br i1 %154, label %155, label %164

155:                                              ; preds = %152
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %156 unwind label %134

156:                                              ; preds = %155
  %157 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %158 = load x86_fp80, ptr %9, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %12, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %157, x86_fp80 noundef %158, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFBCCCCCCCCCCCCCCCD)
          to label %159 unwind label %160

159:                                              ; preds = %156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %164

160:                                              ; preds = %156
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %4, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %188

164:                                              ; preds = %159, %152
  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
  %165 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %166 = add nsw i32 %165, 1
  store i32 %166, 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 %167 unwind label %191

167:                                              ; preds = %164
  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
  %168 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  store x86_fp80 %168, ptr %15, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #6
  %169 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %170 = fsub x86_fp80 %169, 0xK3FFEC8F1117242EAA000
  %171 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %170)
          to label %172 unwind label %195

172:                                              ; preds = %167
  %173 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFEC8F1117242EAA000)
          to label %174 unwind label %195

174:                                              ; preds = %172
  %175 = fadd x86_fp80 0xK3FFF8000000000000000, %173
  %176 = fdiv x86_fp80 %171, %175
  store x86_fp80 %176, 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
  %177 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %178 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %177)
          to label %179 unwind label %199

179:                                              ; preds = %174
  br i1 %178, label %203, label %180

180:                                              ; preds = %179
  %181 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %182 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %181)
          to label %183 unwind label %199

183:                                              ; preds = %180
  br i1 %182, label %184, label %203

184:                                              ; preds = %183
  %185 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %186 = fcmp oeq x86_fp80 %185, 0xK3FFEC8F1117242EAA000
  br i1 %186, label %187, label %203

187:                                              ; preds = %184
  store i8 1, ptr %17, align 1, !tbaa !11
  br label %217

188:                                              ; preds = %160, %147, %134
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  br label %189

189:                                              ; preds = %188, %130
  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 %190

190:                                              ; preds = %189, %126
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  br label %964

191:                                              ; preds = %164
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %4, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, 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 %255

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

199:                                              ; preds = %220, %207, %180, %174
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %4, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %5, align 4
  br label %253

203:                                              ; preds = %184, %183, %179
  %204 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %205 = fcmp olt x86_fp80 %204, 0xK3FD0B424DC35095CD800
  br i1 %205, label %206, label %207

206:                                              ; preds = %203
  store i8 1, ptr %17, align 1, !tbaa !11
  br label %216

207:                                              ; preds = %203
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %208 unwind label %199

208:                                              ; preds = %207
  %209 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %210 = load x86_fp80, ptr %15, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %18, i32 noundef %209, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %210, x86_fp80 noundef 0xK3FFEC8F1117242EAA000, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %211 unwind label %212

211:                                              ; preds = %208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %216

212:                                              ; preds = %208
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %4, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %253

216:                                              ; preds = %211, %206
  br label %217

217:                                              ; preds = %216, %187
  %218 = load i8, ptr %17, align 1, !tbaa !11, !range !13, !noundef !14
  %219 = trunc i8 %218 to i1
  br i1 %219, label %220, label %229

220:                                              ; preds = %217
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %221 unwind label %199

221:                                              ; preds = %220
  %222 = load x86_fp80, ptr %15, align 16, !tbaa !9
  %223 = load x86_fp80, ptr %16, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %19, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %222, x86_fp80 noundef %223, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %224 unwind label %225

224:                                              ; preds = %221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %229

225:                                              ; preds = %221
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %4, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %253

229:                                              ; preds = %224, %217
  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
  %230 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %231 = add nsw i32 %230, 1
  store i32 %231, 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 %232 unwind label %256

232:                                              ; preds = %229
  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
  %233 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  store x86_fp80 %233, ptr %22, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #6
  %234 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %235 = fsub x86_fp80 %234, 0xK3FFECCCCCCCCCCCCD000
  %236 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %235)
          to label %237 unwind label %260

237:                                              ; preds = %232
  %238 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFECCCCCCCCCCCCD000)
          to label %239 unwind label %260

239:                                              ; preds = %237
  %240 = fadd x86_fp80 0xK3FFF8000000000000000, %238
  %241 = fdiv x86_fp80 %236, %240
  store x86_fp80 %241, 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
  %242 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %243 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %242)
          to label %244 unwind label %264

244:                                              ; preds = %239
  br i1 %243, label %268, label %245

245:                                              ; preds = %244
  %246 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %247 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %246)
          to label %248 unwind label %264

248:                                              ; preds = %245
  br i1 %247, label %249, label %268

249:                                              ; preds = %248
  %250 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %251 = fcmp oeq x86_fp80 %250, 0xK3FFECCCCCCCCCCCCD000
  br i1 %251, label %252, label %268

252:                                              ; preds = %249
  store i8 1, ptr %24, align 1, !tbaa !11
  br label %282

253:                                              ; preds = %225, %212, %199
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  br label %254

254:                                              ; preds = %253, %195
  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 %255

255:                                              ; preds = %254, %191
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  br label %964

256:                                              ; preds = %229
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %4, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %5, align 4
  call void @_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 %320

260:                                              ; preds = %237, %232
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %4, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %5, align 4
  br label %319

264:                                              ; preds = %285, %272, %245, %239
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %4, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %5, align 4
  br label %318

268:                                              ; preds = %249, %248, %244
  %269 = load x86_fp80, ptr %23, align 16, !tbaa !9
  %270 = fcmp olt x86_fp80 %269, 0xK3FD0B424DC35095CD800
  br i1 %270, label %271, label %272

271:                                              ; preds = %268
  store i8 1, ptr %24, align 1, !tbaa !11
  br label %281

272:                                              ; preds = %268
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %273 unwind label %264

273:                                              ; preds = %272
  %274 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %275 = load x86_fp80, ptr %22, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %25, i32 noundef %274, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %275, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCD000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %276 unwind label %277

276:                                              ; preds = %273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %281

277:                                              ; preds = %273
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %4, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %318

281:                                              ; preds = %276, %271
  br label %282

282:                                              ; preds = %281, %252
  %283 = load i8, ptr %24, align 1, !tbaa !11, !range !13, !noundef !14
  %284 = trunc i8 %283 to i1
  br i1 %284, label %285, label %294

285:                                              ; preds = %282
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %286 unwind label %264

286:                                              ; preds = %285
  %287 = load x86_fp80, ptr %22, align 16, !tbaa !9
  %288 = load x86_fp80, ptr %23, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %26, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %287, x86_fp80 noundef %288, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %289 unwind label %290

289:                                              ; preds = %286
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %294

290:                                              ; preds = %286
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %4, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %318

294:                                              ; preds = %289, %282
  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
  %295 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %296 = add nsw i32 %295, 1
  store i32 %296, 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 %297 unwind label %321

297:                                              ; preds = %294
  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
  %298 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  store x86_fp80 %298, ptr %29, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #6
  %299 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %300 = fsub x86_fp80 %299, 0xK3FFEE5604189374BC800
  %301 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %300)
          to label %302 unwind label %325

302:                                              ; preds = %297
  %303 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFEE5604189374BC800)
          to label %304 unwind label %325

304:                                              ; preds = %302
  %305 = fadd x86_fp80 0xK3FFF8000000000000000, %303
  %306 = fdiv x86_fp80 %301, %305
  store x86_fp80 %306, 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
  %307 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %308 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %307)
          to label %309 unwind label %329

309:                                              ; preds = %304
  br i1 %308, label %333, label %310

310:                                              ; preds = %309
  %311 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %312 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %311)
          to label %313 unwind label %329

313:                                              ; preds = %310
  br i1 %312, label %314, label %333

314:                                              ; preds = %313
  %315 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %316 = fcmp oeq x86_fp80 %315, 0xK3FFEE5604189374BC800
  br i1 %316, label %317, label %333

317:                                              ; preds = %314
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %347

318:                                              ; preds = %290, %277, %264
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  br label %319

319:                                              ; preds = %318, %260
  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 %320

320:                                              ; preds = %319, %256
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %964

321:                                              ; preds = %294
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %4, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, 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 %385

325:                                              ; preds = %302, %297
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %4, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %5, align 4
  br label %384

329:                                              ; preds = %350, %337, %310, %304
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %4, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %5, align 4
  br label %383

333:                                              ; preds = %314, %313, %309
  %334 = load x86_fp80, ptr %30, align 16, !tbaa !9
  %335 = fcmp olt x86_fp80 %334, 0xK3FD0B424DC35095CD800
  br i1 %335, label %336, label %337

336:                                              ; preds = %333
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %346

337:                                              ; preds = %333
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %338 unwind label %329

338:                                              ; preds = %337
  %339 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %340 = load x86_fp80, ptr %29, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %32, i32 noundef %339, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %340, x86_fp80 noundef 0xK3FFEE5604189374BC800, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %341 unwind label %342

341:                                              ; preds = %338
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %346

342:                                              ; preds = %338
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %4, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %383

346:                                              ; preds = %341, %336
  br label %347

347:                                              ; preds = %346, %317
  %348 = load i8, ptr %31, align 1, !tbaa !11, !range !13, !noundef !14
  %349 = trunc i8 %348 to i1
  br i1 %349, label %350, label %359

350:                                              ; preds = %347
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %351 unwind label %329

351:                                              ; preds = %350
  %352 = load x86_fp80, ptr %29, align 16, !tbaa !9
  %353 = load x86_fp80, ptr %30, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %33, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %352, x86_fp80 noundef %353, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %354 unwind label %355

354:                                              ; preds = %351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %359

355:                                              ; preds = %351
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %4, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %383

359:                                              ; preds = %354, %347
  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
  %360 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %361 = add nsw i32 %360, 1
  store i32 %361, 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 %362 unwind label %386

362:                                              ; preds = %359
  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
  %363 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  store x86_fp80 %363, ptr %36, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #6
  %364 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %365 = fsub x86_fp80 %364, 0xK3FFED1B71758E2196800
  %366 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %365)
          to label %367 unwind label %390

367:                                              ; preds = %362
  %368 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFED1B71758E2196800)
          to label %369 unwind label %390

369:                                              ; preds = %367
  %370 = fadd x86_fp80 0xK3FFF8000000000000000, %368
  %371 = fdiv x86_fp80 %366, %370
  store x86_fp80 %371, 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
  %372 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %373 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %372)
          to label %374 unwind label %394

374:                                              ; preds = %369
  br i1 %373, label %398, label %375

375:                                              ; preds = %374
  %376 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %377 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %376)
          to label %378 unwind label %394

378:                                              ; preds = %375
  br i1 %377, label %379, label %398

379:                                              ; preds = %378
  %380 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %381 = fcmp oeq x86_fp80 %380, 0xK3FFED1B71758E2196800
  br i1 %381, label %382, label %398

382:                                              ; preds = %379
  store i8 1, ptr %38, align 1, !tbaa !11
  br label %412

383:                                              ; preds = %355, %342, %329
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %384

384:                                              ; preds = %383, %325
  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 %385

385:                                              ; preds = %384, %321
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  br label %964

386:                                              ; preds = %359
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %4, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, 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 %450

390:                                              ; preds = %367, %362
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %4, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %5, align 4
  br label %449

394:                                              ; preds = %415, %402, %375, %369
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %4, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %5, align 4
  br label %448

398:                                              ; preds = %379, %378, %374
  %399 = load x86_fp80, ptr %37, align 16, !tbaa !9
  %400 = fcmp olt x86_fp80 %399, 0xK3FD0B424DC35095CD800
  br i1 %400, label %401, label %402

401:                                              ; preds = %398
  store i8 1, ptr %38, align 1, !tbaa !11
  br label %411

402:                                              ; preds = %398
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %403 unwind label %394

403:                                              ; preds = %402
  %404 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %405 = load x86_fp80, ptr %36, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %39, i32 noundef %404, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %405, x86_fp80 noundef 0xK3FFED1B71758E2196800, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %406 unwind label %407

406:                                              ; preds = %403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %411

407:                                              ; preds = %403
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %4, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %448

411:                                              ; preds = %406, %401
  br label %412

412:                                              ; preds = %411, %382
  %413 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %414 = trunc i8 %413 to i1
  br i1 %414, label %415, label %424

415:                                              ; preds = %412
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %416 unwind label %394

416:                                              ; preds = %415
  %417 = load x86_fp80, ptr %36, align 16, !tbaa !9
  %418 = load x86_fp80, ptr %37, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %40, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %417, x86_fp80 noundef %418, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %419 unwind label %420

419:                                              ; preds = %416
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %424

420:                                              ; preds = %416
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %4, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %448

424:                                              ; preds = %419, %412
  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
  %425 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %426 = add nsw i32 %425, 1
  store i32 %426, 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 %427 unwind label %451

427:                                              ; preds = %424
  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
  %428 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  store x86_fp80 %428, ptr %43, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #6
  %429 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %430 = fsub x86_fp80 %429, 0xK3FFEF9096BB98C7E2800
  %431 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %430)
          to label %432 unwind label %455

432:                                              ; preds = %427
  %433 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFEF9096BB98C7E2800)
          to label %434 unwind label %455

434:                                              ; preds = %432
  %435 = fadd x86_fp80 0xK3FFF8000000000000000, %433
  %436 = fdiv x86_fp80 %431, %435
  store x86_fp80 %436, 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
  %437 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %438 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %437)
          to label %439 unwind label %459

439:                                              ; preds = %434
  br i1 %438, label %463, label %440

440:                                              ; preds = %439
  %441 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %442 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %441)
          to label %443 unwind label %459

443:                                              ; preds = %440
  br i1 %442, label %444, label %463

444:                                              ; preds = %443
  %445 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %446 = fcmp oeq x86_fp80 %445, 0xK3FFEF9096BB98C7E2800
  br i1 %446, label %447, label %463

447:                                              ; preds = %444
  store i8 1, ptr %45, align 1, !tbaa !11
  br label %477

448:                                              ; preds = %420, %407, %394
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #6
  br label %449

449:                                              ; preds = %448, %390
  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 %450

450:                                              ; preds = %449, %386
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #6
  br label %964

451:                                              ; preds = %424
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %4, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %5, align 4
  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 %515

455:                                              ; preds = %432, %427
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %4, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %5, align 4
  br label %514

459:                                              ; preds = %480, %467, %440, %434
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %4, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %5, align 4
  br label %513

463:                                              ; preds = %444, %443, %439
  %464 = load x86_fp80, ptr %44, align 16, !tbaa !9
  %465 = fcmp olt x86_fp80 %464, 0xK3FD0B424DC35095CD800
  br i1 %465, label %466, label %467

466:                                              ; preds = %463
  store i8 1, ptr %45, align 1, !tbaa !11
  br label %476

467:                                              ; preds = %463
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %468 unwind label %459

468:                                              ; preds = %467
  %469 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %470 = load x86_fp80, ptr %43, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %46, i32 noundef %469, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %470, x86_fp80 noundef 0xK3FFEF9096BB98C7E2800, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %471 unwind label %472

471:                                              ; preds = %468
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %476

472:                                              ; preds = %468
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %4, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %513

476:                                              ; preds = %471, %466
  br label %477

477:                                              ; preds = %476, %447
  %478 = load i8, ptr %45, align 1, !tbaa !11, !range !13, !noundef !14
  %479 = trunc i8 %478 to i1
  br i1 %479, label %480, label %489

480:                                              ; preds = %477
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %481 unwind label %459

481:                                              ; preds = %480
  %482 = load x86_fp80, ptr %43, align 16, !tbaa !9
  %483 = load x86_fp80, ptr %44, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %47, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %482, x86_fp80 noundef %483, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %484 unwind label %485

484:                                              ; preds = %481
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %489

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

489:                                              ; preds = %484, %477
  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
  %490 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %491 = add nsw i32 %490, 1
  store i32 %491, 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 %492 unwind label %516

492:                                              ; preds = %489
  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
  %493 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FF583126E978D4FDF3B) #6
  store x86_fp80 %493, ptr %50, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #6
  %494 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %495 = fsub x86_fp80 %494, 0xK3FE38955FBDAF4F01800
  %496 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %495)
          to label %497 unwind label %520

497:                                              ; preds = %492
  %498 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FE38955FBDAF4F01800)
          to label %499 unwind label %520

499:                                              ; preds = %497
  %500 = fadd x86_fp80 0xK3FFF8000000000000000, %498
  %501 = fdiv x86_fp80 %496, %500
  store x86_fp80 %501, 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
  %502 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %503 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %502)
          to label %504 unwind label %524

504:                                              ; preds = %499
  br i1 %503, label %528, label %505

505:                                              ; preds = %504
  %506 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %507 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %506)
          to label %508 unwind label %524

508:                                              ; preds = %505
  br i1 %507, label %509, label %528

509:                                              ; preds = %508
  %510 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %511 = fcmp oeq x86_fp80 %510, 0xK3FE38955FBDAF4F01800
  br i1 %511, label %512, label %528

512:                                              ; preds = %509
  store i8 1, ptr %52, align 1, !tbaa !11
  br label %542

513:                                              ; preds = %485, %472, %459
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  br label %514

514:                                              ; preds = %513, %455
  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 %515

515:                                              ; preds = %514, %451
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  br label %964

516:                                              ; preds = %489
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %4, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, 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 %580

520:                                              ; preds = %497, %492
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %4, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %5, align 4
  br label %579

524:                                              ; preds = %545, %532, %505, %499
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %4, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %5, align 4
  br label %578

528:                                              ; preds = %509, %508, %504
  %529 = load x86_fp80, ptr %51, align 16, !tbaa !9
  %530 = fcmp olt x86_fp80 %529, 0xK3FD0B424DC35095CD800
  br i1 %530, label %531, label %532

531:                                              ; preds = %528
  store i8 1, ptr %52, align 1, !tbaa !11
  br label %541

532:                                              ; preds = %528
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %533 unwind label %524

533:                                              ; preds = %532
  %534 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %535 = load x86_fp80, ptr %50, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %53, i32 noundef %534, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %535, x86_fp80 noundef 0xK3FE38955FBDAF4F01800, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %536 unwind label %537

536:                                              ; preds = %533
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %541

537:                                              ; preds = %533
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %4, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %578

541:                                              ; preds = %536, %531
  br label %542

542:                                              ; preds = %541, %512
  %543 = load i8, ptr %52, align 1, !tbaa !11, !range !13, !noundef !14
  %544 = trunc i8 %543 to i1
  br i1 %544, label %545, label %554

545:                                              ; preds = %542
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %546 unwind label %524

546:                                              ; preds = %545
  %547 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %548 = load x86_fp80, ptr %51, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %54, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %547, x86_fp80 noundef %548, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %549 unwind label %550

549:                                              ; preds = %546
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %554

550:                                              ; preds = %546
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %4, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %578

554:                                              ; preds = %549, %542
  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
  %555 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %556 = add nsw i32 %555, 1
  store i32 %556, 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 %557 unwind label %581

557:                                              ; preds = %554
  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
  %558 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFDCCCCCCCCCCCCCCCD) #6
  store x86_fp80 %558, ptr %57, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #6
  %559 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %560 = fsub x86_fp80 %559, 0xK3FFDB4395810624DD800
  %561 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %560)
          to label %562 unwind label %585

562:                                              ; preds = %557
  %563 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFDB4395810624DD800)
          to label %564 unwind label %585

564:                                              ; preds = %562
  %565 = fadd x86_fp80 0xK3FFF8000000000000000, %563
  %566 = fdiv x86_fp80 %561, %565
  store x86_fp80 %566, 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
  %567 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %568 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %567)
          to label %569 unwind label %589

569:                                              ; preds = %564
  br i1 %568, label %593, label %570

570:                                              ; preds = %569
  %571 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %572 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %571)
          to label %573 unwind label %589

573:                                              ; preds = %570
  br i1 %572, label %574, label %593

574:                                              ; preds = %573
  %575 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %576 = fcmp oeq x86_fp80 %575, 0xK3FFDB4395810624DD800
  br i1 %576, label %577, label %593

577:                                              ; preds = %574
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %607

578:                                              ; preds = %550, %537, %524
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #6
  br label %579

579:                                              ; preds = %578, %520
  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 %580

580:                                              ; preds = %579, %516
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  br label %964

581:                                              ; preds = %554
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %4, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, 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 %644

585:                                              ; preds = %562, %557
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %4, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %5, align 4
  br label %643

589:                                              ; preds = %610, %597, %570, %564
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %4, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %5, align 4
  br label %642

593:                                              ; preds = %574, %573, %569
  %594 = load x86_fp80, ptr %58, align 16, !tbaa !9
  %595 = fcmp olt x86_fp80 %594, 0xK3FD0B424DC35095CD800
  br i1 %595, label %596, label %597

596:                                              ; preds = %593
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %606

597:                                              ; preds = %593
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %598 unwind label %589

598:                                              ; preds = %597
  %599 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %600 = load x86_fp80, ptr %57, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %60, i32 noundef %599, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %600, x86_fp80 noundef 0xK3FFDB4395810624DD800, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFDCCCCCCCCCCCCCCCD)
          to label %601 unwind label %602

601:                                              ; preds = %598
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %606

602:                                              ; preds = %598
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %4, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %642

606:                                              ; preds = %601, %596
  br label %607

607:                                              ; preds = %606, %577
  %608 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %609 = trunc i8 %608 to i1
  br i1 %609, label %610, label %619

610:                                              ; preds = %607
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %611 unwind label %589

611:                                              ; preds = %610
  %612 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %613 = load x86_fp80, ptr %58, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %61, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %612, x86_fp80 noundef %613, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFDCCCCCCCCCCCCCCCD)
          to label %614 unwind label %615

614:                                              ; preds = %611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %619

615:                                              ; preds = %611
  %616 = landingpad { ptr, i32 }
          cleanup
  %617 = extractvalue { ptr, i32 } %616, 0
  store ptr %617, ptr %4, align 8
  %618 = extractvalue { ptr, i32 } %616, 1
  store i32 %618, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %642

619:                                              ; preds = %614, %607
  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
  %620 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %621 = add nsw i32 %620, 1
  store i32 %621, 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 %622 unwind label %645

622:                                              ; preds = %619
  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 8, ptr %64) #6
  %623 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %624 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %625 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %626 = call noundef double @_ZN4gcem15incomplete_betaIdddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(double noundef %623, double noundef %624, double noundef %625) #6
  store double %626, ptr %64, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #6
  %627 = load double, ptr %64, align 8, !tbaa !15
  %628 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %629 = fsub double %627, %628
  %630 = invoke noundef double @_ZSt3absd(double noundef %629)
          to label %631 unwind label %649

631:                                              ; preds = %622
  %632 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %633 = invoke noundef double @_ZSt3absd(double noundef %632)
          to label %634 unwind label %649

634:                                              ; preds = %631
  %635 = fadd double 1.000000e+00, %633
  %636 = fdiv double %630, %635
  store double %636, ptr %65, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #6
  store i8 0, ptr %66, align 1, !tbaa !11
  %637 = load double, ptr %64, align 8, !tbaa !15
  %638 = fpext double %637 to x86_fp80
  %639 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %638)
          to label %640 unwind label %653

640:                                              ; preds = %634
  br i1 %639, label %641, label %657

641:                                              ; preds = %640
  store i8 1, ptr %66, align 1, !tbaa !11
  br label %691

642:                                              ; preds = %615, %602, %589
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  br label %643

643:                                              ; preds = %642, %585
  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 %644

644:                                              ; preds = %643, %581
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #6
  br label %964

645:                                              ; preds = %619
  %646 = landingpad { ptr, i32 }
          cleanup
  %647 = extractvalue { ptr, i32 } %646, 0
  store ptr %647, ptr %4, align 8
  %648 = extractvalue { ptr, i32 } %646, 1
  store i32 %648, 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 %730

649:                                              ; preds = %631, %622
  %650 = landingpad { ptr, i32 }
          cleanup
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %4, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %5, align 4
  br label %729

653:                                              ; preds = %694, %676, %662, %657, %634
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %4, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %5, align 4
  br label %728

657:                                              ; preds = %640
  %658 = load double, ptr %64, align 8, !tbaa !15
  %659 = fpext double %658 to x86_fp80
  %660 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %659)
          to label %661 unwind label %653

661:                                              ; preds = %657
  br i1 %660, label %672, label %662

662:                                              ; preds = %661
  %663 = load double, ptr %64, align 8, !tbaa !15
  %664 = fpext double %663 to x86_fp80
  %665 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %664)
          to label %666 unwind label %653

666:                                              ; preds = %662
  br i1 %665, label %667, label %672

667:                                              ; preds = %666
  %668 = load double, ptr %64, align 8, !tbaa !15
  %669 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %670 = fcmp oeq double %668, %669
  br i1 %670, label %671, label %672

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

672:                                              ; preds = %667, %666, %661
  %673 = load double, ptr %65, align 8, !tbaa !15
  %674 = fcmp olt double %673, 0x3D06849B86A12B9B
  br i1 %674, label %675, label %676

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

676:                                              ; preds = %672
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %677 unwind label %653

677:                                              ; preds = %676
  %678 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %679 = load double, ptr %64, align 8, !tbaa !15
  %680 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %681 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %682 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %683 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %67, i32 noundef %678, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %679, double noundef %680, double noundef %681, double noundef %682, double noundef %683)
          to label %684 unwind label %685

684:                                              ; preds = %677
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %689

685:                                              ; preds = %677
  %686 = landingpad { ptr, i32 }
          cleanup
  %687 = extractvalue { ptr, i32 } %686, 0
  store ptr %687, ptr %4, align 8
  %688 = extractvalue { ptr, i32 } %686, 1
  store i32 %688, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %728

689:                                              ; preds = %684, %675
  br label %690

690:                                              ; preds = %689, %671
  br label %691

691:                                              ; preds = %690, %641
  %692 = load i8, ptr %66, align 1, !tbaa !11, !range !13, !noundef !14
  %693 = trunc i8 %692 to i1
  br i1 %693, label %694, label %706

694:                                              ; preds = %691
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %695 unwind label %653

695:                                              ; preds = %694
  %696 = load double, ptr %64, align 8, !tbaa !15
  %697 = load double, ptr %65, align 8, !tbaa !15
  %698 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %699 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %700 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIdddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %68, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %696, double noundef %697, double noundef %698, double noundef %699, double noundef %700)
          to label %701 unwind label %702

701:                                              ; preds = %695
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %706

702:                                              ; preds = %695
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %4, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %728

706:                                              ; preds = %701, %691
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, 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
  %707 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %708 = add nsw i32 %707, 1
  store i32 %708, 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 %709 unwind label %731

709:                                              ; preds = %706
  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
  %710 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %711 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIdeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(double noundef %710, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  store x86_fp80 %711, ptr %71, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %72) #6
  %712 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %713 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %714 = fpext double %713 to x86_fp80
  %715 = fsub x86_fp80 %712, %714
  %716 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %715)
          to label %717 unwind label %735

717:                                              ; preds = %709
  %718 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %719 = invoke noundef double @_ZSt3absd(double noundef %718)
          to label %720 unwind label %735

720:                                              ; preds = %717
  %721 = fadd double 1.000000e+00, %719
  %722 = fpext double %721 to x86_fp80
  %723 = fdiv x86_fp80 %716, %722
  store x86_fp80 %723, 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
  %724 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %725 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %724)
          to label %726 unwind label %739

726:                                              ; preds = %720
  br i1 %725, label %727, label %743

727:                                              ; preds = %726
  store i8 1, ptr %73, align 1, !tbaa !11
  br label %774

728:                                              ; preds = %702, %685, %653
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  br label %729

729:                                              ; preds = %728, %649
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %730

730:                                              ; preds = %729, %645
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %964

731:                                              ; preds = %706
  %732 = landingpad { ptr, i32 }
          cleanup
  %733 = extractvalue { ptr, i32 } %732, 0
  store ptr %733, ptr %4, align 8
  %734 = extractvalue { ptr, i32 } %732, 1
  store i32 %734, 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 %811

735:                                              ; preds = %717, %709
  %736 = landingpad { ptr, i32 }
          cleanup
  %737 = extractvalue { ptr, i32 } %736, 0
  store ptr %737, ptr %4, align 8
  %738 = extractvalue { ptr, i32 } %736, 1
  store i32 %738, ptr %5, align 4
  br label %810

739:                                              ; preds = %777, %761, %747, %743, %720
  %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
  br label %809

743:                                              ; preds = %726
  %744 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %745 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %744)
          to label %746 unwind label %739

746:                                              ; preds = %743
  br i1 %745, label %757, label %747

747:                                              ; preds = %746
  %748 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %749 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %748)
          to label %750 unwind label %739

750:                                              ; preds = %747
  br i1 %749, label %751, label %757

751:                                              ; preds = %750
  %752 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %753 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %754 = fpext double %753 to x86_fp80
  %755 = fcmp oeq x86_fp80 %752, %754
  br i1 %755, label %756, label %757

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

757:                                              ; preds = %751, %750, %746
  %758 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %759 = fcmp olt x86_fp80 %758, 0xK3FD0B424DC35095CD800
  br i1 %759, label %760, label %761

760:                                              ; preds = %757
  store i8 1, ptr %73, align 1, !tbaa !11
  br label %772

761:                                              ; preds = %757
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %762 unwind label %739

762:                                              ; preds = %761
  %763 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %764 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %765 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %766 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIeddeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %74, i32 noundef %763, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %764, double noundef %765, double noundef %766, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %767 unwind label %768

767:                                              ; preds = %762
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %772

768:                                              ; preds = %762
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %4, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %809

772:                                              ; preds = %767, %760
  br label %773

773:                                              ; preds = %772, %756
  br label %774

774:                                              ; preds = %773, %727
  %775 = load i8, ptr %73, align 1, !tbaa !11, !range !13, !noundef !14
  %776 = trunc i8 %775 to i1
  br i1 %776, label %777, label %787

777:                                              ; preds = %774
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %778 unwind label %739

778:                                              ; preds = %777
  %779 = load x86_fp80, ptr %71, align 16, !tbaa !9
  %780 = load x86_fp80, ptr %72, align 16, !tbaa !9
  %781 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeedeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %75, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %779, x86_fp80 noundef %780, double noundef %781, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %782 unwind label %783

782:                                              ; preds = %778
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %787

783:                                              ; preds = %778
  %784 = landingpad { ptr, i32 }
          cleanup
  %785 = extractvalue { ptr, i32 } %784, 0
  store ptr %785, ptr %4, align 8
  %786 = extractvalue { ptr, i32 } %784, 1
  store i32 %786, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %809

787:                                              ; preds = %782, %774
  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
  %788 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %789 = add nsw i32 %788, 1
  store i32 %789, 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 %790 unwind label %812

790:                                              ; preds = %787
  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
  %791 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %792 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIedeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, double noundef %791, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  store x86_fp80 %792, ptr %78, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #6
  %793 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %794 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %795 = fpext double %794 to x86_fp80
  %796 = fsub x86_fp80 %793, %795
  %797 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %796)
          to label %798 unwind label %816

798:                                              ; preds = %790
  %799 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %800 = invoke noundef double @_ZSt3absd(double noundef %799)
          to label %801 unwind label %816

801:                                              ; preds = %798
  %802 = fadd double 1.000000e+00, %800
  %803 = fpext double %802 to x86_fp80
  %804 = fdiv x86_fp80 %797, %803
  store x86_fp80 %804, 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
  %805 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %806 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %805)
          to label %807 unwind label %820

807:                                              ; preds = %801
  br i1 %806, label %808, label %824

808:                                              ; preds = %807
  store i8 1, ptr %80, align 1, !tbaa !11
  br label %855

809:                                              ; preds = %783, %768, %739
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #6
  br label %810

810:                                              ; preds = %809, %735
  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 %811

811:                                              ; preds = %810, %731
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  br label %964

812:                                              ; preds = %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
  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 %892

816:                                              ; preds = %798, %790
  %817 = landingpad { ptr, i32 }
          cleanup
  %818 = extractvalue { ptr, i32 } %817, 0
  store ptr %818, ptr %4, align 8
  %819 = extractvalue { ptr, i32 } %817, 1
  store i32 %819, ptr %5, align 4
  br label %891

820:                                              ; preds = %858, %842, %828, %824, %801
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %4, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %5, align 4
  br label %890

824:                                              ; preds = %807
  %825 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %826 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %825)
          to label %827 unwind label %820

827:                                              ; preds = %824
  br i1 %826, label %838, label %828

828:                                              ; preds = %827
  %829 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %830 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %829)
          to label %831 unwind label %820

831:                                              ; preds = %828
  br i1 %830, label %832, label %838

832:                                              ; preds = %831
  %833 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %834 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %835 = fpext double %834 to x86_fp80
  %836 = fcmp oeq x86_fp80 %833, %835
  br i1 %836, label %837, label %838

837:                                              ; preds = %832
  store i8 1, ptr %80, align 1, !tbaa !11
  br label %854

838:                                              ; preds = %832, %831, %827
  %839 = load x86_fp80, ptr %79, align 16, !tbaa !9
  %840 = fcmp olt x86_fp80 %839, 0xK3FD0B424DC35095CD800
  br i1 %840, label %841, label %842

841:                                              ; preds = %838
  store i8 1, ptr %80, align 1, !tbaa !11
  br label %853

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

843:                                              ; preds = %842
  %844 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %845 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %846 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %847 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIededeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %81, i32 noundef %844, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %845, double noundef %846, x86_fp80 noundef 0xK40008000000000000000, double noundef %847, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %848 unwind label %849

848:                                              ; preds = %843
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %853

849:                                              ; preds = %843
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %4, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %890

853:                                              ; preds = %848, %841
  br label %854

854:                                              ; preds = %853, %837
  br label %855

855:                                              ; preds = %854, %808
  %856 = load i8, ptr %80, align 1, !tbaa !11, !range !13, !noundef !14
  %857 = trunc i8 %856 to i1
  br i1 %857, label %858, label %868

858:                                              ; preds = %855
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %859 unwind label %820

859:                                              ; preds = %858
  %860 = load x86_fp80, ptr %78, align 16, !tbaa !9
  %861 = load x86_fp80, ptr %79, align 16, !tbaa !9
  %862 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeedeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %82, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %860, x86_fp80 noundef %861, x86_fp80 noundef 0xK40008000000000000000, double noundef %862, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %863 unwind label %864

863:                                              ; preds = %859
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %868

864:                                              ; preds = %859
  %865 = landingpad { ptr, i32 }
          cleanup
  %866 = extractvalue { ptr, i32 } %865, 0
  store ptr %866, ptr %4, align 8
  %867 = extractvalue { ptr, i32 } %865, 1
  store i32 %867, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %890

868:                                              ; preds = %863, %855
  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
  %869 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %870 = add nsw i32 %869, 1
  store i32 %870, 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 %871 unwind label %893

871:                                              ; preds = %868
  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 16, ptr %85) #6
  %872 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %873 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, double noundef %872) #6
  store x86_fp80 %873, ptr %85, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #6
  %874 = load x86_fp80, ptr %85, align 16, !tbaa !9
  %875 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %876 = fpext double %875 to x86_fp80
  %877 = fsub x86_fp80 %874, %876
  %878 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %877)
          to label %879 unwind label %897

879:                                              ; preds = %871
  %880 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %881 = invoke noundef double @_ZSt3absd(double noundef %880)
          to label %882 unwind label %897

882:                                              ; preds = %879
  %883 = fadd double 1.000000e+00, %881
  %884 = fpext double %883 to x86_fp80
  %885 = fdiv x86_fp80 %878, %884
  store x86_fp80 %885, ptr %86, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #6
  store i8 0, ptr %87, align 1, !tbaa !11
  %886 = load x86_fp80, ptr %85, align 16, !tbaa !9
  %887 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %886)
          to label %888 unwind label %901

888:                                              ; preds = %882
  br i1 %887, label %889, label %905

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

890:                                              ; preds = %864, %849, %820
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #6
  br label %891

891:                                              ; preds = %890, %816
  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 %892

892:                                              ; preds = %891, %812
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %964

893:                                              ; preds = %868
  %894 = landingpad { ptr, i32 }
          cleanup
  %895 = extractvalue { ptr, i32 } %894, 0
  store ptr %895, ptr %4, align 8
  %896 = extractvalue { ptr, i32 } %894, 1
  store i32 %896, 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 %954

897:                                              ; preds = %879, %871
  %898 = landingpad { ptr, i32 }
          cleanup
  %899 = extractvalue { ptr, i32 } %898, 0
  store ptr %899, ptr %4, align 8
  %900 = extractvalue { ptr, i32 } %898, 1
  store i32 %900, ptr %5, align 4
  br label %953

901:                                              ; preds = %939, %923, %909, %905, %882
  %902 = landingpad { ptr, i32 }
          cleanup
  %903 = extractvalue { ptr, i32 } %902, 0
  store ptr %903, ptr %4, align 8
  %904 = extractvalue { ptr, i32 } %902, 1
  store i32 %904, ptr %5, align 4
  br label %952

905:                                              ; preds = %888
  %906 = load x86_fp80, ptr %85, align 16, !tbaa !9
  %907 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %906)
          to label %908 unwind label %901

908:                                              ; preds = %905
  br i1 %907, label %919, label %909

909:                                              ; preds = %908
  %910 = load x86_fp80, ptr %85, align 16, !tbaa !9
  %911 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %910)
          to label %912 unwind label %901

912:                                              ; preds = %909
  br i1 %911, label %913, label %919

913:                                              ; preds = %912
  %914 = load x86_fp80, ptr %85, align 16, !tbaa !9
  %915 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %916 = fpext double %915 to x86_fp80
  %917 = fcmp oeq x86_fp80 %914, %916
  br i1 %917, label %918, label %919

918:                                              ; preds = %913
  store i8 1, ptr %87, align 1, !tbaa !11
  br label %935

919:                                              ; preds = %913, %912, %908
  %920 = load x86_fp80, ptr %86, align 16, !tbaa !9
  %921 = fcmp olt x86_fp80 %920, 0xK3FD0B424DC35095CD800
  br i1 %921, label %922, label %923

922:                                              ; preds = %919
  store i8 1, ptr %87, align 1, !tbaa !11
  br label %934

923:                                              ; preds = %919
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %924 unwind label %901

924:                                              ; preds = %923
  %925 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %926 = load x86_fp80, ptr %85, align 16, !tbaa !9
  %927 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %928 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIedeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef %88, i32 noundef %925, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %926, double noundef %927, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, double noundef %928)
          to label %929 unwind label %930

929:                                              ; preds = %924
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  br label %934

930:                                              ; preds = %924
  %931 = landingpad { ptr, i32 }
          cleanup
  %932 = extractvalue { ptr, i32 } %931, 0
  store ptr %932, ptr %4, align 8
  %933 = extractvalue { ptr, i32 } %931, 1
  store i32 %933, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  br label %952

934:                                              ; preds = %929, %922
  br label %935

935:                                              ; preds = %934, %918
  br label %936

936:                                              ; preds = %935, %889
  %937 = load i8, ptr %87, align 1, !tbaa !11, !range !13, !noundef !14
  %938 = trunc i8 %937 to i1
  br i1 %938, label %939, label %949

939:                                              ; preds = %936
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %940 unwind label %901

940:                                              ; preds = %939
  %941 = load x86_fp80, ptr %85, align 16, !tbaa !9
  %942 = load x86_fp80, ptr %86, align 16, !tbaa !9
  %943 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef %89, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %941, x86_fp80 noundef %942, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, double noundef %943)
          to label %944 unwind label %945

944:                                              ; preds = %940
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %949

945:                                              ; preds = %940
  %946 = landingpad { ptr, i32 }
          cleanup
  %947 = extractvalue { ptr, i32 } %946, 0
  store ptr %947, ptr %4, align 8
  %948 = extractvalue { ptr, i32 } %946, 1
  store i32 %948, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %952

949:                                              ; preds = %944, %936
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 16, 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
  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, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %950 unwind label %955

950:                                              ; preds = %949
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %90)
          to label %951 unwind label %959

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

952:                                              ; preds = %945, %930, %901
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #6
  br label %953

953:                                              ; preds = %952, %897
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  br label %954

954:                                              ; preds = %953, %893
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #6
  br label %964

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

959:                                              ; preds = %950
  %960 = landingpad { ptr, i32 }
          cleanup
  %961 = extractvalue { ptr, i32 } %960, 0
  store ptr %961, ptr %4, align 8
  %962 = extractvalue { ptr, i32 } %960, 1
  store i32 %962, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  br label %963

963:                                              ; preds = %959, %955
  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 %964

964:                                              ; preds = %963, %954, %892, %811, %730, %644, %580, %515, %450, %385, %320, %255, %190, %125
  %965 = load ptr, ptr %4, align 8
  %966 = load i32, ptr %5, align 4
  %967 = insertvalue { ptr, i32 } poison, ptr %965, 0
  %968 = insertvalue { ptr, i32 } %967, i32 %966, 1
  resume { ptr, i32 } %968
}

; 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 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef, x86_fp80 noundef, 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_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 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_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem15incomplete_betaIdddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(double noundef, double noundef, 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_failIdddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef, double noundef) #1

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z15print_test_passIeeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, double 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 [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [22 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
  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 %53 unwind label %69

53:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %54 unwind label %71

54:                                               ; preds = %53
  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
  %55 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %56 = add nsw i32 %55, 1
  store i32 %56, 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 %57 unwind label %74

57:                                               ; preds = %54
  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
  %58 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFBCCCCCCCCCCCCCCCD) #6
  %59 = fadd x86_fp80 %58, 0xKBFFBEACC0B6DE4EFC800
  %60 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %59)
  %61 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFBEACC0B6DE4EFC800)
  %62 = fadd x86_fp80 %61, 0xK3FFF8000000000000000
  %63 = fdiv x86_fp80 %60, %62
  %64 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %58)
  br i1 %64, label %78, label %65

65:                                               ; preds = %57
  %66 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %58)
  %67 = fcmp oeq x86_fp80 %58, 0xK3FFBEACC0B6DE4EFC800
  %or.cond = and i1 %67, %66
  %68 = fcmp olt x86_fp80 %63, 0xK3FD0B424DC35095CD800
  %or.cond248 = or i1 %68, %or.cond
  br i1 %or.cond248, label %84, label %79

69:                                               ; preds = %0
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %73

71:                                               ; preds = %53
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #6
  br label %73

73:                                               ; preds = %71, %69
  %.pn = phi { ptr, i32 } [ %72, %71 ], [ %70, %69 ]
  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 %483

74:                                               ; preds = %54
  %75 = 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 %103

76:                                               ; preds = %84, %79
  %77 = landingpad { ptr, i32 }
          cleanup
  br label %102

78:                                               ; preds = %57
  %.old = fcmp olt x86_fp80 %63, 0xK3FD0B424DC35095CD800
  br i1 %.old, label %84, label %79

79:                                               ; preds = %65, %78
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %80 unwind label %76

80:                                               ; preds = %79
  %81 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %5, i32 noundef %81, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %58, x86_fp80 noundef 0xK3FFBEACC0B6DE4EFC800, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFBCCCCCCCCCCCCCCCD)
          to label %.critedge unwind label %82

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

84:                                               ; preds = %65, %78
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %85 unwind label %76

85:                                               ; preds = %84
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %58, x86_fp80 noundef %63, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFBCCCCCCCCCCCCCCCD)
          to label %.critedge unwind label %86

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

.critedge:                                        ; preds = %85, %80
  %.sink = phi ptr [ %5, %80 ], [ %6, %85 ]
  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
  %88 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %89 = add nsw i32 %88, 1
  store i32 %89, 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 %90 unwind label %104

90:                                               ; 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
  %91 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  %92 = fadd x86_fp80 %91, 0xKBFFEC8F1117242EAA000
  %93 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %92)
  %94 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFEC8F1117242EAA000)
  %95 = fadd x86_fp80 %94, 0xK3FFF8000000000000000
  %96 = fdiv x86_fp80 %93, %95
  %97 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %91)
  br i1 %97, label %108, label %98

98:                                               ; preds = %90
  %99 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %91)
  %100 = fcmp oeq x86_fp80 %91, 0xK3FFEC8F1117242EAA000
  %or.cond3 = and i1 %100, %99
  %101 = fcmp olt x86_fp80 %96, 0xK3FD0B424DC35095CD800
  %or.cond250 = or i1 %101, %or.cond3
  br i1 %or.cond250, label %114, label %109

102:                                              ; preds = %86, %82, %76
  %.pn187 = phi { ptr, i32 } [ %87, %86 ], [ %77, %76 ], [ %83, %82 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %103

103:                                              ; preds = %102, %74
  %.pn187.pn = phi { ptr, i32 } [ %.pn187, %102 ], [ %75, %74 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %483

104:                                              ; preds = %.critedge
  %105 = 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 %133

106:                                              ; preds = %114, %109
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %132

108:                                              ; preds = %90
  %.old249 = fcmp olt x86_fp80 %96, 0xK3FD0B424DC35095CD800
  br i1 %.old249, label %114, label %109

109:                                              ; preds = %98, %108
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %110 unwind label %106

110:                                              ; preds = %109
  %111 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %9, i32 noundef %111, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %91, x86_fp80 noundef 0xK3FFEC8F1117242EAA000, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge227 unwind label %112

112:                                              ; preds = %110
  %113 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %132

114:                                              ; preds = %98, %108
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %115 unwind label %106

115:                                              ; preds = %114
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %91, x86_fp80 noundef %96, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFEE666666666666666, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge227 unwind label %116

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

.critedge227:                                     ; preds = %115, %110
  %.sink271 = phi ptr [ %9, %110 ], [ %10, %115 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink271) #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
  %118 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %119 = add nsw i32 %118, 1
  store i32 %119, 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 %120 unwind label %134

120:                                              ; preds = %.critedge227
  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
  %121 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  %122 = fadd x86_fp80 %121, 0xKBFFECCCCCCCCCCCCD000
  %123 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %122)
  %124 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFECCCCCCCCCCCCD000)
  %125 = fadd x86_fp80 %124, 0xK3FFF8000000000000000
  %126 = fdiv x86_fp80 %123, %125
  %127 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %121)
  br i1 %127, label %138, label %128

128:                                              ; preds = %120
  %129 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %121)
  %130 = fcmp oeq x86_fp80 %121, 0xK3FFECCCCCCCCCCCCD000
  %or.cond5 = and i1 %130, %129
  %131 = fcmp olt x86_fp80 %126, 0xK3FD0B424DC35095CD800
  %or.cond252 = or i1 %131, %or.cond5
  br i1 %or.cond252, label %144, label %139

132:                                              ; preds = %116, %112, %106
  %.pn190 = phi { ptr, i32 } [ %117, %116 ], [ %107, %106 ], [ %113, %112 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %133

133:                                              ; preds = %132, %104
  %.pn190.pn = phi { ptr, i32 } [ %.pn190, %132 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %483

134:                                              ; preds = %.critedge227
  %135 = 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 %163

136:                                              ; preds = %144, %139
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %162

138:                                              ; preds = %120
  %.old251 = fcmp olt x86_fp80 %126, 0xK3FD0B424DC35095CD800
  br i1 %.old251, label %144, label %139

139:                                              ; preds = %128, %138
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %140 unwind label %136

140:                                              ; preds = %139
  %141 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %13, i32 noundef %141, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %121, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCD000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge229 unwind label %142

142:                                              ; preds = %140
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %162

144:                                              ; preds = %128, %138
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %145 unwind label %136

145:                                              ; preds = %144
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %121, x86_fp80 noundef %126, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFF8000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge229 unwind label %146

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

.critedge229:                                     ; preds = %145, %140
  %.sink272 = phi ptr [ %13, %140 ], [ %14, %145 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink272) #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
  %148 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, 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 %150 unwind label %164

150:                                              ; preds = %.critedge229
  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
  %151 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  %152 = fadd x86_fp80 %151, 0xKBFFEE5604189374BC800
  %153 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %152)
  %154 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFEE5604189374BC800)
  %155 = fadd x86_fp80 %154, 0xK3FFF8000000000000000
  %156 = fdiv x86_fp80 %153, %155
  %157 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %151)
  br i1 %157, label %168, label %158

158:                                              ; preds = %150
  %159 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %151)
  %160 = fcmp oeq x86_fp80 %151, 0xK3FFEE5604189374BC800
  %or.cond7 = and i1 %160, %159
  %161 = fcmp olt x86_fp80 %156, 0xK3FD0B424DC35095CD800
  %or.cond254 = or i1 %161, %or.cond7
  br i1 %or.cond254, label %174, label %169

162:                                              ; preds = %146, %142, %136
  %.pn193 = phi { ptr, i32 } [ %147, %146 ], [ %137, %136 ], [ %143, %142 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %163

163:                                              ; preds = %162, %134
  %.pn193.pn = phi { ptr, i32 } [ %.pn193, %162 ], [ %135, %134 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %483

164:                                              ; preds = %.critedge229
  %165 = 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 %193

166:                                              ; preds = %174, %169
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %192

168:                                              ; preds = %150
  %.old253 = fcmp olt x86_fp80 %156, 0xK3FD0B424DC35095CD800
  br i1 %.old253, label %174, label %169

169:                                              ; preds = %158, %168
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %170 unwind label %166

170:                                              ; preds = %169
  %171 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %17, i32 noundef %171, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %151, x86_fp80 noundef 0xK3FFEE5604189374BC800, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge231 unwind label %172

172:                                              ; preds = %170
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %192

174:                                              ; preds = %158, %168
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %175 unwind label %166

175:                                              ; preds = %174
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %151, x86_fp80 noundef %156, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge231 unwind label %176

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

.critedge231:                                     ; preds = %175, %170
  %.sink273 = phi ptr [ %17, %170 ], [ %18, %175 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink273) #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
  %178 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, 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 %180 unwind label %194

180:                                              ; preds = %.critedge231
  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
  %181 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  %182 = fadd x86_fp80 %181, 0xKBFFED1B71758E2196800
  %183 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %182)
  %184 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFED1B71758E2196800)
  %185 = fadd x86_fp80 %184, 0xK3FFF8000000000000000
  %186 = fdiv x86_fp80 %183, %185
  %187 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %181)
  br i1 %187, label %198, label %188

188:                                              ; preds = %180
  %189 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %181)
  %190 = fcmp oeq x86_fp80 %181, 0xK3FFED1B71758E2196800
  %or.cond9 = and i1 %190, %189
  %191 = fcmp olt x86_fp80 %186, 0xK3FD0B424DC35095CD800
  %or.cond256 = or i1 %191, %or.cond9
  br i1 %or.cond256, label %204, label %199

192:                                              ; preds = %176, %172, %166
  %.pn196 = phi { ptr, i32 } [ %177, %176 ], [ %167, %166 ], [ %173, %172 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %193

193:                                              ; preds = %192, %164
  %.pn196.pn = phi { ptr, i32 } [ %.pn196, %192 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %483

194:                                              ; preds = %.critedge231
  %195 = 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 %223

196:                                              ; preds = %204, %199
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %222

198:                                              ; preds = %180
  %.old255 = fcmp olt x86_fp80 %186, 0xK3FD0B424DC35095CD800
  br i1 %.old255, label %204, label %199

199:                                              ; preds = %188, %198
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %200 unwind label %196

200:                                              ; preds = %199
  %201 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %21, i32 noundef %201, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %181, x86_fp80 noundef 0xK3FFED1B71758E2196800, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge233 unwind label %202

202:                                              ; preds = %200
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %222

204:                                              ; preds = %188, %198
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %205 unwind label %196

205:                                              ; preds = %204
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %22, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %181, x86_fp80 noundef %186, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge233 unwind label %206

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

.critedge233:                                     ; preds = %205, %200
  %.sink274 = phi ptr [ %21, %200 ], [ %22, %205 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink274) #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
  %208 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %209 = add nsw i32 %208, 1
  store i32 %209, 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 %210 unwind label %224

210:                                              ; preds = %.critedge233
  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
  %211 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  %212 = fadd x86_fp80 %211, 0xKBFFEF9096BB98C7E2800
  %213 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %212)
  %214 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFEF9096BB98C7E2800)
  %215 = fadd x86_fp80 %214, 0xK3FFF8000000000000000
  %216 = fdiv x86_fp80 %213, %215
  %217 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %211)
  br i1 %217, label %228, label %218

218:                                              ; preds = %210
  %219 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %211)
  %220 = fcmp oeq x86_fp80 %211, 0xK3FFEF9096BB98C7E2800
  %or.cond11 = and i1 %220, %219
  %221 = fcmp olt x86_fp80 %216, 0xK3FD0B424DC35095CD800
  %or.cond258 = or i1 %221, %or.cond11
  br i1 %or.cond258, label %234, label %229

222:                                              ; preds = %206, %202, %196
  %.pn199 = phi { ptr, i32 } [ %207, %206 ], [ %197, %196 ], [ %203, %202 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %223

223:                                              ; preds = %222, %194
  %.pn199.pn = phi { ptr, i32 } [ %.pn199, %222 ], [ %195, %194 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %483

224:                                              ; preds = %.critedge233
  %225 = 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 %253

226:                                              ; preds = %234, %229
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %252

228:                                              ; preds = %210
  %.old257 = fcmp olt x86_fp80 %216, 0xK3FD0B424DC35095CD800
  br i1 %.old257, label %234, label %229

229:                                              ; preds = %218, %228
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %230 unwind label %226

230:                                              ; preds = %229
  %231 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %25, i32 noundef %231, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %211, x86_fp80 noundef 0xK3FFEF9096BB98C7E2800, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge235 unwind label %232

232:                                              ; preds = %230
  %233 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %252

234:                                              ; preds = %218, %228
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %235 unwind label %226

235:                                              ; preds = %234
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %26, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %211, x86_fp80 noundef %216, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge235 unwind label %236

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

.critedge235:                                     ; preds = %235, %230
  %.sink275 = phi ptr [ %25, %230 ], [ %26, %235 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink275) #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
  %238 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  store i32 %239, 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 %240 unwind label %254

240:                                              ; preds = %.critedge235
  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
  %241 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FF583126E978D4FDF3B) #6
  %242 = fadd x86_fp80 %241, 0xKBFE38955FBDAF4F01800
  %243 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %242)
  %244 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FE38955FBDAF4F01800)
  %245 = fadd x86_fp80 %244, 0xK3FFF8000000000000000
  %246 = fdiv x86_fp80 %243, %245
  %247 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %241)
  br i1 %247, label %258, label %248

248:                                              ; preds = %240
  %249 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %241)
  %250 = fcmp oeq x86_fp80 %241, 0xK3FE38955FBDAF4F01800
  %or.cond13 = and i1 %250, %249
  %251 = fcmp olt x86_fp80 %246, 0xK3FD0B424DC35095CD800
  %or.cond260 = or i1 %251, %or.cond13
  br i1 %or.cond260, label %264, label %259

252:                                              ; preds = %236, %232, %226
  %.pn202 = phi { ptr, i32 } [ %237, %236 ], [ %227, %226 ], [ %233, %232 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %253

253:                                              ; preds = %252, %224
  %.pn202.pn = phi { ptr, i32 } [ %.pn202, %252 ], [ %225, %224 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %483

254:                                              ; preds = %.critedge235
  %255 = 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 %283

256:                                              ; preds = %264, %259
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %282

258:                                              ; preds = %240
  %.old259 = fcmp olt x86_fp80 %246, 0xK3FD0B424DC35095CD800
  br i1 %.old259, label %264, label %259

259:                                              ; preds = %248, %258
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %260 unwind label %256

260:                                              ; preds = %259
  %261 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %29, i32 noundef %261, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %241, x86_fp80 noundef 0xK3FE38955FBDAF4F01800, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %.critedge237 unwind label %262

262:                                              ; preds = %260
  %263 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %282

264:                                              ; preds = %248, %258
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %265 unwind label %256

265:                                              ; preds = %264
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %241, x86_fp80 noundef %246, x86_fp80 noundef 0xK4000C000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %.critedge237 unwind label %266

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

.critedge237:                                     ; preds = %265, %260
  %.sink276 = phi ptr [ %29, %260 ], [ %30, %265 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink276) #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
  %268 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, 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 %270 unwind label %284

270:                                              ; preds = %.critedge237
  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
  %271 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFDCCCCCCCCCCCCCCCD) #6
  %272 = fadd x86_fp80 %271, 0xKBFFDB4395810624DD800
  %273 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %272)
  %274 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef 0xK3FFDB4395810624DD800)
  %275 = fadd x86_fp80 %274, 0xK3FFF8000000000000000
  %276 = fdiv x86_fp80 %273, %275
  %277 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %271)
  br i1 %277, label %288, label %278

278:                                              ; preds = %270
  %279 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %271)
  %280 = fcmp oeq x86_fp80 %271, 0xK3FFDB4395810624DD800
  %or.cond15 = and i1 %280, %279
  %281 = fcmp olt x86_fp80 %276, 0xK3FD0B424DC35095CD800
  %or.cond262 = or i1 %281, %or.cond15
  br i1 %or.cond262, label %294, label %289

282:                                              ; preds = %266, %262, %256
  %.pn205 = phi { ptr, i32 } [ %267, %266 ], [ %257, %256 ], [ %263, %262 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %283

283:                                              ; preds = %282, %254
  %.pn205.pn = phi { ptr, i32 } [ %.pn205, %282 ], [ %255, %254 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  br label %483

284:                                              ; preds = %.critedge237
  %285 = 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 %315

286:                                              ; preds = %294, %289
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %314

288:                                              ; preds = %270
  %.old261 = fcmp olt x86_fp80 %276, 0xK3FD0B424DC35095CD800
  br i1 %.old261, label %294, label %289

289:                                              ; preds = %278, %288
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %290 unwind label %286

290:                                              ; preds = %289
  %291 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %33, i32 noundef %291, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %271, x86_fp80 noundef 0xK3FFDB4395810624DD800, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFDCCCCCCCCCCCCCCCD)
          to label %.critedge239 unwind label %292

292:                                              ; preds = %290
  %293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %314

294:                                              ; preds = %278, %288
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %295 unwind label %286

295:                                              ; preds = %294
  invoke void @_Z15print_test_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %34, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %271, x86_fp80 noundef %276, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFDCCCCCCCCCCCCCCCD)
          to label %.critedge239 unwind label %296

296:                                              ; preds = %295
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %314

.critedge239:                                     ; preds = %295, %290
  %.sink277 = phi ptr [ %33, %290 ], [ %34, %295 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink277) #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
  %298 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %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 %300 unwind label %316

300:                                              ; preds = %.critedge239
  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
  %301 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %302 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %303 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %304 = call noundef double @_ZN4gcem15incomplete_betaIdddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(double noundef %301, double noundef %302, double noundef %303) #6
  %305 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %306 = fsub double %304, %305
  %307 = call noundef double @_ZSt3absd(double noundef %306)
  %308 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %309 = call noundef double @_ZSt3absd(double noundef %308)
  %310 = fadd double %309, 1.000000e+00
  %311 = fdiv double %307, %310
  %312 = fpext double %304 to x86_fp80
  %313 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %312)
  br i1 %313, label %338, label %320

314:                                              ; preds = %296, %292, %286
  %.pn208 = phi { ptr, i32 } [ %297, %296 ], [ %287, %286 ], [ %293, %292 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %315

315:                                              ; preds = %314, %284
  %.pn208.pn = phi { ptr, i32 } [ %.pn208, %314 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br label %483

316:                                              ; preds = %.critedge239
  %317 = 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 %361

318:                                              ; preds = %338, %329
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %360

320:                                              ; preds = %300
  %321 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %312)
  br i1 %321, label %328, label %322

322:                                              ; preds = %320
  %323 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %312)
  br i1 %323, label %324, label %328

324:                                              ; preds = %322
  %325 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %326 = fcmp oeq double %304, %325
  %327 = fcmp olt double %311, 0x3D06849B86A12B9B
  %or.cond264 = or i1 %327, %326
  br i1 %or.cond264, label %338, label %329

328:                                              ; preds = %322, %320
  %.old263 = fcmp olt double %311, 0x3D06849B86A12B9B
  br i1 %.old263, label %338, label %329

329:                                              ; preds = %324, %328
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %330 unwind label %318

330:                                              ; preds = %329
  %331 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %332 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %333 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %334 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %335 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIdddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %37, i32 noundef %331, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %304, double noundef %332, double noundef %333, double noundef %334, double noundef %335)
          to label %.critedge241 unwind label %336

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

338:                                              ; preds = %300, %324, %328
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %339 unwind label %318

339:                                              ; preds = %338
  %340 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %341 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %342 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIdddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %304, double noundef %311, double noundef %340, double noundef %341, double noundef %342)
          to label %.critedge241 unwind label %343

343:                                              ; preds = %339
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %360

.critedge241:                                     ; preds = %339, %330
  %.sink278 = phi ptr [ %37, %330 ], [ %38, %339 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink278) #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
  %345 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  store i32 %346, 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 %347 unwind label %362

347:                                              ; preds = %.critedge241
  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
  %348 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %349 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIdeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(double noundef %348, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  %350 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %351 = fpext double %350 to x86_fp80
  %352 = fsub x86_fp80 %349, %351
  %353 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %352)
  %354 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %355 = call noundef double @_ZSt3absd(double noundef %354)
  %356 = fadd double %355, 1.000000e+00
  %357 = fpext double %356 to x86_fp80
  %358 = fdiv x86_fp80 %353, %357
  %359 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %349)
  br i1 %359, label %383, label %366

360:                                              ; preds = %343, %336, %318
  %.pn211 = phi { ptr, i32 } [ %344, %343 ], [ %319, %318 ], [ %337, %336 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %361

361:                                              ; preds = %360, %316
  %.pn211.pn = phi { ptr, i32 } [ %.pn211, %360 ], [ %317, %316 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  br label %483

362:                                              ; preds = %.critedge241
  %363 = 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 %404

364:                                              ; preds = %383, %376
  %365 = landingpad { ptr, i32 }
          cleanup
  br label %403

366:                                              ; preds = %347
  %367 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %349)
  br i1 %367, label %375, label %368

368:                                              ; preds = %366
  %369 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %349)
  br i1 %369, label %370, label %375

370:                                              ; preds = %368
  %371 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %372 = fpext double %371 to x86_fp80
  %373 = fcmp oeq x86_fp80 %349, %372
  %374 = fcmp olt x86_fp80 %358, 0xK3FD0B424DC35095CD800
  %or.cond266 = or i1 %374, %373
  br i1 %or.cond266, label %383, label %376

375:                                              ; preds = %368, %366
  %.old265 = fcmp olt x86_fp80 %358, 0xK3FD0B424DC35095CD800
  br i1 %.old265, label %383, label %376

376:                                              ; preds = %370, %375
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %377 unwind label %364

377:                                              ; preds = %376
  %378 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %379 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %380 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIeddeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %41, i32 noundef %378, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %349, double noundef %379, double noundef %380, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge243 unwind label %381

381:                                              ; preds = %377
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %403

383:                                              ; preds = %347, %370, %375
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %384 unwind label %364

384:                                              ; preds = %383
  %385 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeedeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %42, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %349, x86_fp80 noundef %358, double noundef %385, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge243 unwind label %386

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

.critedge243:                                     ; preds = %384, %377
  %.sink279 = phi ptr [ %41, %377 ], [ %42, %384 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink279) #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
  %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 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 %390 unwind label %405

390:                                              ; preds = %.critedge243
  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
  %391 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %392 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIedeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, double noundef %391, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD) #6
  %393 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %394 = fpext double %393 to x86_fp80
  %395 = fsub x86_fp80 %392, %394
  %396 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %395)
  %397 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %398 = call noundef double @_ZSt3absd(double noundef %397)
  %399 = fadd double %398, 1.000000e+00
  %400 = fpext double %399 to x86_fp80
  %401 = fdiv x86_fp80 %396, %400
  %402 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %392)
  br i1 %402, label %426, label %409

403:                                              ; preds = %386, %381, %364
  %.pn214 = phi { ptr, i32 } [ %387, %386 ], [ %365, %364 ], [ %382, %381 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %404

404:                                              ; preds = %403, %362
  %.pn214.pn = phi { ptr, i32 } [ %.pn214, %403 ], [ %363, %362 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  br label %483

405:                                              ; preds = %.critedge243
  %406 = 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 %447

407:                                              ; preds = %426, %419
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %446

409:                                              ; preds = %390
  %410 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %392)
  br i1 %410, label %418, label %411

411:                                              ; preds = %409
  %412 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %392)
  br i1 %412, label %413, label %418

413:                                              ; preds = %411
  %414 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %415 = fpext double %414 to x86_fp80
  %416 = fcmp oeq x86_fp80 %392, %415
  %417 = fcmp olt x86_fp80 %401, 0xK3FD0B424DC35095CD800
  %or.cond268 = or i1 %417, %416
  br i1 %or.cond268, label %426, label %419

418:                                              ; preds = %411, %409
  %.old267 = fcmp olt x86_fp80 %401, 0xK3FD0B424DC35095CD800
  br i1 %.old267, label %426, label %419

419:                                              ; preds = %413, %418
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %420 unwind label %407

420:                                              ; preds = %419
  %421 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %422 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %423 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIededeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %45, i32 noundef %421, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %392, double noundef %422, x86_fp80 noundef 0xK40008000000000000000, double noundef %423, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge245 unwind label %424

424:                                              ; preds = %420
  %425 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %446

426:                                              ; preds = %390, %413, %418
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %427 unwind label %407

427:                                              ; preds = %426
  %428 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeedeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %46, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %392, x86_fp80 noundef %401, x86_fp80 noundef 0xK40008000000000000000, double noundef %428, x86_fp80 noundef 0xK3FFECCCCCCCCCCCCCCCD)
          to label %.critedge245 unwind label %429

429:                                              ; preds = %427
  %430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %446

.critedge245:                                     ; preds = %427, %420
  %.sink280 = phi ptr [ %45, %420 ], [ %46, %427 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink280) #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
  %431 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %432 = add nsw i32 %431, 1
  store i32 %432, 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 %433 unwind label %448

433:                                              ; preds = %.critedge245
  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
  %434 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %435 = call noundef x86_fp80 @_ZN4gcem15incomplete_betaIeedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, double noundef %434) #6
  %436 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %437 = fpext double %436 to x86_fp80
  %438 = fsub x86_fp80 %435, %437
  %439 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %438)
  %440 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %441 = call noundef double @_ZSt3absd(double noundef %440)
  %442 = fadd double %441, 1.000000e+00
  %443 = fpext double %442 to x86_fp80
  %444 = fdiv x86_fp80 %439, %443
  %445 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %435)
  br i1 %445, label %469, label %452

446:                                              ; preds = %429, %424, %407
  %.pn217 = phi { ptr, i32 } [ %430, %429 ], [ %408, %407 ], [ %425, %424 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %447

447:                                              ; preds = %446, %405
  %.pn217.pn = phi { ptr, i32 } [ %.pn217, %446 ], [ %406, %405 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  br label %483

448:                                              ; preds = %.critedge245
  %449 = 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 %477

450:                                              ; preds = %469, %462
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %476

452:                                              ; preds = %433
  %453 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %435)
  br i1 %453, label %461, label %454

454:                                              ; preds = %452
  %455 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %435)
  br i1 %455, label %456, label %461

456:                                              ; preds = %454
  %457 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %458 = fpext double %457 to x86_fp80
  %459 = fcmp oeq x86_fp80 %435, %458
  %460 = fcmp olt x86_fp80 %444, 0xK3FD0B424DC35095CD800
  %or.cond270 = or i1 %460, %459
  br i1 %or.cond270, label %469, label %462

461:                                              ; preds = %454, %452
  %.old269 = fcmp olt x86_fp80 %444, 0xK3FD0B424DC35095CD800
  br i1 %.old269, label %469, label %462

462:                                              ; preds = %456, %461
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %463 unwind label %450

463:                                              ; preds = %462
  %464 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %465 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  %466 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIedeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef nonnull %49, i32 noundef %464, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %435, double noundef %465, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, double noundef %466)
          to label %.critedge247 unwind label %467

467:                                              ; preds = %463
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %476

469:                                              ; preds = %433, %456, %461
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %470 unwind label %450

470:                                              ; preds = %469
  %471 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIeeeedEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef nonnull %50, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %435, x86_fp80 noundef %444, x86_fp80 noundef 0xK40008000000000000000, x86_fp80 noundef 0xK40008000000000000000, double noundef %471)
          to label %.critedge247 unwind label %472

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

.critedge247:                                     ; preds = %470, %463
  %.sink281 = phi ptr [ %49, %463 ], [ %50, %470 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink281) #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
  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, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %474 unwind label %478

474:                                              ; preds = %.critedge247
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %51)
          to label %475 unwind label %480

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

476:                                              ; preds = %472, %467, %450
  %.pn220 = phi { ptr, i32 } [ %473, %472 ], [ %451, %450 ], [ %468, %467 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %477

477:                                              ; preds = %476, %448
  %.pn220.pn = phi { ptr, i32 } [ %.pn220, %476 ], [ %449, %448 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  br label %483

478:                                              ; preds = %.critedge247
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %482

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

482:                                              ; preds = %480, %478
  %.pn223 = phi { ptr, i32 } [ %481, %480 ], [ %479, %478 ]
  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 %483

483:                                              ; preds = %482, %477, %447, %404, %361, %315, %283, %253, %223, %193, %163, %133, %103, %73
  %.pn223.pn = phi { ptr, i32 } [ %.pn223, %482 ], [ %.pn220.pn, %477 ], [ %.pn217.pn, %447 ], [ %.pn214.pn, %404 ], [ %.pn211.pn, %361 ], [ %.pn208.pn, %315 ], [ %.pn205.pn, %283 ], [ %.pn202.pn, %253 ], [ %.pn199.pn, %223 ], [ %.pn196.pn, %193 ], [ %.pn193.pn, %163 ], [ %.pn190.pn, %133 ], [ %.pn187.pn, %103 ], [ %.pn, %73 ]
  resume { ptr, i32 } %.pn223.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 @_ZN4gcem15incomplete_betaIeeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef, x86_fp80 noundef, 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_failIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 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_passIeeeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_T2_T3_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem15incomplete_betaIdddEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(double noundef, double noundef, 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_failIdddddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_T2_T3_(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem15incomplete_betaIdeeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(double noundef, x86_fp80 noundef, x86_fp80 noundef) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem15incomplete_betaIedeEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef, double noundef, x86_fp80 noundef) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef x86_fp80 @_ZN4gcem15incomplete_betaIeedEENSt11conditionalIXsr3std11is_integralINSt11common_typeIJT_T0_T1_EE4typeEEE5valueEdS7_E4typeES3_S4_S5_(x86_fp80 noundef, x86_fp80 noundef, double noundef) local_unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_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