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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

@GCEM_TEST_NUMBER = external dso_local global i32, align 4
@.str = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1

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

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

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

92:                                               ; preds = %89
  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 4, ptr %8) #6
  %93 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef 0.000000e+00) #6
  store float %93, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  %94 = invoke noundef float @_ZSt4fabsf(float noundef 0.000000e+00)
          to label %95 unwind label %129

95:                                               ; preds = %92
  store float %94, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  %96 = load float, ptr %8, align 4, !tbaa !9
  %97 = load float, ptr %9, align 4, !tbaa !9
  %98 = fsub float %96, %97
  %99 = invoke noundef float @_ZSt3absf(float noundef %98)
          to label %100 unwind label %133

100:                                              ; preds = %95
  %101 = load float, ptr %9, align 4, !tbaa !9
  %102 = invoke noundef float @_ZSt3absf(float noundef %101)
          to label %103 unwind label %133

103:                                              ; preds = %100
  %104 = fadd float 1.000000e+00, %102
  %105 = fdiv float %99, %104
  store float %105, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #6
  store i8 0, ptr %11, align 1, !tbaa !11
  %106 = load float, ptr %8, align 4, !tbaa !9
  %107 = fpext float %106 to x86_fp80
  %108 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %107)
          to label %109 unwind label %137

109:                                              ; preds = %103
  br i1 %108, label %110, label %141

110:                                              ; preds = %109
  %111 = load float, ptr %9, align 4, !tbaa !9
  %112 = fpext float %111 to x86_fp80
  %113 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %112)
          to label %114 unwind label %137

114:                                              ; preds = %110
  br i1 %113, label %115, label %141

115:                                              ; preds = %114
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %173

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

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

124:                                              ; preds = %120, %116
  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 %1048

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

129:                                              ; preds = %92
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %4, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %5, align 4
  br label %214

133:                                              ; preds = %100, %95
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %4, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %5, align 4
  br label %213

137:                                              ; preds = %176, %161, %146, %141, %110, %103
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %4, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %5, align 4
  br label %212

141:                                              ; preds = %114, %109
  %142 = load float, ptr %8, align 4, !tbaa !9
  %143 = fpext float %142 to x86_fp80
  %144 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %143)
          to label %145 unwind label %137

145:                                              ; preds = %141
  br i1 %144, label %156, label %146

146:                                              ; preds = %145
  %147 = load float, ptr %8, align 4, !tbaa !9
  %148 = fpext float %147 to x86_fp80
  %149 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %148)
          to label %150 unwind label %137

150:                                              ; preds = %146
  br i1 %149, label %151, label %156

151:                                              ; preds = %150
  %152 = load float, ptr %8, align 4, !tbaa !9
  %153 = load float, ptr %9, align 4, !tbaa !9
  %154 = fcmp oeq float %152, %153
  br i1 %154, label %155, label %156

155:                                              ; preds = %151
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %172

156:                                              ; preds = %151, %150, %145
  %157 = load float, ptr %10, align 4, !tbaa !9
  %158 = fpext float %157 to double
  %159 = fcmp olt double %158, 0x3D06849B86A12B9B
  br i1 %159, label %160, label %161

160:                                              ; preds = %156
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %171

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

162:                                              ; preds = %161
  %163 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %164 = load float, ptr %8, align 4, !tbaa !9
  %165 = load float, ptr %9, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %12, i32 noundef %163, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %164, float noundef %165, float noundef 0.000000e+00)
          to label %166 unwind label %167

166:                                              ; preds = %162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %171

167:                                              ; preds = %162
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %4, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %212

171:                                              ; preds = %166, %160
  br label %172

172:                                              ; preds = %171, %155
  br label %173

173:                                              ; preds = %172, %115
  %174 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %175 = trunc i8 %174 to i1
  br i1 %175, label %176, label %185

176:                                              ; preds = %173
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %177 unwind label %137

177:                                              ; preds = %176
  %178 = load float, ptr %8, align 4, !tbaa !9
  %179 = load float, ptr %10, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %13, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %178, float noundef %179, float noundef 0.000000e+00)
          to label %180 unwind label %181

180:                                              ; preds = %177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %185

181:                                              ; preds = %177
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %4, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %212

185:                                              ; preds = %180, %173
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 4, 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
  %186 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %188 unwind label %216

188:                                              ; preds = %185
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  %189 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef -0.000000e+00) #6
  store float %189, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  %190 = invoke noundef float @_ZSt4fabsf(float noundef -0.000000e+00)
          to label %191 unwind label %220

191:                                              ; preds = %188
  store float %190, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %192 = load float, ptr %16, align 4, !tbaa !9
  %193 = load float, ptr %17, align 4, !tbaa !9
  %194 = fsub float %192, %193
  %195 = invoke noundef float @_ZSt3absf(float noundef %194)
          to label %196 unwind label %224

196:                                              ; preds = %191
  %197 = load float, ptr %17, align 4, !tbaa !9
  %198 = invoke noundef float @_ZSt3absf(float noundef %197)
          to label %199 unwind label %224

199:                                              ; preds = %196
  %200 = fadd float 1.000000e+00, %198
  %201 = fdiv float %195, %200
  store float %201, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #6
  store i8 0, ptr %19, align 1, !tbaa !11
  %202 = load float, ptr %16, align 4, !tbaa !9
  %203 = fpext float %202 to x86_fp80
  %204 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %203)
          to label %205 unwind label %228

205:                                              ; preds = %199
  br i1 %204, label %206, label %232

206:                                              ; preds = %205
  %207 = load float, ptr %17, align 4, !tbaa !9
  %208 = fpext float %207 to x86_fp80
  %209 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %208)
          to label %210 unwind label %228

210:                                              ; preds = %206
  br i1 %209, label %211, label %232

211:                                              ; preds = %210
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %264

212:                                              ; preds = %181, %167, %137
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  br label %213

213:                                              ; preds = %212, %133
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  br label %214

214:                                              ; preds = %213, %129
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %215

215:                                              ; preds = %214, %125
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  br label %1048

216:                                              ; preds = %185
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %4, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #6
  br label %306

220:                                              ; preds = %188
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %4, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %5, align 4
  br label %305

224:                                              ; preds = %196, %191
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %4, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %5, align 4
  br label %304

228:                                              ; preds = %267, %252, %237, %232, %206, %199
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %4, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %5, align 4
  br label %303

232:                                              ; preds = %210, %205
  %233 = load float, ptr %16, align 4, !tbaa !9
  %234 = fpext float %233 to x86_fp80
  %235 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %234)
          to label %236 unwind label %228

236:                                              ; preds = %232
  br i1 %235, label %247, label %237

237:                                              ; preds = %236
  %238 = load float, ptr %16, align 4, !tbaa !9
  %239 = fpext float %238 to x86_fp80
  %240 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %239)
          to label %241 unwind label %228

241:                                              ; preds = %237
  br i1 %240, label %242, label %247

242:                                              ; preds = %241
  %243 = load float, ptr %16, align 4, !tbaa !9
  %244 = load float, ptr %17, align 4, !tbaa !9
  %245 = fcmp oeq float %243, %244
  br i1 %245, label %246, label %247

246:                                              ; preds = %242
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %263

247:                                              ; preds = %242, %241, %236
  %248 = load float, ptr %18, align 4, !tbaa !9
  %249 = fpext float %248 to double
  %250 = fcmp olt double %249, 0x3D06849B86A12B9B
  br i1 %250, label %251, label %252

251:                                              ; preds = %247
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %262

252:                                              ; preds = %247
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %253 unwind label %228

253:                                              ; preds = %252
  %254 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %255 = load float, ptr %16, align 4, !tbaa !9
  %256 = load float, ptr %17, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %20, i32 noundef %254, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %255, float noundef %256, float noundef -0.000000e+00)
          to label %257 unwind label %258

257:                                              ; preds = %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %262

258:                                              ; preds = %253
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %4, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %303

262:                                              ; preds = %257, %251
  br label %263

263:                                              ; preds = %262, %246
  br label %264

264:                                              ; preds = %263, %211
  %265 = load i8, ptr %19, align 1, !tbaa !11, !range !13, !noundef !14
  %266 = trunc i8 %265 to i1
  br i1 %266, label %267, label %276

267:                                              ; preds = %264
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %268 unwind label %228

268:                                              ; preds = %267
  %269 = load float, ptr %16, align 4, !tbaa !9
  %270 = load float, ptr %18, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %21, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %269, float noundef %270, float noundef -0.000000e+00)
          to label %271 unwind label %272

271:                                              ; preds = %268
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %276

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

276:                                              ; preds = %271, %264
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  %277 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %278 = add nsw i32 %277, 1
  store i32 %278, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %279 unwind label %307

279:                                              ; preds = %276
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  %280 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef 1.000000e+00) #6
  store float %280, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  %281 = invoke noundef float @_ZSt4fabsf(float noundef 1.000000e+00)
          to label %282 unwind label %311

282:                                              ; preds = %279
  store float %281, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  %283 = load float, ptr %24, align 4, !tbaa !9
  %284 = load float, ptr %25, align 4, !tbaa !9
  %285 = fsub float %283, %284
  %286 = invoke noundef float @_ZSt3absf(float noundef %285)
          to label %287 unwind label %315

287:                                              ; preds = %282
  %288 = load float, ptr %25, align 4, !tbaa !9
  %289 = invoke noundef float @_ZSt3absf(float noundef %288)
          to label %290 unwind label %315

290:                                              ; preds = %287
  %291 = fadd float 1.000000e+00, %289
  %292 = fdiv float %286, %291
  store float %292, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #6
  store i8 0, ptr %27, align 1, !tbaa !11
  %293 = load float, ptr %24, align 4, !tbaa !9
  %294 = fpext float %293 to x86_fp80
  %295 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %294)
          to label %296 unwind label %319

296:                                              ; preds = %290
  br i1 %295, label %297, label %323

297:                                              ; preds = %296
  %298 = load float, ptr %25, align 4, !tbaa !9
  %299 = fpext float %298 to x86_fp80
  %300 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %299)
          to label %301 unwind label %319

301:                                              ; preds = %297
  br i1 %300, label %302, label %323

302:                                              ; preds = %301
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %355

303:                                              ; preds = %272, %258, %228
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  br label %304

304:                                              ; preds = %303, %224
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %305

305:                                              ; preds = %304, %220
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %306

306:                                              ; preds = %305, %216
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %1048

307:                                              ; preds = %276
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %4, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  br label %397

311:                                              ; preds = %279
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %4, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %5, align 4
  br label %396

315:                                              ; preds = %287, %282
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %4, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %5, align 4
  br label %395

319:                                              ; preds = %358, %343, %328, %323, %297, %290
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %4, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %5, align 4
  br label %394

323:                                              ; preds = %301, %296
  %324 = load float, ptr %24, align 4, !tbaa !9
  %325 = fpext float %324 to x86_fp80
  %326 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %325)
          to label %327 unwind label %319

327:                                              ; preds = %323
  br i1 %326, label %338, label %328

328:                                              ; preds = %327
  %329 = load float, ptr %24, align 4, !tbaa !9
  %330 = fpext float %329 to x86_fp80
  %331 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %330)
          to label %332 unwind label %319

332:                                              ; preds = %328
  br i1 %331, label %333, label %338

333:                                              ; preds = %332
  %334 = load float, ptr %24, align 4, !tbaa !9
  %335 = load float, ptr %25, align 4, !tbaa !9
  %336 = fcmp oeq float %334, %335
  br i1 %336, label %337, label %338

337:                                              ; preds = %333
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %354

338:                                              ; preds = %333, %332, %327
  %339 = load float, ptr %26, align 4, !tbaa !9
  %340 = fpext float %339 to double
  %341 = fcmp olt double %340, 0x3D06849B86A12B9B
  br i1 %341, label %342, label %343

342:                                              ; preds = %338
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %353

343:                                              ; preds = %338
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %344 unwind label %319

344:                                              ; preds = %343
  %345 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %346 = load float, ptr %24, align 4, !tbaa !9
  %347 = load float, ptr %25, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %28, i32 noundef %345, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %346, float noundef %347, float noundef 1.000000e+00)
          to label %348 unwind label %349

348:                                              ; preds = %344
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %353

349:                                              ; preds = %344
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %4, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %394

353:                                              ; preds = %348, %342
  br label %354

354:                                              ; preds = %353, %337
  br label %355

355:                                              ; preds = %354, %302
  %356 = load i8, ptr %27, align 1, !tbaa !11, !range !13, !noundef !14
  %357 = trunc i8 %356 to i1
  br i1 %357, label %358, label %367

358:                                              ; preds = %355
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %359 unwind label %319

359:                                              ; preds = %358
  %360 = load float, ptr %24, align 4, !tbaa !9
  %361 = load float, ptr %26, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %29, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %360, float noundef %361, float noundef 1.000000e+00)
          to label %362 unwind label %363

362:                                              ; preds = %359
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %367

363:                                              ; preds = %359
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %4, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %394

367:                                              ; preds = %362, %355
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  %368 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %370 unwind label %398

370:                                              ; preds = %367
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  %371 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef -1.000000e+00) #6
  store float %371, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  %372 = invoke noundef float @_ZSt4fabsf(float noundef -1.000000e+00)
          to label %373 unwind label %402

373:                                              ; preds = %370
  store float %372, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  %374 = load float, ptr %32, align 4, !tbaa !9
  %375 = load float, ptr %33, align 4, !tbaa !9
  %376 = fsub float %374, %375
  %377 = invoke noundef float @_ZSt3absf(float noundef %376)
          to label %378 unwind label %406

378:                                              ; preds = %373
  %379 = load float, ptr %33, align 4, !tbaa !9
  %380 = invoke noundef float @_ZSt3absf(float noundef %379)
          to label %381 unwind label %406

381:                                              ; preds = %378
  %382 = fadd float 1.000000e+00, %380
  %383 = fdiv float %377, %382
  store float %383, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #6
  store i8 0, ptr %35, align 1, !tbaa !11
  %384 = load float, ptr %32, align 4, !tbaa !9
  %385 = fpext float %384 to x86_fp80
  %386 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %385)
          to label %387 unwind label %410

387:                                              ; preds = %381
  br i1 %386, label %388, label %414

388:                                              ; preds = %387
  %389 = load float, ptr %33, align 4, !tbaa !9
  %390 = fpext float %389 to x86_fp80
  %391 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %390)
          to label %392 unwind label %410

392:                                              ; preds = %388
  br i1 %391, label %393, label %414

393:                                              ; preds = %392
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %446

394:                                              ; preds = %363, %349, %319
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #6
  br label %395

395:                                              ; preds = %394, %315
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br label %396

396:                                              ; preds = %395, %311
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %397

397:                                              ; preds = %396, %307
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %1048

398:                                              ; preds = %367
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %4, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %490

402:                                              ; preds = %370
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %4, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %5, align 4
  br label %489

406:                                              ; preds = %378, %373
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %4, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %5, align 4
  br label %488

410:                                              ; preds = %449, %434, %419, %414, %388, %381
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %4, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %5, align 4
  br label %487

414:                                              ; preds = %392, %387
  %415 = load float, ptr %32, align 4, !tbaa !9
  %416 = fpext float %415 to x86_fp80
  %417 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %416)
          to label %418 unwind label %410

418:                                              ; preds = %414
  br i1 %417, label %429, label %419

419:                                              ; preds = %418
  %420 = load float, ptr %32, align 4, !tbaa !9
  %421 = fpext float %420 to x86_fp80
  %422 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %421)
          to label %423 unwind label %410

423:                                              ; preds = %419
  br i1 %422, label %424, label %429

424:                                              ; preds = %423
  %425 = load float, ptr %32, align 4, !tbaa !9
  %426 = load float, ptr %33, align 4, !tbaa !9
  %427 = fcmp oeq float %425, %426
  br i1 %427, label %428, label %429

428:                                              ; preds = %424
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %445

429:                                              ; preds = %424, %423, %418
  %430 = load float, ptr %34, align 4, !tbaa !9
  %431 = fpext float %430 to double
  %432 = fcmp olt double %431, 0x3D06849B86A12B9B
  br i1 %432, label %433, label %434

433:                                              ; preds = %429
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %444

434:                                              ; preds = %429
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %435 unwind label %410

435:                                              ; preds = %434
  %436 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %437 = load float, ptr %32, align 4, !tbaa !9
  %438 = load float, ptr %33, align 4, !tbaa !9
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %36, i32 noundef %436, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %437, float noundef %438, float noundef -1.000000e+00)
          to label %439 unwind label %440

439:                                              ; preds = %435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %444

440:                                              ; preds = %435
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %4, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %487

444:                                              ; preds = %439, %433
  br label %445

445:                                              ; preds = %444, %428
  br label %446

446:                                              ; preds = %445, %393
  %447 = load i8, ptr %35, align 1, !tbaa !11, !range !13, !noundef !14
  %448 = trunc i8 %447 to i1
  br i1 %448, label %449, label %458

449:                                              ; preds = %446
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %450 unwind label %410

450:                                              ; preds = %449
  %451 = load float, ptr %32, align 4, !tbaa !9
  %452 = load float, ptr %34, align 4, !tbaa !9
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %37, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %451, float noundef %452, float noundef -1.000000e+00)
          to label %453 unwind label %454

453:                                              ; preds = %450
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %458

454:                                              ; preds = %450
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %4, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %487

458:                                              ; preds = %453, %446
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  %459 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %460 = add nsw i32 %459, 1
  store i32 %460, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %461 unwind label %491

461:                                              ; preds = %458
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  %462 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  %463 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %462) #6
  store float %463, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  %464 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  %465 = invoke noundef float @_ZSt4fabsf(float noundef %464)
          to label %466 unwind label %495

466:                                              ; preds = %461
  store float %465, ptr %41, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  %467 = load float, ptr %40, align 4, !tbaa !9
  %468 = load float, ptr %41, align 4, !tbaa !9
  %469 = fsub float %467, %468
  %470 = invoke noundef float @_ZSt3absf(float noundef %469)
          to label %471 unwind label %499

471:                                              ; preds = %466
  %472 = load float, ptr %41, align 4, !tbaa !9
  %473 = invoke noundef float @_ZSt3absf(float noundef %472)
          to label %474 unwind label %499

474:                                              ; preds = %471
  %475 = fadd float 1.000000e+00, %473
  %476 = fdiv float %470, %475
  store float %476, ptr %42, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #6
  store i8 0, ptr %43, align 1, !tbaa !11
  %477 = load float, ptr %40, align 4, !tbaa !9
  %478 = fpext float %477 to x86_fp80
  %479 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %478)
          to label %480 unwind label %503

480:                                              ; preds = %474
  br i1 %479, label %481, label %507

481:                                              ; preds = %480
  %482 = load float, ptr %41, align 4, !tbaa !9
  %483 = fpext float %482 to x86_fp80
  %484 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %483)
          to label %485 unwind label %503

485:                                              ; preds = %481
  br i1 %484, label %486, label %507

486:                                              ; preds = %485
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %540

487:                                              ; preds = %454, %440, %410
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #6
  br label %488

488:                                              ; preds = %487, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %489

489:                                              ; preds = %488, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %490

490:                                              ; preds = %489, %398
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  br label %1048

491:                                              ; preds = %458
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %4, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #6
  br label %585

495:                                              ; preds = %461
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %4, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %5, align 4
  br label %584

499:                                              ; preds = %471, %466
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %4, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %5, align 4
  br label %583

503:                                              ; preds = %543, %527, %512, %507, %481, %474
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %4, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %5, align 4
  br label %582

507:                                              ; preds = %485, %480
  %508 = load float, ptr %40, align 4, !tbaa !9
  %509 = fpext float %508 to x86_fp80
  %510 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %509)
          to label %511 unwind label %503

511:                                              ; preds = %507
  br i1 %510, label %522, label %512

512:                                              ; preds = %511
  %513 = load float, ptr %40, align 4, !tbaa !9
  %514 = fpext float %513 to x86_fp80
  %515 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %514)
          to label %516 unwind label %503

516:                                              ; preds = %512
  br i1 %515, label %517, label %522

517:                                              ; preds = %516
  %518 = load float, ptr %40, align 4, !tbaa !9
  %519 = load float, ptr %41, align 4, !tbaa !9
  %520 = fcmp oeq float %518, %519
  br i1 %520, label %521, label %522

521:                                              ; preds = %517
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %539

522:                                              ; preds = %517, %516, %511
  %523 = load float, ptr %42, align 4, !tbaa !9
  %524 = fpext float %523 to double
  %525 = fcmp olt double %524, 0x3D06849B86A12B9B
  br i1 %525, label %526, label %527

526:                                              ; preds = %522
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %538

527:                                              ; preds = %522
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %528 unwind label %503

528:                                              ; preds = %527
  %529 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %530 = load float, ptr %40, align 4, !tbaa !9
  %531 = load float, ptr %41, align 4, !tbaa !9
  %532 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %44, i32 noundef %529, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %530, float noundef %531, float noundef %532)
          to label %533 unwind label %534

533:                                              ; preds = %528
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  br label %538

534:                                              ; preds = %528
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %4, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  br label %582

538:                                              ; preds = %533, %526
  br label %539

539:                                              ; preds = %538, %521
  br label %540

540:                                              ; preds = %539, %486
  %541 = load i8, ptr %43, align 1, !tbaa !11, !range !13, !noundef !14
  %542 = trunc i8 %541 to i1
  br i1 %542, label %543, label %553

543:                                              ; preds = %540
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %544 unwind label %503

544:                                              ; preds = %543
  %545 = load float, ptr %40, align 4, !tbaa !9
  %546 = load float, ptr %42, align 4, !tbaa !9
  %547 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %45, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %545, float noundef %546, float noundef %547)
          to label %548 unwind label %549

548:                                              ; preds = %544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %553

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

553:                                              ; preds = %548, %540
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #6
  %554 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %556 unwind label %586

556:                                              ; preds = %553
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  %557 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  %558 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %557) #6
  store float %558, ptr %48, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  %559 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  %560 = invoke noundef float @_ZSt4fabsf(float noundef %559)
          to label %561 unwind label %590

561:                                              ; preds = %556
  store float %560, ptr %49, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #6
  %562 = load float, ptr %48, align 4, !tbaa !9
  %563 = load float, ptr %49, align 4, !tbaa !9
  %564 = fsub float %562, %563
  %565 = invoke noundef float @_ZSt3absf(float noundef %564)
          to label %566 unwind label %594

566:                                              ; preds = %561
  %567 = load float, ptr %49, align 4, !tbaa !9
  %568 = invoke noundef float @_ZSt3absf(float noundef %567)
          to label %569 unwind label %594

569:                                              ; preds = %566
  %570 = fadd float 1.000000e+00, %568
  %571 = fdiv float %565, %570
  store float %571, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #6
  store i8 0, ptr %51, align 1, !tbaa !11
  %572 = load float, ptr %48, align 4, !tbaa !9
  %573 = fpext float %572 to x86_fp80
  %574 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %573)
          to label %575 unwind label %598

575:                                              ; preds = %569
  br i1 %574, label %576, label %602

576:                                              ; preds = %575
  %577 = load float, ptr %49, align 4, !tbaa !9
  %578 = fpext float %577 to x86_fp80
  %579 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %578)
          to label %580 unwind label %598

580:                                              ; preds = %576
  br i1 %579, label %581, label %602

581:                                              ; preds = %580
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %635

582:                                              ; preds = %549, %534, %503
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #6
  br label %583

583:                                              ; preds = %582, %499
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %584

584:                                              ; preds = %583, %495
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %585

585:                                              ; preds = %584, %491
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #6
  br label %1048

586:                                              ; preds = %553
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %4, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #6
  br label %680

590:                                              ; preds = %556
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %4, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %5, align 4
  br label %679

594:                                              ; preds = %566, %561
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %4, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %5, align 4
  br label %678

598:                                              ; preds = %638, %622, %607, %602, %576, %569
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %4, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %5, align 4
  br label %677

602:                                              ; preds = %580, %575
  %603 = load float, ptr %48, align 4, !tbaa !9
  %604 = fpext float %603 to x86_fp80
  %605 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %604)
          to label %606 unwind label %598

606:                                              ; preds = %602
  br i1 %605, label %617, label %607

607:                                              ; preds = %606
  %608 = load float, ptr %48, align 4, !tbaa !9
  %609 = fpext float %608 to x86_fp80
  %610 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %609)
          to label %611 unwind label %598

611:                                              ; preds = %607
  br i1 %610, label %612, label %617

612:                                              ; preds = %611
  %613 = load float, ptr %48, align 4, !tbaa !9
  %614 = load float, ptr %49, align 4, !tbaa !9
  %615 = fcmp oeq float %613, %614
  br i1 %615, label %616, label %617

616:                                              ; preds = %612
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %634

617:                                              ; preds = %612, %611, %606
  %618 = load float, ptr %50, align 4, !tbaa !9
  %619 = fpext float %618 to double
  %620 = fcmp olt double %619, 0x3D06849B86A12B9B
  br i1 %620, label %621, label %622

621:                                              ; preds = %617
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %633

622:                                              ; preds = %617
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %623 unwind label %598

623:                                              ; preds = %622
  %624 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %625 = load float, ptr %48, align 4, !tbaa !9
  %626 = load float, ptr %49, align 4, !tbaa !9
  %627 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %52, i32 noundef %624, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %625, float noundef %626, float noundef %627)
          to label %628 unwind label %629

628:                                              ; preds = %623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %633

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

633:                                              ; preds = %628, %621
  br label %634

634:                                              ; preds = %633, %616
  br label %635

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

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

639:                                              ; preds = %638
  %640 = load float, ptr %48, align 4, !tbaa !9
  %641 = load float, ptr %50, align 4, !tbaa !9
  %642 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %53, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %640, float noundef %641, float noundef %642)
          to label %643 unwind label %644

643:                                              ; preds = %639
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %648

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

648:                                              ; preds = %643, %635
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  %649 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %651 unwind label %681

651:                                              ; preds = %648
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  %652 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %653 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %652) #6
  store float %653, ptr %56, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  %654 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %655 = invoke noundef float @_ZSt4fabsf(float noundef %654)
          to label %656 unwind label %685

656:                                              ; preds = %651
  store float %655, ptr %57, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #6
  %657 = load float, ptr %56, align 4, !tbaa !9
  %658 = load float, ptr %57, align 4, !tbaa !9
  %659 = fsub float %657, %658
  %660 = invoke noundef float @_ZSt3absf(float noundef %659)
          to label %661 unwind label %689

661:                                              ; preds = %656
  %662 = load float, ptr %57, align 4, !tbaa !9
  %663 = invoke noundef float @_ZSt3absf(float noundef %662)
          to label %664 unwind label %689

664:                                              ; preds = %661
  %665 = fadd float 1.000000e+00, %663
  %666 = fdiv float %660, %665
  store float %666, ptr %58, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #6
  store i8 0, ptr %59, align 1, !tbaa !11
  %667 = load float, ptr %56, align 4, !tbaa !9
  %668 = fpext float %667 to x86_fp80
  %669 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %668)
          to label %670 unwind label %693

670:                                              ; preds = %664
  br i1 %669, label %671, label %697

671:                                              ; preds = %670
  %672 = load float, ptr %57, align 4, !tbaa !9
  %673 = fpext float %672 to x86_fp80
  %674 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %673)
          to label %675 unwind label %693

675:                                              ; preds = %671
  br i1 %674, label %676, label %697

676:                                              ; preds = %675
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %730

677:                                              ; preds = %644, %629, %598
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #6
  br label %678

678:                                              ; preds = %677, %594
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  br label %679

679:                                              ; preds = %678, %590
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %680

680:                                              ; preds = %679, %586
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  br label %1048

681:                                              ; preds = %648
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %4, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  br label %775

685:                                              ; preds = %651
  %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
  br label %774

689:                                              ; preds = %661, %656
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %4, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %5, align 4
  br label %773

693:                                              ; preds = %733, %717, %702, %697, %671, %664
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %4, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %5, align 4
  br label %772

697:                                              ; preds = %675, %670
  %698 = load float, ptr %56, align 4, !tbaa !9
  %699 = fpext float %698 to x86_fp80
  %700 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %699)
          to label %701 unwind label %693

701:                                              ; preds = %697
  br i1 %700, label %712, label %702

702:                                              ; preds = %701
  %703 = load float, ptr %56, align 4, !tbaa !9
  %704 = fpext float %703 to x86_fp80
  %705 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %704)
          to label %706 unwind label %693

706:                                              ; preds = %702
  br i1 %705, label %707, label %712

707:                                              ; preds = %706
  %708 = load float, ptr %56, align 4, !tbaa !9
  %709 = load float, ptr %57, align 4, !tbaa !9
  %710 = fcmp oeq float %708, %709
  br i1 %710, label %711, label %712

711:                                              ; preds = %707
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %729

712:                                              ; preds = %707, %706, %701
  %713 = load float, ptr %58, align 4, !tbaa !9
  %714 = fpext float %713 to double
  %715 = fcmp olt double %714, 0x3D06849B86A12B9B
  br i1 %715, label %716, label %717

716:                                              ; preds = %712
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %728

717:                                              ; preds = %712
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %718 unwind label %693

718:                                              ; preds = %717
  %719 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %720 = load float, ptr %56, align 4, !tbaa !9
  %721 = load float, ptr %57, align 4, !tbaa !9
  %722 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %60, i32 noundef %719, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %720, float noundef %721, float noundef %722)
          to label %723 unwind label %724

723:                                              ; preds = %718
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %728

724:                                              ; preds = %718
  %725 = landingpad { ptr, i32 }
          cleanup
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %4, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %772

728:                                              ; preds = %723, %716
  br label %729

729:                                              ; preds = %728, %711
  br label %730

730:                                              ; preds = %729, %676
  %731 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %732 = trunc i8 %731 to i1
  br i1 %732, label %733, label %743

733:                                              ; preds = %730
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %734 unwind label %693

734:                                              ; preds = %733
  %735 = load float, ptr %56, align 4, !tbaa !9
  %736 = load float, ptr %58, align 4, !tbaa !9
  %737 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %61, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %735, float noundef %736, float noundef %737)
          to label %738 unwind label %739

738:                                              ; preds = %734
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %743

739:                                              ; preds = %734
  %740 = landingpad { ptr, i32 }
          cleanup
  %741 = extractvalue { ptr, i32 } %740, 0
  store ptr %741, ptr %4, align 8
  %742 = extractvalue { ptr, i32 } %740, 1
  store i32 %742, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %772

743:                                              ; preds = %738, %730
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  %744 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %745 = add nsw i32 %744, 1
  store i32 %745, 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 %746 unwind label %776

746:                                              ; preds = %743
  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 4, ptr %64) #6
  %747 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  %748 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %747) #6
  store float %748, ptr %64, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  %749 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  %750 = invoke noundef float @_ZSt4fabsf(float noundef %749)
          to label %751 unwind label %780

751:                                              ; preds = %746
  store float %750, ptr %65, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #6
  %752 = load float, ptr %64, align 4, !tbaa !9
  %753 = load float, ptr %65, align 4, !tbaa !9
  %754 = fsub float %752, %753
  %755 = invoke noundef float @_ZSt3absf(float noundef %754)
          to label %756 unwind label %784

756:                                              ; preds = %751
  %757 = load float, ptr %65, align 4, !tbaa !9
  %758 = invoke noundef float @_ZSt3absf(float noundef %757)
          to label %759 unwind label %784

759:                                              ; preds = %756
  %760 = fadd float 1.000000e+00, %758
  %761 = fdiv float %755, %760
  store float %761, ptr %66, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #6
  store i8 0, ptr %67, align 1, !tbaa !11
  %762 = load float, ptr %64, align 4, !tbaa !9
  %763 = fpext float %762 to x86_fp80
  %764 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %763)
          to label %765 unwind label %788

765:                                              ; preds = %759
  br i1 %764, label %766, label %792

766:                                              ; preds = %765
  %767 = load float, ptr %65, align 4, !tbaa !9
  %768 = fpext float %767 to x86_fp80
  %769 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %768)
          to label %770 unwind label %788

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

771:                                              ; preds = %770
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %825

772:                                              ; preds = %739, %724, %693
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  br label %773

773:                                              ; preds = %772, %689
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  br label %774

774:                                              ; preds = %773, %685
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %775

775:                                              ; preds = %774, %681
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  br label %1048

776:                                              ; preds = %743
  %777 = landingpad { ptr, i32 }
          cleanup
  %778 = extractvalue { ptr, i32 } %777, 0
  store ptr %778, ptr %4, align 8
  %779 = extractvalue { ptr, i32 } %777, 1
  store i32 %779, 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 %870

780:                                              ; preds = %746
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %4, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %5, align 4
  br label %869

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

788:                                              ; preds = %828, %812, %797, %792, %766, %759
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %4, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %5, align 4
  br label %867

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

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

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

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

802:                                              ; preds = %801
  %803 = load float, ptr %64, align 4, !tbaa !9
  %804 = load float, ptr %65, align 4, !tbaa !9
  %805 = fcmp oeq float %803, %804
  br i1 %805, label %806, label %807

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

807:                                              ; preds = %802, %801, %796
  %808 = load float, ptr %66, align 4, !tbaa !9
  %809 = fpext float %808 to double
  %810 = fcmp olt double %809, 0x3D06849B86A12B9B
  br i1 %810, label %811, label %812

811:                                              ; preds = %807
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %823

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

813:                                              ; preds = %812
  %814 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %815 = load float, ptr %64, align 4, !tbaa !9
  %816 = load float, ptr %65, align 4, !tbaa !9
  %817 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %68, i32 noundef %814, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %815, float noundef %816, float noundef %817)
          to label %818 unwind label %819

818:                                              ; preds = %813
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %823

819:                                              ; preds = %813
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %4, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %867

823:                                              ; preds = %818, %811
  br label %824

824:                                              ; preds = %823, %806
  br label %825

825:                                              ; preds = %824, %771
  %826 = load i8, ptr %67, align 1, !tbaa !11, !range !13, !noundef !14
  %827 = trunc i8 %826 to i1
  br i1 %827, label %828, label %838

828:                                              ; preds = %825
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %829 unwind label %788

829:                                              ; preds = %828
  %830 = load float, ptr %64, align 4, !tbaa !9
  %831 = load float, ptr %66, align 4, !tbaa !9
  %832 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %69, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %830, float noundef %831, float noundef %832)
          to label %833 unwind label %834

833:                                              ; preds = %829
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %838

834:                                              ; preds = %829
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %4, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %867

838:                                              ; preds = %833, %825
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, 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
  %839 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %840 = add nsw i32 %839, 1
  store i32 %840, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %841 unwind label %871

841:                                              ; preds = %838
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #6
  %842 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %843 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %842) #6
  store float %843, ptr %72, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #6
  %844 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %845 = invoke noundef float @_ZSt4fabsf(float noundef %844)
          to label %846 unwind label %875

846:                                              ; preds = %841
  store float %845, ptr %73, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #6
  %847 = load float, ptr %72, align 4, !tbaa !9
  %848 = load float, ptr %73, align 4, !tbaa !9
  %849 = fsub float %847, %848
  %850 = invoke noundef float @_ZSt3absf(float noundef %849)
          to label %851 unwind label %879

851:                                              ; preds = %846
  %852 = load float, ptr %73, align 4, !tbaa !9
  %853 = invoke noundef float @_ZSt3absf(float noundef %852)
          to label %854 unwind label %879

854:                                              ; preds = %851
  %855 = fadd float 1.000000e+00, %853
  %856 = fdiv float %850, %855
  store float %856, ptr %74, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #6
  store i8 0, ptr %75, align 1, !tbaa !11
  %857 = load float, ptr %72, align 4, !tbaa !9
  %858 = fpext float %857 to x86_fp80
  %859 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %858)
          to label %860 unwind label %883

860:                                              ; preds = %854
  br i1 %859, label %861, label %887

861:                                              ; preds = %860
  %862 = load float, ptr %73, align 4, !tbaa !9
  %863 = fpext float %862 to x86_fp80
  %864 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %863)
          to label %865 unwind label %883

865:                                              ; preds = %861
  br i1 %864, label %866, label %887

866:                                              ; preds = %865
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %920

867:                                              ; preds = %834, %819, %788
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #6
  br label %868

868:                                              ; preds = %867, %784
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  br label %869

869:                                              ; preds = %868, %780
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %870

870:                                              ; preds = %869, %776
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %1048

871:                                              ; preds = %838
  %872 = landingpad { ptr, i32 }
          cleanup
  %873 = extractvalue { ptr, i32 } %872, 0
  store ptr %873, ptr %4, align 8
  %874 = extractvalue { ptr, i32 } %872, 1
  store i32 %874, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #6
  br label %967

875:                                              ; preds = %841
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %4, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %5, align 4
  br label %966

879:                                              ; preds = %851, %846
  %880 = landingpad { ptr, i32 }
          cleanup
  %881 = extractvalue { ptr, i32 } %880, 0
  store ptr %881, ptr %4, align 8
  %882 = extractvalue { ptr, i32 } %880, 1
  store i32 %882, ptr %5, align 4
  br label %965

883:                                              ; preds = %923, %907, %892, %887, %861, %854
  %884 = landingpad { ptr, i32 }
          cleanup
  %885 = extractvalue { ptr, i32 } %884, 0
  store ptr %885, ptr %4, align 8
  %886 = extractvalue { ptr, i32 } %884, 1
  store i32 %886, ptr %5, align 4
  br label %964

887:                                              ; preds = %865, %860
  %888 = load float, ptr %72, align 4, !tbaa !9
  %889 = fpext float %888 to x86_fp80
  %890 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %889)
          to label %891 unwind label %883

891:                                              ; preds = %887
  br i1 %890, label %902, label %892

892:                                              ; preds = %891
  %893 = load float, ptr %72, align 4, !tbaa !9
  %894 = fpext float %893 to x86_fp80
  %895 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %894)
          to label %896 unwind label %883

896:                                              ; preds = %892
  br i1 %895, label %897, label %902

897:                                              ; preds = %896
  %898 = load float, ptr %72, align 4, !tbaa !9
  %899 = load float, ptr %73, align 4, !tbaa !9
  %900 = fcmp oeq float %898, %899
  br i1 %900, label %901, label %902

901:                                              ; preds = %897
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %919

902:                                              ; preds = %897, %896, %891
  %903 = load float, ptr %74, align 4, !tbaa !9
  %904 = fpext float %903 to double
  %905 = fcmp olt double %904, 0x3D06849B86A12B9B
  br i1 %905, label %906, label %907

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

907:                                              ; preds = %902
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %908 unwind label %883

908:                                              ; preds = %907
  %909 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %910 = load float, ptr %72, align 4, !tbaa !9
  %911 = load float, ptr %73, align 4, !tbaa !9
  %912 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %76, i32 noundef %909, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %910, float noundef %911, float noundef %912)
          to label %913 unwind label %914

913:                                              ; preds = %908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %918

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

918:                                              ; preds = %913, %906
  br label %919

919:                                              ; preds = %918, %901
  br label %920

920:                                              ; preds = %919, %866
  %921 = load i8, ptr %75, align 1, !tbaa !11, !range !13, !noundef !14
  %922 = trunc i8 %921 to i1
  br i1 %922, label %923, label %933

923:                                              ; preds = %920
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %924 unwind label %883

924:                                              ; preds = %923
  %925 = load float, ptr %72, align 4, !tbaa !9
  %926 = load float, ptr %74, align 4, !tbaa !9
  %927 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %77, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %925, float noundef %926, float noundef %927)
          to label %928 unwind label %929

928:                                              ; preds = %924
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %933

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

933:                                              ; preds = %928, %920
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  %934 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %936 unwind label %968

936:                                              ; preds = %933
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #6
  %937 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %938 = fneg float %937
  %939 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %938) #6
  store float %939, ptr %80, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #6
  %940 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %941 = fneg float %940
  %942 = invoke noundef float @_ZSt4fabsf(float noundef %941)
          to label %943 unwind label %972

943:                                              ; preds = %936
  store float %942, ptr %81, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #6
  %944 = load float, ptr %80, align 4, !tbaa !9
  %945 = load float, ptr %81, align 4, !tbaa !9
  %946 = fsub float %944, %945
  %947 = invoke noundef float @_ZSt3absf(float noundef %946)
          to label %948 unwind label %976

948:                                              ; preds = %943
  %949 = load float, ptr %81, align 4, !tbaa !9
  %950 = invoke noundef float @_ZSt3absf(float noundef %949)
          to label %951 unwind label %976

951:                                              ; preds = %948
  %952 = fadd float 1.000000e+00, %950
  %953 = fdiv float %947, %952
  store float %953, ptr %82, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #6
  store i8 0, ptr %83, align 1, !tbaa !11
  %954 = load float, ptr %80, align 4, !tbaa !9
  %955 = fpext float %954 to x86_fp80
  %956 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %955)
          to label %957 unwind label %980

957:                                              ; preds = %951
  br i1 %956, label %958, label %984

958:                                              ; preds = %957
  %959 = load float, ptr %81, align 4, !tbaa !9
  %960 = fpext float %959 to x86_fp80
  %961 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %960)
          to label %962 unwind label %980

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

963:                                              ; preds = %962
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1018

964:                                              ; preds = %929, %914, %883
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #6
  br label %965

965:                                              ; preds = %964, %879
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  br label %966

966:                                              ; preds = %965, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %967

967:                                              ; preds = %966, %871
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  br label %1048

968:                                              ; preds = %933
  %969 = landingpad { ptr, i32 }
          cleanup
  %970 = extractvalue { ptr, i32 } %969, 0
  store ptr %970, ptr %4, align 8
  %971 = extractvalue { ptr, i32 } %969, 1
  store i32 %971, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #6
  br label %1038

972:                                              ; preds = %936
  %973 = landingpad { ptr, i32 }
          cleanup
  %974 = extractvalue { ptr, i32 } %973, 0
  store ptr %974, ptr %4, align 8
  %975 = extractvalue { ptr, i32 } %973, 1
  store i32 %975, ptr %5, align 4
  br label %1037

976:                                              ; preds = %948, %943
  %977 = landingpad { ptr, i32 }
          cleanup
  %978 = extractvalue { ptr, i32 } %977, 0
  store ptr %978, ptr %4, align 8
  %979 = extractvalue { ptr, i32 } %977, 1
  store i32 %979, ptr %5, align 4
  br label %1036

980:                                              ; preds = %1021, %1004, %989, %984, %958, %951
  %981 = landingpad { ptr, i32 }
          cleanup
  %982 = extractvalue { ptr, i32 } %981, 0
  store ptr %982, ptr %4, align 8
  %983 = extractvalue { ptr, i32 } %981, 1
  store i32 %983, ptr %5, align 4
  br label %1035

984:                                              ; preds = %962, %957
  %985 = load float, ptr %80, align 4, !tbaa !9
  %986 = fpext float %985 to x86_fp80
  %987 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %986)
          to label %988 unwind label %980

988:                                              ; preds = %984
  br i1 %987, label %999, label %989

989:                                              ; preds = %988
  %990 = load float, ptr %80, align 4, !tbaa !9
  %991 = fpext float %990 to x86_fp80
  %992 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %991)
          to label %993 unwind label %980

993:                                              ; preds = %989
  br i1 %992, label %994, label %999

994:                                              ; preds = %993
  %995 = load float, ptr %80, align 4, !tbaa !9
  %996 = load float, ptr %81, align 4, !tbaa !9
  %997 = fcmp oeq float %995, %996
  br i1 %997, label %998, label %999

998:                                              ; preds = %994
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1017

999:                                              ; preds = %994, %993, %988
  %1000 = load float, ptr %82, align 4, !tbaa !9
  %1001 = fpext float %1000 to double
  %1002 = fcmp olt double %1001, 0x3D06849B86A12B9B
  br i1 %1002, label %1003, label %1004

1003:                                             ; preds = %999
  store i8 1, ptr %83, align 1, !tbaa !11
  br label %1016

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

1005:                                             ; preds = %1004
  %1006 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %1007 = load float, ptr %80, align 4, !tbaa !9
  %1008 = load float, ptr %81, align 4, !tbaa !9
  %1009 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %1010 = fneg float %1009
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %84, i32 noundef %1006, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1007, float noundef %1008, float noundef %1010)
          to label %1011 unwind label %1012

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

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

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

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

1018:                                             ; preds = %1017, %963
  %1019 = load i8, ptr %83, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc i8 %1019 to i1
  br i1 %1020, label %1021, label %1032

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

1022:                                             ; preds = %1021
  %1023 = load float, ptr %80, align 4, !tbaa !9
  %1024 = load float, ptr %82, align 4, !tbaa !9
  %1025 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %1026 = fneg float %1025
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %85, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %1023, float noundef %1024, float noundef %1026)
          to label %1027 unwind label %1028

1027:                                             ; preds = %1022
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %1032

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

1032:                                             ; preds = %1027, %1018
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1033 unwind label %1039

1033:                                             ; preds = %1032
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %86)
          to label %1034 unwind label %1043

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

1035:                                             ; preds = %1028, %1012, %980
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #6
  br label %1036

1036:                                             ; preds = %1035, %976
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #6
  br label %1037

1037:                                             ; preds = %1036, %972
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %1038

1038:                                             ; preds = %1037, %968
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  br label %1048

1039:                                             ; preds = %1032
  %1040 = landingpad { ptr, i32 }
          cleanup
  %1041 = extractvalue { ptr, i32 } %1040, 0
  store ptr %1041, ptr %4, align 8
  %1042 = extractvalue { ptr, i32 } %1040, 1
  store i32 %1042, ptr %5, align 4
  br label %1047

1043:                                             ; preds = %1033
  %1044 = landingpad { ptr, i32 }
          cleanup
  %1045 = extractvalue { ptr, i32 } %1044, 0
  store ptr %1045, ptr %4, align 8
  %1046 = extractvalue { ptr, i32 } %1044, 1
  store i32 %1046, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  br label %1047

1047:                                             ; preds = %1043, %1039
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #6
  br label %1048

1048:                                             ; preds = %1047, %1038, %967, %870, %775, %680, %585, %490, %397, %306, %215, %124
  %1049 = load ptr, ptr %4, align 8
  %1050 = load i32, ptr %5, align 4
  %1051 = insertvalue { ptr, i32 } poison, ptr %1049, 0
  %1052 = insertvalue { ptr, i32 } %1051, i32 %1050, 1
  resume { ptr, i32 } %1052
}

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

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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


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

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

@GCEM_TEST_NUMBER = external dso_local local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.std::__cxx11::basic_string", align 8
  %2 = alloca %"class.std::allocator", align 1
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  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 %45 unwind label %62

45:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %46 unwind label %64

46:                                               ; preds = %45
  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
  %47 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %48 = add nsw i32 %47, 1
  store i32 %48, 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 %49 unwind label %67

49:                                               ; preds = %46
  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
  %50 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef 0.000000e+00) #6
  %51 = call noundef float @_ZSt4fabsf(float noundef 0.000000e+00)
  %52 = fsub float %50, %51
  %53 = call noundef float @_ZSt3absf(float noundef %52)
  %54 = call noundef float @_ZSt3absf(float noundef %51)
  %55 = fadd float %54, 1.000000e+00
  %56 = fdiv float %53, %55
  %57 = fpext float %50 to x86_fp80
  %58 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %57)
  br i1 %58, label %59, label %71

59:                                               ; preds = %49
  %60 = fpext float %51 to x86_fp80
  %61 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %60)
  br i1 %61, label %84, label %71

62:                                               ; preds = %0
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %66

64:                                               ; preds = %45
  %65 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #6
  br label %66

66:                                               ; preds = %64, %62
  %.pn = phi { ptr, i32 } [ %65, %64 ], [ %63, %62 ]
  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 %467

67:                                               ; preds = %46
  %68 = 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 %104

69:                                               ; preds = %84, %79
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %103

71:                                               ; preds = %59, %49
  %72 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %57)
  br i1 %72, label %78, label %73

73:                                               ; preds = %71
  %74 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %57)
  %75 = fcmp oeq float %50, %51
  %or.cond = and i1 %75, %74
  %76 = fpext float %56 to double
  %77 = fcmp olt double %76, 0x3D06849B86A12B9B
  %or.cond246 = or i1 %77, %or.cond
  br i1 %or.cond246, label %84, label %79

78:                                               ; preds = %71
  %.old = fpext float %56 to double
  %.old245 = fcmp olt double %.old, 0x3D06849B86A12B9B
  br i1 %.old245, label %84, label %79

79:                                               ; preds = %73, %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 %69

80:                                               ; preds = %79
  %81 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %5, i32 noundef %81, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %50, float noundef %51, float noundef 0.000000e+00)
          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 %103

84:                                               ; preds = %59, %73, %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 %69

85:                                               ; preds = %84
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %50, float noundef %56, float noundef 0.000000e+00)
          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 %103

.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 %105

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 float @_ZN4gcem5fabsfIfEEfT_(float noundef -0.000000e+00) #6
  %92 = call noundef float @_ZSt4fabsf(float noundef -0.000000e+00)
  %93 = fsub float %91, %92
  %94 = call noundef float @_ZSt3absf(float noundef %93)
  %95 = call noundef float @_ZSt3absf(float noundef %92)
  %96 = fadd float %95, 1.000000e+00
  %97 = fdiv float %94, %96
  %98 = fpext float %91 to x86_fp80
  %99 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %98)
  br i1 %99, label %100, label %109

100:                                              ; preds = %90
  %101 = fpext float %92 to x86_fp80
  %102 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %101)
  br i1 %102, label %122, label %109

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

104:                                              ; preds = %103, %67
  %.pn185.pn = phi { ptr, i32 } [ %.pn185, %103 ], [ %68, %67 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %467

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

107:                                              ; preds = %122, %117
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %141

109:                                              ; preds = %100, %90
  %110 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %98)
  br i1 %110, label %116, label %111

111:                                              ; preds = %109
  %112 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %98)
  %113 = fcmp oeq float %91, %92
  %or.cond218 = and i1 %113, %112
  %114 = fpext float %97 to double
  %115 = fcmp olt double %114, 0x3D06849B86A12B9B
  %or.cond249 = or i1 %115, %or.cond218
  br i1 %or.cond249, label %122, label %117

116:                                              ; preds = %109
  %.old247 = fpext float %97 to double
  %.old248 = fcmp olt double %.old247, 0x3D06849B86A12B9B
  br i1 %.old248, label %122, label %117

117:                                              ; preds = %111, %116
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %118 unwind label %107

118:                                              ; preds = %117
  %119 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %9, i32 noundef %119, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %91, float noundef %92, float noundef -0.000000e+00)
          to label %.critedge220 unwind label %120

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

122:                                              ; preds = %100, %111, %116
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %123 unwind label %107

123:                                              ; preds = %122
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %91, float noundef %97, float noundef -0.000000e+00)
          to label %.critedge220 unwind label %124

124:                                              ; preds = %123
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %141

.critedge220:                                     ; preds = %123, %118
  %.sink274 = phi ptr [ %9, %118 ], [ %10, %123 ]
  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) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  %126 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  store i32 %127, 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 %128 unwind label %143

128:                                              ; preds = %.critedge220
  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
  %129 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef 1.000000e+00) #6
  %130 = call noundef float @_ZSt4fabsf(float noundef 1.000000e+00)
  %131 = fsub float %129, %130
  %132 = call noundef float @_ZSt3absf(float noundef %131)
  %133 = call noundef float @_ZSt3absf(float noundef %130)
  %134 = fadd float %133, 1.000000e+00
  %135 = fdiv float %132, %134
  %136 = fpext float %129 to x86_fp80
  %137 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %136)
  br i1 %137, label %138, label %147

138:                                              ; preds = %128
  %139 = fpext float %130 to x86_fp80
  %140 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %139)
  br i1 %140, label %160, label %147

141:                                              ; preds = %124, %120, %107
  %.pn188 = phi { ptr, i32 } [ %125, %124 ], [ %108, %107 ], [ %121, %120 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %142

142:                                              ; preds = %141, %105
  %.pn188.pn = phi { ptr, i32 } [ %.pn188, %141 ], [ %106, %105 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %467

143:                                              ; preds = %.critedge220
  %144 = 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 %180

145:                                              ; preds = %160, %155
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %179

147:                                              ; preds = %138, %128
  %148 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %136)
  br i1 %148, label %154, label %149

149:                                              ; preds = %147
  %150 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %136)
  %151 = fcmp oeq float %129, %130
  %or.cond221 = and i1 %151, %150
  %152 = fpext float %135 to double
  %153 = fcmp olt double %152, 0x3D06849B86A12B9B
  %or.cond252 = or i1 %153, %or.cond221
  br i1 %or.cond252, label %160, label %155

154:                                              ; preds = %147
  %.old250 = fpext float %135 to double
  %.old251 = fcmp olt double %.old250, 0x3D06849B86A12B9B
  br i1 %.old251, label %160, label %155

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

156:                                              ; preds = %155
  %157 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %13, i32 noundef %157, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %129, float noundef %130, float noundef 1.000000e+00)
          to label %.critedge223 unwind label %158

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

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

161:                                              ; preds = %160
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %129, float noundef %135, float noundef 1.000000e+00)
          to label %.critedge223 unwind label %162

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

.critedge223:                                     ; preds = %161, %156
  %.sink275 = phi ptr [ %13, %156 ], [ %14, %161 ]
  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) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  %164 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %166 unwind label %181

166:                                              ; preds = %.critedge223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  %167 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef -1.000000e+00) #6
  %168 = call noundef float @_ZSt4fabsf(float noundef -1.000000e+00)
  %169 = fsub float %167, %168
  %170 = call noundef float @_ZSt3absf(float noundef %169)
  %171 = call noundef float @_ZSt3absf(float noundef %168)
  %172 = fadd float %171, 1.000000e+00
  %173 = fdiv float %170, %172
  %174 = fpext float %167 to x86_fp80
  %175 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %174)
  br i1 %175, label %176, label %185

176:                                              ; preds = %166
  %177 = fpext float %168 to x86_fp80
  %178 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %177)
  br i1 %178, label %198, label %185

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

180:                                              ; preds = %179, %143
  %.pn191.pn = phi { ptr, i32 } [ %.pn191, %179 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %467

181:                                              ; preds = %.critedge223
  %182 = 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 %220

183:                                              ; preds = %198, %193
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %219

185:                                              ; preds = %176, %166
  %186 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %174)
  br i1 %186, label %192, label %187

187:                                              ; preds = %185
  %188 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %174)
  %189 = fcmp oeq float %167, %168
  %or.cond224 = and i1 %189, %188
  %190 = fpext float %173 to double
  %191 = fcmp olt double %190, 0x3D06849B86A12B9B
  %or.cond255 = or i1 %191, %or.cond224
  br i1 %or.cond255, label %198, label %193

192:                                              ; preds = %185
  %.old253 = fpext float %173 to double
  %.old254 = fcmp olt double %.old253, 0x3D06849B86A12B9B
  br i1 %.old254, label %198, label %193

193:                                              ; preds = %187, %192
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %194 unwind label %183

194:                                              ; preds = %193
  %195 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %17, i32 noundef %195, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %167, float noundef %168, float noundef -1.000000e+00)
          to label %.critedge226 unwind label %196

196:                                              ; preds = %194
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %219

198:                                              ; preds = %176, %187, %192
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %199 unwind label %183

199:                                              ; preds = %198
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %167, float noundef %173, float noundef -1.000000e+00)
          to label %.critedge226 unwind label %200

200:                                              ; preds = %199
  %201 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %219

.critedge226:                                     ; preds = %199, %194
  %.sink276 = phi ptr [ %17, %194 ], [ %18, %199 ]
  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) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  %202 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %203 = add nsw i32 %202, 1
  store i32 %203, 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 %204 unwind label %221

204:                                              ; preds = %.critedge226
  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
  %205 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  %206 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %205) #6
  %207 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  %208 = call noundef float @_ZSt4fabsf(float noundef %207)
  %209 = fsub float %206, %208
  %210 = call noundef float @_ZSt3absf(float noundef %209)
  %211 = call noundef float @_ZSt3absf(float noundef %208)
  %212 = fadd float %211, 1.000000e+00
  %213 = fdiv float %210, %212
  %214 = fpext float %206 to x86_fp80
  %215 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %214)
  br i1 %215, label %216, label %225

216:                                              ; preds = %204
  %217 = fpext float %208 to x86_fp80
  %218 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %217)
  br i1 %218, label %239, label %225

219:                                              ; preds = %200, %196, %183
  %.pn194 = phi { ptr, i32 } [ %201, %200 ], [ %184, %183 ], [ %197, %196 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %220

220:                                              ; preds = %219, %181
  %.pn194.pn = phi { ptr, i32 } [ %.pn194, %219 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %467

221:                                              ; preds = %.critedge226
  %222 = 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 %262

223:                                              ; preds = %239, %233
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %261

225:                                              ; preds = %216, %204
  %226 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %214)
  br i1 %226, label %232, label %227

227:                                              ; preds = %225
  %228 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %214)
  %229 = fcmp oeq float %206, %208
  %or.cond227 = and i1 %229, %228
  %230 = fpext float %213 to double
  %231 = fcmp olt double %230, 0x3D06849B86A12B9B
  %or.cond258 = or i1 %231, %or.cond227
  br i1 %or.cond258, label %239, label %233

232:                                              ; preds = %225
  %.old256 = fpext float %213 to double
  %.old257 = fcmp olt double %.old256, 0x3D06849B86A12B9B
  br i1 %.old257, label %239, label %233

233:                                              ; preds = %227, %232
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %234 unwind label %223

234:                                              ; preds = %233
  %235 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %236 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %21, i32 noundef %235, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %206, float noundef %208, float noundef %236)
          to label %.critedge229 unwind label %237

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

239:                                              ; preds = %216, %227, %232
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %240 unwind label %223

240:                                              ; preds = %239
  %241 = call noundef float @_ZNSt14numeric_limitsIfE6lowestEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %22, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %206, float noundef %213, float noundef %241)
          to label %.critedge229 unwind label %242

242:                                              ; preds = %240
  %243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %261

.critedge229:                                     ; preds = %240, %234
  %.sink277 = phi ptr [ %21, %234 ], [ %22, %240 ]
  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) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  %244 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, 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 %246 unwind label %263

246:                                              ; preds = %.critedge229
  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
  %247 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  %248 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %247) #6
  %249 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  %250 = call noundef float @_ZSt4fabsf(float noundef %249)
  %251 = fsub float %248, %250
  %252 = call noundef float @_ZSt3absf(float noundef %251)
  %253 = call noundef float @_ZSt3absf(float noundef %250)
  %254 = fadd float %253, 1.000000e+00
  %255 = fdiv float %252, %254
  %256 = fpext float %248 to x86_fp80
  %257 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %256)
  br i1 %257, label %258, label %267

258:                                              ; preds = %246
  %259 = fpext float %250 to x86_fp80
  %260 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %259)
  br i1 %260, label %281, label %267

261:                                              ; preds = %242, %237, %223
  %.pn197 = phi { ptr, i32 } [ %243, %242 ], [ %224, %223 ], [ %238, %237 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %262

262:                                              ; preds = %261, %221
  %.pn197.pn = phi { ptr, i32 } [ %.pn197, %261 ], [ %222, %221 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %467

263:                                              ; preds = %.critedge229
  %264 = 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 %304

265:                                              ; preds = %281, %275
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %303

267:                                              ; preds = %258, %246
  %268 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %256)
  br i1 %268, label %274, label %269

269:                                              ; preds = %267
  %270 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %256)
  %271 = fcmp oeq float %248, %250
  %or.cond230 = and i1 %271, %270
  %272 = fpext float %255 to double
  %273 = fcmp olt double %272, 0x3D06849B86A12B9B
  %or.cond261 = or i1 %273, %or.cond230
  br i1 %or.cond261, label %281, label %275

274:                                              ; preds = %267
  %.old259 = fpext float %255 to double
  %.old260 = fcmp olt double %.old259, 0x3D06849B86A12B9B
  br i1 %.old260, label %281, label %275

275:                                              ; preds = %269, %274
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %276 unwind label %265

276:                                              ; preds = %275
  %277 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %278 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %25, i32 noundef %277, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %248, float noundef %250, float noundef %278)
          to label %.critedge232 unwind label %279

279:                                              ; preds = %276
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %303

281:                                              ; preds = %258, %269, %274
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %282 unwind label %265

282:                                              ; preds = %281
  %283 = call noundef float @_ZNSt14numeric_limitsIfE3minEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %26, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %248, float noundef %255, float noundef %283)
          to label %.critedge232 unwind label %284

284:                                              ; preds = %282
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %303

.critedge232:                                     ; preds = %282, %276
  %.sink278 = phi ptr [ %25, %276 ], [ %26, %282 ]
  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) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  %286 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %287 = add nsw i32 %286, 1
  store i32 %287, 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 %288 unwind label %305

288:                                              ; preds = %.critedge232
  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
  %289 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %290 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %289) #6
  %291 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  %292 = call noundef float @_ZSt4fabsf(float noundef %291)
  %293 = fsub float %290, %292
  %294 = call noundef float @_ZSt3absf(float noundef %293)
  %295 = call noundef float @_ZSt3absf(float noundef %292)
  %296 = fadd float %295, 1.000000e+00
  %297 = fdiv float %294, %296
  %298 = fpext float %290 to x86_fp80
  %299 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %298)
  br i1 %299, label %300, label %309

300:                                              ; preds = %288
  %301 = fpext float %292 to x86_fp80
  %302 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %301)
  br i1 %302, label %323, label %309

303:                                              ; preds = %284, %279, %265
  %.pn200 = phi { ptr, i32 } [ %285, %284 ], [ %266, %265 ], [ %280, %279 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %304

304:                                              ; preds = %303, %263
  %.pn200.pn = phi { ptr, i32 } [ %.pn200, %303 ], [ %264, %263 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %467

305:                                              ; preds = %.critedge232
  %306 = 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 %346

307:                                              ; preds = %323, %317
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %345

309:                                              ; preds = %300, %288
  %310 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %298)
  br i1 %310, label %316, label %311

311:                                              ; preds = %309
  %312 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %298)
  %313 = fcmp oeq float %290, %292
  %or.cond233 = and i1 %313, %312
  %314 = fpext float %297 to double
  %315 = fcmp olt double %314, 0x3D06849B86A12B9B
  %or.cond264 = or i1 %315, %or.cond233
  br i1 %or.cond264, label %323, label %317

316:                                              ; preds = %309
  %.old262 = fpext float %297 to double
  %.old263 = fcmp olt double %.old262, 0x3D06849B86A12B9B
  br i1 %.old263, label %323, label %317

317:                                              ; preds = %311, %316
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %318 unwind label %307

318:                                              ; preds = %317
  %319 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %320 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %29, i32 noundef %319, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %290, float noundef %292, float noundef %320)
          to label %.critedge235 unwind label %321

321:                                              ; preds = %318
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %345

323:                                              ; preds = %300, %311, %316
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %324 unwind label %307

324:                                              ; preds = %323
  %325 = call noundef float @_ZNSt14numeric_limitsIfE3maxEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %290, float noundef %297, float noundef %325)
          to label %.critedge235 unwind label %326

326:                                              ; preds = %324
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %345

.critedge235:                                     ; preds = %324, %318
  %.sink279 = phi ptr [ %29, %318 ], [ %30, %324 ]
  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) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  %328 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %329 = add nsw i32 %328, 1
  store i32 %329, 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 %330 unwind label %347

330:                                              ; preds = %.critedge235
  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
  %331 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  %332 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %331) #6
  %333 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  %334 = call noundef float @_ZSt4fabsf(float noundef %333)
  %335 = fsub float %332, %334
  %336 = call noundef float @_ZSt3absf(float noundef %335)
  %337 = call noundef float @_ZSt3absf(float noundef %334)
  %338 = fadd float %337, 1.000000e+00
  %339 = fdiv float %336, %338
  %340 = fpext float %332 to x86_fp80
  %341 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %340)
  br i1 %341, label %342, label %351

342:                                              ; preds = %330
  %343 = fpext float %334 to x86_fp80
  %344 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %343)
  br i1 %344, label %365, label %351

345:                                              ; preds = %326, %321, %307
  %.pn203 = phi { ptr, i32 } [ %327, %326 ], [ %308, %307 ], [ %322, %321 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %346

346:                                              ; preds = %345, %305
  %.pn203.pn = phi { ptr, i32 } [ %.pn203, %345 ], [ %306, %305 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  br label %467

347:                                              ; preds = %.critedge235
  %348 = 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 %388

349:                                              ; preds = %365, %359
  %350 = landingpad { ptr, i32 }
          cleanup
  br label %387

351:                                              ; preds = %342, %330
  %352 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %340)
  br i1 %352, label %358, label %353

353:                                              ; preds = %351
  %354 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %340)
  %355 = fcmp oeq float %332, %334
  %or.cond236 = and i1 %355, %354
  %356 = fpext float %339 to double
  %357 = fcmp olt double %356, 0x3D06849B86A12B9B
  %or.cond267 = or i1 %357, %or.cond236
  br i1 %or.cond267, label %365, label %359

358:                                              ; preds = %351
  %.old265 = fpext float %339 to double
  %.old266 = fcmp olt double %.old265, 0x3D06849B86A12B9B
  br i1 %.old266, label %365, label %359

359:                                              ; preds = %353, %358
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %360 unwind label %349

360:                                              ; preds = %359
  %361 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %362 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %33, i32 noundef %361, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %332, float noundef %334, float noundef %362)
          to label %.critedge238 unwind label %363

363:                                              ; preds = %360
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %387

365:                                              ; preds = %342, %353, %358
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %366 unwind label %349

366:                                              ; preds = %365
  %367 = call noundef float @_ZNSt14numeric_limitsIfE9quiet_NaNEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %34, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %332, float noundef %339, float noundef %367)
          to label %.critedge238 unwind label %368

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

.critedge238:                                     ; preds = %366, %360
  %.sink280 = phi ptr [ %33, %360 ], [ %34, %366 ]
  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) %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  %370 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, 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 %372 unwind label %389

372:                                              ; preds = %.critedge238
  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
  %373 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %374 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %373) #6
  %375 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %376 = call noundef float @_ZSt4fabsf(float noundef %375)
  %377 = fsub float %374, %376
  %378 = call noundef float @_ZSt3absf(float noundef %377)
  %379 = call noundef float @_ZSt3absf(float noundef %376)
  %380 = fadd float %379, 1.000000e+00
  %381 = fdiv float %378, %380
  %382 = fpext float %374 to x86_fp80
  %383 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %382)
  br i1 %383, label %384, label %393

384:                                              ; preds = %372
  %385 = fpext float %376 to x86_fp80
  %386 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %385)
  br i1 %386, label %407, label %393

387:                                              ; preds = %368, %363, %349
  %.pn206 = phi { ptr, i32 } [ %369, %368 ], [ %350, %349 ], [ %364, %363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %388

388:                                              ; preds = %387, %347
  %.pn206.pn = phi { ptr, i32 } [ %.pn206, %387 ], [ %348, %347 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br label %467

389:                                              ; preds = %.critedge238
  %390 = 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 %432

391:                                              ; preds = %407, %401
  %392 = landingpad { ptr, i32 }
          cleanup
  br label %431

393:                                              ; preds = %384, %372
  %394 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %382)
  br i1 %394, label %400, label %395

395:                                              ; preds = %393
  %396 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %382)
  %397 = fcmp oeq float %374, %376
  %or.cond239 = and i1 %397, %396
  %398 = fpext float %381 to double
  %399 = fcmp olt double %398, 0x3D06849B86A12B9B
  %or.cond270 = or i1 %399, %or.cond239
  br i1 %or.cond270, label %407, label %401

400:                                              ; preds = %393
  %.old268 = fpext float %381 to double
  %.old269 = fcmp olt double %.old268, 0x3D06849B86A12B9B
  br i1 %.old269, label %407, label %401

401:                                              ; preds = %395, %400
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %402 unwind label %391

402:                                              ; preds = %401
  %403 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %404 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %37, i32 noundef %403, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %374, float noundef %376, float noundef %404)
          to label %.critedge241 unwind label %405

405:                                              ; preds = %402
  %406 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %431

407:                                              ; preds = %384, %395, %400
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %408 unwind label %391

408:                                              ; preds = %407
  %409 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %374, float noundef %381, float noundef %409)
          to label %.critedge241 unwind label %410

410:                                              ; preds = %408
  %411 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %431

.critedge241:                                     ; preds = %408, %402
  %.sink281 = phi ptr [ %37, %402 ], [ %38, %408 ]
  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) %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  %412 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %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 %414 unwind label %433

414:                                              ; 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
  %415 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %416 = fneg float %415
  %417 = call noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef %416) #6
  %418 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %419 = fneg float %418
  %420 = call noundef float @_ZSt4fabsf(float noundef %419)
  %421 = fsub float %417, %420
  %422 = call noundef float @_ZSt3absf(float noundef %421)
  %423 = call noundef float @_ZSt3absf(float noundef %420)
  %424 = fadd float %423, 1.000000e+00
  %425 = fdiv float %422, %424
  %426 = fpext float %417 to x86_fp80
  %427 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %426)
  br i1 %427, label %428, label %437

428:                                              ; preds = %414
  %429 = fpext float %420 to x86_fp80
  %430 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %429)
  br i1 %430, label %452, label %437

431:                                              ; preds = %410, %405, %391
  %.pn209 = phi { ptr, i32 } [ %411, %410 ], [ %392, %391 ], [ %406, %405 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %432

432:                                              ; preds = %431, %389
  %.pn209.pn = phi { ptr, i32 } [ %.pn209, %431 ], [ %390, %389 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  br label %467

433:                                              ; preds = %.critedge241
  %434 = 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 %461

435:                                              ; preds = %452, %445
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %460

437:                                              ; preds = %428, %414
  %438 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %426)
  br i1 %438, label %444, label %439

439:                                              ; preds = %437
  %440 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %426)
  %441 = fcmp oeq float %417, %420
  %or.cond242 = and i1 %441, %440
  %442 = fpext float %425 to double
  %443 = fcmp olt double %442, 0x3D06849B86A12B9B
  %or.cond273 = or i1 %443, %or.cond242
  br i1 %or.cond273, label %452, label %445

444:                                              ; preds = %437
  %.old271 = fpext float %425 to double
  %.old272 = fcmp olt double %.old271, 0x3D06849B86A12B9B
  br i1 %.old272, label %452, label %445

445:                                              ; preds = %439, %444
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %446 unwind label %435

446:                                              ; preds = %445
  %447 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %448 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %449 = fneg float %448
  invoke void @_Z15print_test_failIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %41, i32 noundef %447, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %417, float noundef %420, float noundef %449)
          to label %.critedge244 unwind label %450

450:                                              ; preds = %446
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %460

452:                                              ; preds = %428, %439, %444
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %453 unwind label %435

453:                                              ; preds = %452
  %454 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %455 = fneg float %454
  invoke void @_Z15print_test_passIfffEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %42, i32 noundef 3, i32 noundef 6, i32 noundef 18, float noundef %417, float noundef %425, float noundef %455)
          to label %.critedge244 unwind label %456

456:                                              ; preds = %453
  %457 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %460

.critedge244:                                     ; preds = %453, %446
  %.sink282 = phi ptr [ %41, %446 ], [ %42, %453 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink282) #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
  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, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %458 unwind label %462

458:                                              ; preds = %.critedge244
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %43)
          to label %459 unwind label %464

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

460:                                              ; preds = %456, %450, %435
  %.pn212 = phi { ptr, i32 } [ %457, %456 ], [ %436, %435 ], [ %451, %450 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %461

461:                                              ; preds = %460, %433
  %.pn212.pn = phi { ptr, i32 } [ %.pn212, %460 ], [ %434, %433 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  br label %467

462:                                              ; preds = %.critedge244
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %466

464:                                              ; preds = %458
  %465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %466

466:                                              ; preds = %464, %462
  %.pn215 = phi { ptr, i32 } [ %465, %464 ], [ %463, %462 ]
  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 %467

467:                                              ; preds = %466, %461, %432, %388, %346, %304, %262, %220, %180, %142, %104, %66
  %.pn215.pn = phi { ptr, i32 } [ %.pn215, %466 ], [ %.pn212.pn, %461 ], [ %.pn209.pn, %432 ], [ %.pn206.pn, %388 ], [ %.pn203.pn, %346 ], [ %.pn200.pn, %304 ], [ %.pn197.pn, %262 ], [ %.pn194.pn, %220 ], [ %.pn191.pn, %180 ], [ %.pn188.pn, %142 ], [ %.pn185.pn, %104 ], [ %.pn, %66 ]
  resume { ptr, i32 } %.pn215.pn
}

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4gcem5fabsfIfEEfT_(float noundef) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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