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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca x86_fp80, align 16
  %9 = alloca x86_fp80, align 16
  %10 = alloca x86_fp80, align 16
  %11 = alloca i8, align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca x86_fp80, align 16
  %17 = alloca x86_fp80, align 16
  %18 = alloca x86_fp80, align 16
  %19 = alloca i8, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca x86_fp80, align 16
  %25 = alloca x86_fp80, align 16
  %26 = alloca x86_fp80, align 16
  %27 = alloca i8, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca x86_fp80, align 16
  %33 = alloca x86_fp80, align 16
  %34 = alloca x86_fp80, align 16
  %35 = alloca i8, align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca x86_fp80, align 16
  %41 = alloca x86_fp80, align 16
  %42 = alloca x86_fp80, align 16
  %43 = alloca i8, align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca x86_fp80, align 16
  %49 = alloca x86_fp80, align 16
  %50 = alloca x86_fp80, align 16
  %51 = alloca i8, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca x86_fp80, align 16
  %57 = alloca x86_fp80, align 16
  %58 = alloca x86_fp80, align 16
  %59 = alloca i8, align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca x86_fp80, align 16
  %65 = alloca x86_fp80, align 16
  %66 = alloca x86_fp80, align 16
  %67 = alloca i8, align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca i8, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %3) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %80 unwind label %106

80:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2)
          to label %81 unwind label %110

81:                                               ; preds = %80
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #7
  %82 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %83 = add nsw i32 %82, 1
  store i32 %83, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %84 unwind label %115

84:                                               ; preds = %81
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #7
  %85 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFFC000000000000000) #7
  store x86_fp80 %85, ptr %8, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #7
  %86 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xKBFFFC000000000000000)
          to label %87 unwind label %119

87:                                               ; preds = %84
  store x86_fp80 %86, ptr %9, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #7
  %88 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %89 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %90 = fsub x86_fp80 %88, %89
  %91 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %90)
          to label %92 unwind label %123

92:                                               ; preds = %87
  %93 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %94 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %93)
          to label %95 unwind label %123

95:                                               ; preds = %92
  %96 = fadd x86_fp80 0xK3FFF8000000000000000, %94
  %97 = fdiv x86_fp80 %91, %96
  store x86_fp80 %97, ptr %10, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  store i8 0, ptr %11, align 1, !tbaa !11
  %98 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %99 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %98)
          to label %100 unwind label %127

100:                                              ; preds = %95
  br i1 %99, label %101, label %131

101:                                              ; preds = %100
  %102 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %103 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %102)
          to label %104 unwind label %127

104:                                              ; preds = %101
  br i1 %103, label %105, label %131

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

106:                                              ; preds = %0
  %107 = landingpad { ptr, i32 }
          cleanup
  %108 = extractvalue { ptr, i32 } %107, 0
  store ptr %108, ptr %4, align 8
  %109 = extractvalue { ptr, i32 } %107, 1
  store i32 %109, ptr %5, align 4
  br label %114

110:                                              ; preds = %80
  %111 = landingpad { ptr, i32 }
          cleanup
  %112 = extractvalue { ptr, i32 } %111, 0
  store ptr %112, ptr %4, align 8
  %113 = extractvalue { ptr, i32 } %111, 1
  store i32 %113, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  br label %114

114:                                              ; preds = %110, %106
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #7
  br label %878

115:                                              ; preds = %81
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %4, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  br label %200

119:                                              ; preds = %84
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %4, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %5, align 4
  br label %199

123:                                              ; preds = %92, %87
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %4, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %5, align 4
  br label %198

127:                                              ; preds = %163, %148, %135, %131, %101, %95
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %4, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %5, align 4
  br label %197

131:                                              ; preds = %104, %100
  %132 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %133 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %132)
          to label %134 unwind label %127

134:                                              ; preds = %131
  br i1 %133, label %144, label %135

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

138:                                              ; preds = %135
  br i1 %137, label %139, label %144

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

143:                                              ; preds = %139
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %159

144:                                              ; preds = %139, %138, %134
  %145 = load x86_fp80, ptr %10, align 16, !tbaa !9
  %146 = fcmp olt x86_fp80 %145, 0xK3FD0B424DC35095CD800
  br i1 %146, label %147, label %148

147:                                              ; preds = %144
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %158

148:                                              ; preds = %144
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %149 unwind label %127

149:                                              ; preds = %148
  %150 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %151 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %152 = load x86_fp80, ptr %9, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %12, i32 noundef %150, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %151, x86_fp80 noundef %152, x86_fp80 noundef 0xKBFFFC000000000000000)
          to label %153 unwind label %154

153:                                              ; preds = %149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %158

154:                                              ; preds = %149
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %4, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %197

158:                                              ; preds = %153, %147
  br label %159

159:                                              ; preds = %158, %143
  br label %160

160:                                              ; preds = %159, %105
  %161 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %162 = trunc i8 %161 to i1
  br i1 %162, label %163, label %172

163:                                              ; preds = %160
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %164 unwind label %127

164:                                              ; preds = %163
  %165 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %166 = load x86_fp80, ptr %10, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %13, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %165, x86_fp80 noundef %166, x86_fp80 noundef 0xKBFFFC000000000000000)
          to label %167 unwind label %168

167:                                              ; preds = %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %172

168:                                              ; preds = %164
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %4, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %197

172:                                              ; preds = %167, %160
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  %173 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %174 = add nsw i32 %173, 1
  store i32 %174, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %175 unwind label %201

175:                                              ; preds = %172
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #7
  %176 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #7
  store x86_fp80 %176, ptr %16, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #7
  %177 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK00000000000000000000)
          to label %178 unwind label %205

178:                                              ; preds = %175
  store x86_fp80 %177, ptr %17, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #7
  %179 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %180 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %181 = fsub x86_fp80 %179, %180
  %182 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %181)
          to label %183 unwind label %209

183:                                              ; preds = %178
  %184 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %185 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %184)
          to label %186 unwind label %209

186:                                              ; preds = %183
  %187 = fadd x86_fp80 0xK3FFF8000000000000000, %185
  %188 = fdiv x86_fp80 %182, %187
  store x86_fp80 %188, ptr %18, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  store i8 0, ptr %19, align 1, !tbaa !11
  %189 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %190 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %189)
          to label %191 unwind label %213

191:                                              ; preds = %186
  br i1 %190, label %192, label %217

192:                                              ; preds = %191
  %193 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %194 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %193)
          to label %195 unwind label %213

195:                                              ; preds = %192
  br i1 %194, label %196, label %217

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

197:                                              ; preds = %168, %154, %127
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %198

198:                                              ; preds = %197, %123
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  br label %199

199:                                              ; preds = %198, %119
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %200

200:                                              ; preds = %199, %115
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %878

201:                                              ; preds = %172
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %4, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  br label %286

205:                                              ; preds = %175
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %4, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %5, align 4
  br label %285

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

213:                                              ; preds = %249, %234, %221, %217, %192, %186
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %4, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %5, align 4
  br label %283

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

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

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

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

225:                                              ; preds = %224
  %226 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %227 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %228 = fcmp oeq x86_fp80 %226, %227
  br i1 %228, label %229, label %230

229:                                              ; preds = %225
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %245

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

233:                                              ; preds = %230
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %244

234:                                              ; preds = %230
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %235 unwind label %213

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

239:                                              ; preds = %235
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %244

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

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

245:                                              ; preds = %244, %229
  br label %246

246:                                              ; preds = %245, %196
  %247 = load i8, ptr %19, align 1, !tbaa !11, !range !13, !noundef !14
  %248 = trunc i8 %247 to i1
  br i1 %248, label %249, label %258

249:                                              ; preds = %246
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %250 unwind label %213

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

253:                                              ; preds = %250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %258

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

258:                                              ; preds = %253, %246
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  %259 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %261 unwind label %287

261:                                              ; preds = %258
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #7
  %262 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FF583126E978D4FDF3B) #7
  store x86_fp80 %262, ptr %24, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #7
  %263 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %264 unwind label %291

264:                                              ; preds = %261
  store x86_fp80 %263, ptr %25, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  %265 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %266 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %267 = fsub x86_fp80 %265, %266
  %268 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %267)
          to label %269 unwind label %295

269:                                              ; preds = %264
  %270 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %271 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %270)
          to label %272 unwind label %295

272:                                              ; preds = %269
  %273 = fadd x86_fp80 0xK3FFF8000000000000000, %271
  %274 = fdiv x86_fp80 %268, %273
  store x86_fp80 %274, ptr %26, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  store i8 0, ptr %27, align 1, !tbaa !11
  %275 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %276 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %275)
          to label %277 unwind label %299

277:                                              ; preds = %272
  br i1 %276, label %278, label %303

278:                                              ; preds = %277
  %279 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %280 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %279)
          to label %281 unwind label %299

281:                                              ; preds = %278
  br i1 %280, label %282, label %303

282:                                              ; preds = %281
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %332

283:                                              ; preds = %254, %240, %213
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %284

284:                                              ; preds = %283, %209
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #7
  br label %285

285:                                              ; preds = %284, %205
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %286

286:                                              ; preds = %285, %201
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %878

287:                                              ; preds = %258
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %4, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  br label %372

291:                                              ; preds = %261
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %4, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %5, align 4
  br label %371

295:                                              ; preds = %269, %264
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %4, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %5, align 4
  br label %370

299:                                              ; preds = %335, %320, %307, %303, %278, %272
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %4, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %5, align 4
  br label %369

303:                                              ; preds = %281, %277
  %304 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %305 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %304)
          to label %306 unwind label %299

306:                                              ; preds = %303
  br i1 %305, label %316, label %307

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

310:                                              ; preds = %307
  br i1 %309, label %311, label %316

311:                                              ; preds = %310
  %312 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %313 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %314 = fcmp oeq x86_fp80 %312, %313
  br i1 %314, label %315, label %316

315:                                              ; preds = %311
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %331

316:                                              ; preds = %311, %310, %306
  %317 = load x86_fp80, ptr %26, align 16, !tbaa !9
  %318 = fcmp olt x86_fp80 %317, 0xK3FD0B424DC35095CD800
  br i1 %318, label %319, label %320

319:                                              ; preds = %316
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %330

320:                                              ; preds = %316
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %321 unwind label %299

321:                                              ; preds = %320
  %322 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %323 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %324 = load x86_fp80, ptr %25, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %28, i32 noundef %322, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %323, x86_fp80 noundef %324, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %325 unwind label %326

325:                                              ; preds = %321
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %330

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

330:                                              ; preds = %325, %319
  br label %331

331:                                              ; preds = %330, %315
  br label %332

332:                                              ; preds = %331, %282
  %333 = load i8, ptr %27, align 1, !tbaa !11, !range !13, !noundef !14
  %334 = trunc i8 %333 to i1
  br i1 %334, label %335, label %344

335:                                              ; preds = %332
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %336 unwind label %299

336:                                              ; preds = %335
  %337 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %338 = load x86_fp80, ptr %26, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %29, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %337, x86_fp80 noundef %338, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %339 unwind label %340

339:                                              ; preds = %336
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %344

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

344:                                              ; preds = %339, %332
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  %345 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  store i32 %346, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %347 unwind label %373

347:                                              ; preds = %344
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #7
  %348 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8020C49BA5E353F8) #7
  store x86_fp80 %348, ptr %32, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #7
  %349 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK3FFF8020C49BA5E353F8)
          to label %350 unwind label %377

350:                                              ; preds = %347
  store x86_fp80 %349, ptr %33, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #7
  %351 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %352 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %353 = fsub x86_fp80 %351, %352
  %354 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %353)
          to label %355 unwind label %381

355:                                              ; preds = %350
  %356 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %357 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %356)
          to label %358 unwind label %381

358:                                              ; preds = %355
  %359 = fadd x86_fp80 0xK3FFF8000000000000000, %357
  %360 = fdiv x86_fp80 %354, %359
  store x86_fp80 %360, ptr %34, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  store i8 0, ptr %35, align 1, !tbaa !11
  %361 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %362 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %361)
          to label %363 unwind label %385

363:                                              ; preds = %358
  br i1 %362, label %364, label %389

364:                                              ; preds = %363
  %365 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %366 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %365)
          to label %367 unwind label %385

367:                                              ; preds = %364
  br i1 %366, label %368, label %389

368:                                              ; preds = %367
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %418

369:                                              ; preds = %340, %326, %299
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  br label %370

370:                                              ; preds = %369, %295
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  br label %371

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

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

373:                                              ; preds = %344
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %4, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  br label %458

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

381:                                              ; preds = %355, %350
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %4, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %5, align 4
  br label %456

385:                                              ; preds = %421, %406, %393, %389, %364, %358
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %4, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %5, align 4
  br label %455

389:                                              ; preds = %367, %363
  %390 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %391 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %390)
          to label %392 unwind label %385

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

393:                                              ; preds = %392
  %394 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %395 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %394)
          to label %396 unwind label %385

396:                                              ; preds = %393
  br i1 %395, label %397, label %402

397:                                              ; preds = %396
  %398 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %399 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %400 = fcmp oeq x86_fp80 %398, %399
  br i1 %400, label %401, label %402

401:                                              ; preds = %397
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %417

402:                                              ; preds = %397, %396, %392
  %403 = load x86_fp80, ptr %34, align 16, !tbaa !9
  %404 = fcmp olt x86_fp80 %403, 0xK3FD0B424DC35095CD800
  br i1 %404, label %405, label %406

405:                                              ; preds = %402
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %416

406:                                              ; preds = %402
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %407 unwind label %385

407:                                              ; preds = %406
  %408 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %409 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %410 = load x86_fp80, ptr %33, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %36, i32 noundef %408, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %409, x86_fp80 noundef %410, x86_fp80 noundef 0xK3FFF8020C49BA5E353F8)
          to label %411 unwind label %412

411:                                              ; preds = %407
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %416

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

416:                                              ; preds = %411, %405
  br label %417

417:                                              ; preds = %416, %401
  br label %418

418:                                              ; preds = %417, %368
  %419 = load i8, ptr %35, align 1, !tbaa !11, !range !13, !noundef !14
  %420 = trunc i8 %419 to i1
  br i1 %420, label %421, label %430

421:                                              ; preds = %418
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %422 unwind label %385

422:                                              ; preds = %421
  %423 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %424 = load x86_fp80, ptr %34, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %37, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %423, x86_fp80 noundef %424, x86_fp80 noundef 0xK3FFF8020C49BA5E353F8)
          to label %425 unwind label %426

425:                                              ; preds = %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %430

426:                                              ; preds = %422
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %4, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %455

430:                                              ; preds = %425, %418
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  %431 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %433 unwind label %459

433:                                              ; preds = %430
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #7
  %434 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFFC000000000000000) #7
  store x86_fp80 %434, ptr %40, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #7
  %435 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK3FFFC000000000000000)
          to label %436 unwind label %463

436:                                              ; preds = %433
  store x86_fp80 %435, ptr %41, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #7
  %437 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %438 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %439 = fsub x86_fp80 %437, %438
  %440 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %439)
          to label %441 unwind label %467

441:                                              ; preds = %436
  %442 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %443 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %442)
          to label %444 unwind label %467

444:                                              ; preds = %441
  %445 = fadd x86_fp80 0xK3FFF8000000000000000, %443
  %446 = fdiv x86_fp80 %440, %445
  store x86_fp80 %446, ptr %42, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  store i8 0, ptr %43, align 1, !tbaa !11
  %447 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %448 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %447)
          to label %449 unwind label %471

449:                                              ; preds = %444
  br i1 %448, label %450, label %475

450:                                              ; preds = %449
  %451 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %452 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %451)
          to label %453 unwind label %471

453:                                              ; preds = %450
  br i1 %452, label %454, label %475

454:                                              ; preds = %453
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %504

455:                                              ; preds = %426, %412, %385
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %456

456:                                              ; preds = %455, %381
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  br label %457

457:                                              ; preds = %456, %377
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %458

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

459:                                              ; preds = %430
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %4, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  br label %544

463:                                              ; preds = %433
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %4, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %5, align 4
  br label %543

467:                                              ; preds = %441, %436
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %4, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %5, align 4
  br label %542

471:                                              ; preds = %507, %492, %479, %475, %450, %444
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %4, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %5, align 4
  br label %541

475:                                              ; preds = %453, %449
  %476 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %477 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %476)
          to label %478 unwind label %471

478:                                              ; preds = %475
  br i1 %477, label %488, label %479

479:                                              ; preds = %478
  %480 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %481 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %480)
          to label %482 unwind label %471

482:                                              ; preds = %479
  br i1 %481, label %483, label %488

483:                                              ; preds = %482
  %484 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %485 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %486 = fcmp oeq x86_fp80 %484, %485
  br i1 %486, label %487, label %488

487:                                              ; preds = %483
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %503

488:                                              ; preds = %483, %482, %478
  %489 = load x86_fp80, ptr %42, align 16, !tbaa !9
  %490 = fcmp olt x86_fp80 %489, 0xK3FD0B424DC35095CD800
  br i1 %490, label %491, label %492

491:                                              ; preds = %488
  store i8 1, ptr %43, align 1, !tbaa !11
  br label %502

492:                                              ; preds = %488
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %493 unwind label %471

493:                                              ; preds = %492
  %494 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %495 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %496 = load x86_fp80, ptr %41, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %44, i32 noundef %494, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %495, x86_fp80 noundef %496, x86_fp80 noundef 0xK3FFFC000000000000000)
          to label %497 unwind label %498

497:                                              ; preds = %493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %502

498:                                              ; preds = %493
  %499 = landingpad { ptr, i32 }
          cleanup
  %500 = extractvalue { ptr, i32 } %499, 0
  store ptr %500, ptr %4, align 8
  %501 = extractvalue { ptr, i32 } %499, 1
  store i32 %501, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %541

502:                                              ; preds = %497, %491
  br label %503

503:                                              ; preds = %502, %487
  br label %504

504:                                              ; preds = %503, %454
  %505 = load i8, ptr %43, align 1, !tbaa !11, !range !13, !noundef !14
  %506 = trunc i8 %505 to i1
  br i1 %506, label %507, label %516

507:                                              ; preds = %504
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %508 unwind label %471

508:                                              ; preds = %507
  %509 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %510 = load x86_fp80, ptr %42, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %45, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %509, x86_fp80 noundef %510, x86_fp80 noundef 0xK3FFFC000000000000000)
          to label %511 unwind label %512

511:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %516

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

516:                                              ; preds = %511, %504
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  %517 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %519 unwind label %545

519:                                              ; preds = %516
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #7
  %520 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK4002B19999999999999A) #7
  store x86_fp80 %520, ptr %48, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #7
  %521 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK4002B19999999999999A)
          to label %522 unwind label %549

522:                                              ; preds = %519
  store x86_fp80 %521, ptr %49, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #7
  %523 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %524 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %525 = fsub x86_fp80 %523, %524
  %526 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %525)
          to label %527 unwind label %553

527:                                              ; preds = %522
  %528 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %529 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %528)
          to label %530 unwind label %553

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

535:                                              ; preds = %530
  br i1 %534, label %536, label %561

536:                                              ; preds = %535
  %537 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %538 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %537)
          to label %539 unwind label %557

539:                                              ; preds = %536
  br i1 %538, label %540, label %561

540:                                              ; preds = %539
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %590

541:                                              ; preds = %512, %498, %471
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %542

542:                                              ; preds = %541, %467
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  br label %543

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

544:                                              ; preds = %543, %459
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %878

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

549:                                              ; preds = %519
  %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
  br label %629

553:                                              ; preds = %527, %522
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %4, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %5, align 4
  br label %628

557:                                              ; preds = %593, %578, %565, %561, %536, %530
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %4, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %5, align 4
  br label %627

561:                                              ; preds = %539, %535
  %562 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %563 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %562)
          to label %564 unwind label %557

564:                                              ; preds = %561
  br i1 %563, label %574, label %565

565:                                              ; preds = %564
  %566 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %567 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %566)
          to label %568 unwind label %557

568:                                              ; preds = %565
  br i1 %567, label %569, label %574

569:                                              ; preds = %568
  %570 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %571 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %572 = fcmp oeq x86_fp80 %570, %571
  br i1 %572, label %573, label %574

573:                                              ; preds = %569
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %589

574:                                              ; preds = %569, %568, %564
  %575 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %576 = fcmp olt x86_fp80 %575, 0xK3FD0B424DC35095CD800
  br i1 %576, label %577, label %578

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

578:                                              ; preds = %574
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %579 unwind label %557

579:                                              ; preds = %578
  %580 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %581 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %582 = load x86_fp80, ptr %49, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %52, i32 noundef %580, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %581, x86_fp80 noundef %582, x86_fp80 noundef 0xK4002B19999999999999A)
          to label %583 unwind label %584

583:                                              ; preds = %579
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %588

584:                                              ; preds = %579
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %4, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %627

588:                                              ; preds = %583, %577
  br label %589

589:                                              ; preds = %588, %573
  br label %590

590:                                              ; preds = %589, %540
  %591 = load i8, ptr %51, align 1, !tbaa !11, !range !13, !noundef !14
  %592 = trunc i8 %591 to i1
  br i1 %592, label %593, label %602

593:                                              ; preds = %590
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %594 unwind label %557

594:                                              ; preds = %593
  %595 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %596 = load x86_fp80, ptr %50, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %53, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %595, x86_fp80 noundef %596, x86_fp80 noundef 0xK4002B19999999999999A)
          to label %597 unwind label %598

597:                                              ; preds = %594
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %602

598:                                              ; preds = %594
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %627

602:                                              ; preds = %597, %590
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  %603 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %604 = add nsw i32 %603, 1
  store i32 %604, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %605 unwind label %631

605:                                              ; preds = %602
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #7
  %606 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK4004C800000000000000) #7
  store x86_fp80 %606, ptr %56, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #7
  %607 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK4004C800000000000000)
          to label %608 unwind label %635

608:                                              ; preds = %605
  store x86_fp80 %607, ptr %57, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #7
  %609 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %610 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %611 = fsub x86_fp80 %609, %610
  %612 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %611)
          to label %613 unwind label %639

613:                                              ; preds = %608
  %614 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %615 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %614)
          to label %616 unwind label %639

616:                                              ; preds = %613
  %617 = fadd x86_fp80 0xK3FFF8000000000000000, %615
  %618 = fdiv x86_fp80 %612, %617
  store x86_fp80 %618, ptr %58, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  store i8 0, ptr %59, align 1, !tbaa !11
  %619 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %620 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %619)
          to label %621 unwind label %643

621:                                              ; preds = %616
  br i1 %620, label %622, label %647

622:                                              ; preds = %621
  %623 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %624 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %623)
          to label %625 unwind label %643

625:                                              ; preds = %622
  br i1 %624, label %626, label %647

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

627:                                              ; preds = %598, %584, %557
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  br label %628

628:                                              ; preds = %627, %553
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #7
  br label %629

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

630:                                              ; preds = %629, %545
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %878

631:                                              ; preds = %602
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %4, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  br label %716

635:                                              ; preds = %605
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %4, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %5, align 4
  br label %715

639:                                              ; preds = %613, %608
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %4, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %5, align 4
  br label %714

643:                                              ; preds = %679, %664, %651, %647, %622, %616
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %4, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %5, align 4
  br label %713

647:                                              ; preds = %625, %621
  %648 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %649 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %648)
          to label %650 unwind label %643

650:                                              ; preds = %647
  br i1 %649, label %660, label %651

651:                                              ; preds = %650
  %652 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %653 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %652)
          to label %654 unwind label %643

654:                                              ; preds = %651
  br i1 %653, label %655, label %660

655:                                              ; preds = %654
  %656 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %657 = load x86_fp80, ptr %57, align 16, !tbaa !9
  %658 = fcmp oeq x86_fp80 %656, %657
  br i1 %658, label %659, label %660

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

660:                                              ; preds = %655, %654, %650
  %661 = load x86_fp80, ptr %58, align 16, !tbaa !9
  %662 = fcmp olt x86_fp80 %661, 0xK3FD0B424DC35095CD800
  br i1 %662, label %663, label %664

663:                                              ; preds = %660
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %674

664:                                              ; preds = %660
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %665 unwind label %643

665:                                              ; preds = %664
  %666 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %667 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %668 = load x86_fp80, ptr %57, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %60, i32 noundef %666, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %667, x86_fp80 noundef %668, x86_fp80 noundef 0xK4004C800000000000000)
          to label %669 unwind label %670

669:                                              ; preds = %665
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %674

670:                                              ; preds = %665
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %4, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %713

674:                                              ; preds = %669, %663
  br label %675

675:                                              ; preds = %674, %659
  br label %676

676:                                              ; preds = %675, %626
  %677 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %678 = trunc i8 %677 to i1
  br i1 %678, label %679, label %688

679:                                              ; preds = %676
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %680 unwind label %643

680:                                              ; preds = %679
  %681 = load x86_fp80, ptr %56, align 16, !tbaa !9
  %682 = load x86_fp80, ptr %58, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %61, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %681, x86_fp80 noundef %682, x86_fp80 noundef 0xK4004C800000000000000)
          to label %683 unwind label %684

683:                                              ; preds = %680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %688

684:                                              ; preds = %680
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %4, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %713

688:                                              ; preds = %683, %676
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  %689 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %691 unwind label %717

691:                                              ; preds = %688
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #7
  %692 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK40069600000000000000) #7
  store x86_fp80 %692, ptr %64, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #7
  %693 = invoke noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK40069600000000000000)
          to label %694 unwind label %721

694:                                              ; preds = %691
  store x86_fp80 %693, ptr %65, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #7
  %695 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %696 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %697 = fsub x86_fp80 %695, %696
  %698 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %697)
          to label %699 unwind label %725

699:                                              ; preds = %694
  %700 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %701 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %700)
          to label %702 unwind label %725

702:                                              ; preds = %699
  %703 = fadd x86_fp80 0xK3FFF8000000000000000, %701
  %704 = fdiv x86_fp80 %698, %703
  store x86_fp80 %704, ptr %66, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  store i8 0, ptr %67, align 1, !tbaa !11
  %705 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %706 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %705)
          to label %707 unwind label %729

707:                                              ; preds = %702
  br i1 %706, label %708, label %733

708:                                              ; preds = %707
  %709 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %710 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %709)
          to label %711 unwind label %729

711:                                              ; preds = %708
  br i1 %710, label %712, label %733

712:                                              ; preds = %711
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %762

713:                                              ; preds = %684, %670, %643
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  br label %714

714:                                              ; preds = %713, %639
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  br label %715

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

716:                                              ; preds = %715, %631
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %878

717:                                              ; preds = %688
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %4, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  br label %805

721:                                              ; preds = %691
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %4, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %5, align 4
  br label %804

725:                                              ; preds = %699, %694
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %4, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %5, align 4
  br label %803

729:                                              ; preds = %765, %750, %737, %733, %708, %702
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %4, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %5, align 4
  br label %802

733:                                              ; preds = %711, %707
  %734 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %735 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %734)
          to label %736 unwind label %729

736:                                              ; preds = %733
  br i1 %735, label %746, label %737

737:                                              ; preds = %736
  %738 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %739 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %738)
          to label %740 unwind label %729

740:                                              ; preds = %737
  br i1 %739, label %741, label %746

741:                                              ; preds = %740
  %742 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %743 = load x86_fp80, ptr %65, align 16, !tbaa !9
  %744 = fcmp oeq x86_fp80 %742, %743
  br i1 %744, label %745, label %746

745:                                              ; preds = %741
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %761

746:                                              ; preds = %741, %740, %736
  %747 = load x86_fp80, ptr %66, align 16, !tbaa !9
  %748 = fcmp olt x86_fp80 %747, 0xK3FD0B424DC35095CD800
  br i1 %748, label %749, label %750

749:                                              ; preds = %746
  store i8 1, ptr %67, align 1, !tbaa !11
  br label %760

750:                                              ; preds = %746
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %751 unwind label %729

751:                                              ; preds = %750
  %752 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %753 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %754 = load x86_fp80, ptr %65, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %68, i32 noundef %752, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %753, x86_fp80 noundef %754, x86_fp80 noundef 0xK40069600000000000000)
          to label %755 unwind label %756

755:                                              ; preds = %751
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %760

756:                                              ; preds = %751
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %4, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %802

760:                                              ; preds = %755, %749
  br label %761

761:                                              ; preds = %760, %745
  br label %762

762:                                              ; preds = %761, %712
  %763 = load i8, ptr %67, align 1, !tbaa !11, !range !13, !noundef !14
  %764 = trunc i8 %763 to i1
  br i1 %764, label %765, label %774

765:                                              ; preds = %762
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %766 unwind label %729

766:                                              ; preds = %765
  %767 = load x86_fp80, ptr %64, align 16, !tbaa !9
  %768 = load x86_fp80, ptr %66, align 16, !tbaa !9
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %69, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %767, x86_fp80 noundef %768, x86_fp80 noundef 0xK40069600000000000000)
          to label %769 unwind label %770

769:                                              ; preds = %766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %774

770:                                              ; preds = %766
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %4, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %802

774:                                              ; preds = %769, %762
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  %775 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %777 unwind label %806

777:                                              ; preds = %774
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %778 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %779 = call noundef double @_ZN4gcem3cosIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %778) #7
  store double %779, ptr %72, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %780 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %781 = call double @cos(double noundef %780) #7
  store double %781, ptr %73, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %782 = load double, ptr %72, align 8, !tbaa !15
  %783 = load double, ptr %73, align 8, !tbaa !15
  %784 = fsub double %782, %783
  %785 = invoke noundef double @_ZSt3absd(double noundef %784)
          to label %786 unwind label %810

786:                                              ; preds = %777
  %787 = load double, ptr %73, align 8, !tbaa !15
  %788 = invoke noundef double @_ZSt3absd(double noundef %787)
          to label %789 unwind label %810

789:                                              ; preds = %786
  %790 = fadd double 1.000000e+00, %788
  %791 = fdiv double %785, %790
  store double %791, ptr %74, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #7
  store i8 0, ptr %75, align 1, !tbaa !11
  %792 = load double, ptr %72, align 8, !tbaa !15
  %793 = fpext double %792 to x86_fp80
  %794 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %793)
          to label %795 unwind label %814

795:                                              ; preds = %789
  br i1 %794, label %796, label %818

796:                                              ; preds = %795
  %797 = load double, ptr %73, align 8, !tbaa !15
  %798 = fpext double %797 to x86_fp80
  %799 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %798)
          to label %800 unwind label %814

800:                                              ; preds = %796
  br i1 %799, label %801, label %818

801:                                              ; preds = %800
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %850

802:                                              ; preds = %770, %756, %729
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  br label %803

803:                                              ; preds = %802, %725
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #7
  br label %804

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

805:                                              ; preds = %804, %717
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %878

806:                                              ; preds = %774
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %4, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  br label %868

810:                                              ; preds = %786, %777
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %4, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %5, align 4
  br label %867

814:                                              ; preds = %853, %837, %823, %818, %796, %789
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %4, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %5, align 4
  br label %866

818:                                              ; preds = %800, %795
  %819 = load double, ptr %72, align 8, !tbaa !15
  %820 = fpext double %819 to x86_fp80
  %821 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %820)
          to label %822 unwind label %814

822:                                              ; preds = %818
  br i1 %821, label %833, label %823

823:                                              ; preds = %822
  %824 = load double, ptr %72, align 8, !tbaa !15
  %825 = fpext double %824 to x86_fp80
  %826 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %825)
          to label %827 unwind label %814

827:                                              ; preds = %823
  br i1 %826, label %828, label %833

828:                                              ; preds = %827
  %829 = load double, ptr %72, align 8, !tbaa !15
  %830 = load double, ptr %73, align 8, !tbaa !15
  %831 = fcmp oeq double %829, %830
  br i1 %831, label %832, label %833

832:                                              ; preds = %828
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %849

833:                                              ; preds = %828, %827, %822
  %834 = load double, ptr %74, align 8, !tbaa !15
  %835 = fcmp olt double %834, 0x3D06849B86A12B9B
  br i1 %835, label %836, label %837

836:                                              ; preds = %833
  store i8 1, ptr %75, align 1, !tbaa !11
  br label %848

837:                                              ; preds = %833
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %838 unwind label %814

838:                                              ; preds = %837
  %839 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %840 = load double, ptr %72, align 8, !tbaa !15
  %841 = load double, ptr %73, align 8, !tbaa !15
  %842 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %76, i32 noundef %839, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %840, double noundef %841, double noundef %842)
          to label %843 unwind label %844

843:                                              ; preds = %838
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %848

844:                                              ; preds = %838
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %4, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %866

848:                                              ; preds = %843, %836
  br label %849

849:                                              ; preds = %848, %832
  br label %850

850:                                              ; preds = %849, %801
  %851 = load i8, ptr %75, align 1, !tbaa !11, !range !13, !noundef !14
  %852 = trunc i8 %851 to i1
  br i1 %852, label %853, label %863

853:                                              ; preds = %850
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %854 unwind label %814

854:                                              ; preds = %853
  %855 = load double, ptr %72, align 8, !tbaa !15
  %856 = load double, ptr %74, align 8, !tbaa !15
  %857 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %77, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %855, double noundef %856, double noundef %857)
          to label %858 unwind label %859

858:                                              ; preds = %854
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %863

859:                                              ; preds = %854
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %4, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %866

863:                                              ; preds = %858, %850
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %864 unwind label %869

864:                                              ; preds = %863
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %78)
          to label %865 unwind label %873

865:                                              ; preds = %864
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #7
  ret i32 0

866:                                              ; preds = %859, %844, %814
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  br label %867

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

868:                                              ; preds = %867, %806
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %878

869:                                              ; preds = %863
  %870 = landingpad { ptr, i32 }
          cleanup
  %871 = extractvalue { ptr, i32 } %870, 0
  store ptr %871, ptr %4, align 8
  %872 = extractvalue { ptr, i32 } %870, 1
  store i32 %872, ptr %5, align 4
  br label %877

873:                                              ; preds = %864
  %874 = landingpad { ptr, i32 }
          cleanup
  %875 = extractvalue { ptr, i32 } %874, 0
  store ptr %875, ptr %4, align 8
  %876 = extractvalue { ptr, i32 } %874, 1
  store i32 %876, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %877

877:                                              ; preds = %873, %869
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #7
  br label %878

878:                                              ; preds = %877, %868, %805, %716, %630, %544, %458, %372, %286, %200, %114
  %879 = load ptr, ptr %4, align 8
  %880 = load i32, ptr %5, align 4
  %881 = insertvalue { ptr, i32 } poison, ptr %879, 0
  %882 = insertvalue { ptr, i32 } %881, i32 %880, 1
  resume { ptr, i32 } %882
}

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare double @cos(double noundef) #6

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

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

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

; Function Attrs: 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 "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

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

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


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

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

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

41:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %42 unwind label %58

42:                                               ; preds = %41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #7
  %43 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %44 = add nsw i32 %43, 1
  store i32 %44, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %45 unwind label %61

45:                                               ; preds = %42
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  %46 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFFC000000000000000) #7
  %47 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xKBFFFC000000000000000)
  %48 = fsub x86_fp80 %46, %47
  %49 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %48)
  %50 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %47)
  %51 = fadd x86_fp80 %50, 0xK3FFF8000000000000000
  %52 = fdiv x86_fp80 %49, %51
  %53 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %46)
  br i1 %53, label %54, label %65

54:                                               ; preds = %45
  %55 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %47)
  br i1 %55, label %77, label %65

56:                                               ; preds = %0
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %60

58:                                               ; preds = %41
  %59 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #7
  br label %60

60:                                               ; preds = %58, %56
  %.pn = phi { ptr, i32 } [ %59, %58 ], [ %57, %56 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #7
  br label %376

61:                                               ; preds = %42
  %62 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  br label %95

63:                                               ; preds = %77, %72
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %94

65:                                               ; preds = %54, %45
  %66 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %46)
  br i1 %66, label %71, label %67

67:                                               ; preds = %65
  %68 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %46)
  %69 = fcmp oeq x86_fp80 %46, %47
  %or.cond = and i1 %69, %68
  %70 = fcmp olt x86_fp80 %52, 0xK3FD0B424DC35095CD800
  %or.cond242 = or i1 %70, %or.cond
  br i1 %or.cond242, label %77, label %72

71:                                               ; preds = %65
  %.old = fcmp olt x86_fp80 %52, 0xK3FD0B424DC35095CD800
  br i1 %.old, label %77, label %72

72:                                               ; preds = %67, %71
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %73 unwind label %63

73:                                               ; preds = %72
  %74 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %5, i32 noundef %74, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %46, x86_fp80 noundef %47, x86_fp80 noundef 0xKBFFFC000000000000000)
          to label %.critedge unwind label %75

75:                                               ; preds = %73
  %76 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %94

77:                                               ; preds = %54, %67, %71
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %78 unwind label %63

78:                                               ; preds = %77
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %6, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %46, x86_fp80 noundef %52, x86_fp80 noundef 0xKBFFFC000000000000000)
          to label %.critedge unwind label %79

79:                                               ; preds = %78
  %80 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %94

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

83:                                               ; preds = %.critedge
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  %84 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #7
  %85 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK00000000000000000000)
  %86 = fsub x86_fp80 %84, %85
  %87 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %86)
  %88 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %85)
  %89 = fadd x86_fp80 %88, 0xK3FFF8000000000000000
  %90 = fdiv x86_fp80 %87, %89
  %91 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %84)
  br i1 %91, label %92, label %100

92:                                               ; preds = %83
  %93 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %85)
  br i1 %93, label %112, label %100

94:                                               ; preds = %79, %75, %63
  %.pn188 = phi { ptr, i32 } [ %80, %79 ], [ %64, %63 ], [ %76, %75 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %95

95:                                               ; preds = %94, %61
  %.pn188.pn = phi { ptr, i32 } [ %.pn188, %94 ], [ %62, %61 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %376

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

98:                                               ; preds = %112, %107
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %129

100:                                              ; preds = %92, %83
  %101 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %84)
  br i1 %101, label %106, label %102

102:                                              ; preds = %100
  %103 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %84)
  %104 = fcmp oeq x86_fp80 %84, %85
  %or.cond218 = and i1 %104, %103
  %105 = fcmp olt x86_fp80 %90, 0xK3FD0B424DC35095CD800
  %or.cond244 = or i1 %105, %or.cond218
  br i1 %or.cond244, label %112, label %107

106:                                              ; preds = %100
  %.old243 = fcmp olt x86_fp80 %90, 0xK3FD0B424DC35095CD800
  br i1 %.old243, label %112, label %107

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

108:                                              ; preds = %107
  %109 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %9, i32 noundef %109, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %84, x86_fp80 noundef %85, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge220 unwind label %110

110:                                              ; preds = %108
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %129

112:                                              ; preds = %92, %102, %106
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %113 unwind label %98

113:                                              ; preds = %112
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %10, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %84, x86_fp80 noundef %90, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge220 unwind label %114

114:                                              ; preds = %113
  %115 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %129

.critedge220:                                     ; preds = %113, %108
  %.sink259 = phi ptr [ %9, %108 ], [ %10, %113 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink259) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  %116 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %117 = add nsw i32 %116, 1
  store i32 %117, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %118 unwind label %131

118:                                              ; preds = %.critedge220
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  %119 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FF583126E978D4FDF3B) #7
  %120 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
  %121 = fsub x86_fp80 %119, %120
  %122 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %121)
  %123 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %120)
  %124 = fadd x86_fp80 %123, 0xK3FFF8000000000000000
  %125 = fdiv x86_fp80 %122, %124
  %126 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %119)
  br i1 %126, label %127, label %135

127:                                              ; preds = %118
  %128 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %120)
  br i1 %128, label %147, label %135

129:                                              ; preds = %114, %110, %98
  %.pn191 = phi { ptr, i32 } [ %115, %114 ], [ %99, %98 ], [ %111, %110 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %130

130:                                              ; preds = %129, %96
  %.pn191.pn = phi { ptr, i32 } [ %.pn191, %129 ], [ %97, %96 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %376

131:                                              ; preds = %.critedge220
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  br label %165

133:                                              ; preds = %147, %142
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %164

135:                                              ; preds = %127, %118
  %136 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %119)
  br i1 %136, label %141, label %137

137:                                              ; preds = %135
  %138 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %119)
  %139 = fcmp oeq x86_fp80 %119, %120
  %or.cond221 = and i1 %139, %138
  %140 = fcmp olt x86_fp80 %125, 0xK3FD0B424DC35095CD800
  %or.cond246 = or i1 %140, %or.cond221
  br i1 %or.cond246, label %147, label %142

141:                                              ; preds = %135
  %.old245 = fcmp olt x86_fp80 %125, 0xK3FD0B424DC35095CD800
  br i1 %.old245, label %147, label %142

142:                                              ; preds = %137, %141
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %143 unwind label %133

143:                                              ; preds = %142
  %144 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %13, i32 noundef %144, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %119, x86_fp80 noundef %120, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %.critedge223 unwind label %145

145:                                              ; preds = %143
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %164

147:                                              ; preds = %127, %137, %141
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %148 unwind label %133

148:                                              ; preds = %147
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %14, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %119, x86_fp80 noundef %125, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %.critedge223 unwind label %149

149:                                              ; preds = %148
  %150 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %164

.critedge223:                                     ; preds = %148, %143
  %.sink260 = phi ptr [ %13, %143 ], [ %14, %148 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink260) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  %151 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %152 = add nsw i32 %151, 1
  store i32 %152, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %153 unwind label %166

153:                                              ; preds = %.critedge223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  %154 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8020C49BA5E353F8) #7
  %155 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK3FFF8020C49BA5E353F8)
  %156 = fsub x86_fp80 %154, %155
  %157 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %156)
  %158 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %155)
  %159 = fadd x86_fp80 %158, 0xK3FFF8000000000000000
  %160 = fdiv x86_fp80 %157, %159
  %161 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %154)
  br i1 %161, label %162, label %170

162:                                              ; preds = %153
  %163 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %155)
  br i1 %163, label %182, label %170

164:                                              ; preds = %149, %145, %133
  %.pn194 = phi { ptr, i32 } [ %150, %149 ], [ %134, %133 ], [ %146, %145 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %165

165:                                              ; preds = %164, %131
  %.pn194.pn = phi { ptr, i32 } [ %.pn194, %164 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  br label %376

166:                                              ; preds = %.critedge223
  %167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  br label %200

168:                                              ; preds = %182, %177
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %199

170:                                              ; preds = %162, %153
  %171 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %154)
  br i1 %171, label %176, label %172

172:                                              ; preds = %170
  %173 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %154)
  %174 = fcmp oeq x86_fp80 %154, %155
  %or.cond224 = and i1 %174, %173
  %175 = fcmp olt x86_fp80 %160, 0xK3FD0B424DC35095CD800
  %or.cond248 = or i1 %175, %or.cond224
  br i1 %or.cond248, label %182, label %177

176:                                              ; preds = %170
  %.old247 = fcmp olt x86_fp80 %160, 0xK3FD0B424DC35095CD800
  br i1 %.old247, label %182, label %177

177:                                              ; preds = %172, %176
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %178 unwind label %168

178:                                              ; preds = %177
  %179 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %17, i32 noundef %179, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %154, x86_fp80 noundef %155, x86_fp80 noundef 0xK3FFF8020C49BA5E353F8)
          to label %.critedge226 unwind label %180

180:                                              ; preds = %178
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %199

182:                                              ; preds = %162, %172, %176
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %183 unwind label %168

183:                                              ; preds = %182
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %18, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %154, x86_fp80 noundef %160, x86_fp80 noundef 0xK3FFF8020C49BA5E353F8)
          to label %.critedge226 unwind label %184

184:                                              ; preds = %183
  %185 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %199

.critedge226:                                     ; preds = %183, %178
  %.sink261 = phi ptr [ %17, %178 ], [ %18, %183 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink261) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  %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 nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %188 unwind label %201

188:                                              ; preds = %.critedge226
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  %189 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFFC000000000000000) #7
  %190 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK3FFFC000000000000000)
  %191 = fsub x86_fp80 %189, %190
  %192 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %191)
  %193 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %190)
  %194 = fadd x86_fp80 %193, 0xK3FFF8000000000000000
  %195 = fdiv x86_fp80 %192, %194
  %196 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %189)
  br i1 %196, label %197, label %205

197:                                              ; preds = %188
  %198 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %190)
  br i1 %198, label %217, label %205

199:                                              ; preds = %184, %180, %168
  %.pn197 = phi { ptr, i32 } [ %185, %184 ], [ %169, %168 ], [ %181, %180 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %200

200:                                              ; preds = %199, %166
  %.pn197.pn = phi { ptr, i32 } [ %.pn197, %199 ], [ %167, %166 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %376

201:                                              ; preds = %.critedge226
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  br label %235

203:                                              ; preds = %217, %212
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %234

205:                                              ; preds = %197, %188
  %206 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %189)
  br i1 %206, label %211, label %207

207:                                              ; preds = %205
  %208 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %189)
  %209 = fcmp oeq x86_fp80 %189, %190
  %or.cond227 = and i1 %209, %208
  %210 = fcmp olt x86_fp80 %195, 0xK3FD0B424DC35095CD800
  %or.cond250 = or i1 %210, %or.cond227
  br i1 %or.cond250, label %217, label %212

211:                                              ; preds = %205
  %.old249 = fcmp olt x86_fp80 %195, 0xK3FD0B424DC35095CD800
  br i1 %.old249, label %217, label %212

212:                                              ; preds = %207, %211
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %213 unwind label %203

213:                                              ; preds = %212
  %214 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %21, i32 noundef %214, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %189, x86_fp80 noundef %190, x86_fp80 noundef 0xK3FFFC000000000000000)
          to label %.critedge229 unwind label %215

215:                                              ; preds = %213
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %234

217:                                              ; preds = %197, %207, %211
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %218 unwind label %203

218:                                              ; preds = %217
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %22, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %189, x86_fp80 noundef %195, x86_fp80 noundef 0xK3FFFC000000000000000)
          to label %.critedge229 unwind label %219

219:                                              ; preds = %218
  %220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %234

.critedge229:                                     ; preds = %218, %213
  %.sink262 = phi ptr [ %21, %213 ], [ %22, %218 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink262) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  %221 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %222 = add nsw i32 %221, 1
  store i32 %222, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %223 unwind label %236

223:                                              ; preds = %.critedge229
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  %224 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK4002B19999999999999A) #7
  %225 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK4002B19999999999999A)
  %226 = fsub x86_fp80 %224, %225
  %227 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %226)
  %228 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %225)
  %229 = fadd x86_fp80 %228, 0xK3FFF8000000000000000
  %230 = fdiv x86_fp80 %227, %229
  %231 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %224)
  br i1 %231, label %232, label %240

232:                                              ; preds = %223
  %233 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %225)
  br i1 %233, label %252, label %240

234:                                              ; preds = %219, %215, %203
  %.pn200 = phi { ptr, i32 } [ %220, %219 ], [ %204, %203 ], [ %216, %215 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %235

235:                                              ; preds = %234, %201
  %.pn200.pn = phi { ptr, i32 } [ %.pn200, %234 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %376

236:                                              ; preds = %.critedge229
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  br label %270

238:                                              ; preds = %252, %247
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %269

240:                                              ; preds = %232, %223
  %241 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %224)
  br i1 %241, label %246, label %242

242:                                              ; preds = %240
  %243 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %224)
  %244 = fcmp oeq x86_fp80 %224, %225
  %or.cond230 = and i1 %244, %243
  %245 = fcmp olt x86_fp80 %230, 0xK3FD0B424DC35095CD800
  %or.cond252 = or i1 %245, %or.cond230
  br i1 %or.cond252, label %252, label %247

246:                                              ; preds = %240
  %.old251 = fcmp olt x86_fp80 %230, 0xK3FD0B424DC35095CD800
  br i1 %.old251, label %252, label %247

247:                                              ; preds = %242, %246
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %248 unwind label %238

248:                                              ; preds = %247
  %249 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %25, i32 noundef %249, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %224, x86_fp80 noundef %225, x86_fp80 noundef 0xK4002B19999999999999A)
          to label %.critedge232 unwind label %250

250:                                              ; preds = %248
  %251 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %269

252:                                              ; preds = %232, %242, %246
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %253 unwind label %238

253:                                              ; preds = %252
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %26, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %224, x86_fp80 noundef %230, x86_fp80 noundef 0xK4002B19999999999999A)
          to label %.critedge232 unwind label %254

254:                                              ; preds = %253
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %269

.critedge232:                                     ; preds = %253, %248
  %.sink263 = phi ptr [ %25, %248 ], [ %26, %253 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink263) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  %256 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %257 = add nsw i32 %256, 1
  store i32 %257, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %258 unwind label %271

258:                                              ; preds = %.critedge232
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  %259 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK4004C800000000000000) #7
  %260 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK4004C800000000000000)
  %261 = fsub x86_fp80 %259, %260
  %262 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %261)
  %263 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %260)
  %264 = fadd x86_fp80 %263, 0xK3FFF8000000000000000
  %265 = fdiv x86_fp80 %262, %264
  %266 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %259)
  br i1 %266, label %267, label %275

267:                                              ; preds = %258
  %268 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %260)
  br i1 %268, label %287, label %275

269:                                              ; preds = %254, %250, %238
  %.pn203 = phi { ptr, i32 } [ %255, %254 ], [ %239, %238 ], [ %251, %250 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %270

270:                                              ; preds = %269, %236
  %.pn203.pn = phi { ptr, i32 } [ %.pn203, %269 ], [ %237, %236 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %376

271:                                              ; preds = %.critedge232
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  br label %305

273:                                              ; preds = %287, %282
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %304

275:                                              ; preds = %267, %258
  %276 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %259)
  br i1 %276, label %281, label %277

277:                                              ; preds = %275
  %278 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %259)
  %279 = fcmp oeq x86_fp80 %259, %260
  %or.cond233 = and i1 %279, %278
  %280 = fcmp olt x86_fp80 %265, 0xK3FD0B424DC35095CD800
  %or.cond254 = or i1 %280, %or.cond233
  br i1 %or.cond254, label %287, label %282

281:                                              ; preds = %275
  %.old253 = fcmp olt x86_fp80 %265, 0xK3FD0B424DC35095CD800
  br i1 %.old253, label %287, label %282

282:                                              ; preds = %277, %281
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %283 unwind label %273

283:                                              ; preds = %282
  %284 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %29, i32 noundef %284, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %259, x86_fp80 noundef %260, x86_fp80 noundef 0xK4004C800000000000000)
          to label %.critedge235 unwind label %285

285:                                              ; preds = %283
  %286 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %304

287:                                              ; preds = %267, %277, %281
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %288 unwind label %273

288:                                              ; preds = %287
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %259, x86_fp80 noundef %265, x86_fp80 noundef 0xK4004C800000000000000)
          to label %.critedge235 unwind label %289

289:                                              ; preds = %288
  %290 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %304

.critedge235:                                     ; preds = %288, %283
  %.sink264 = phi ptr [ %29, %283 ], [ %30, %288 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink264) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  %291 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %293 unwind label %306

293:                                              ; preds = %.critedge235
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  %294 = call noundef x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK40069600000000000000) #7
  %295 = call noundef x86_fp80 @_ZSt3cose(x86_fp80 noundef 0xK40069600000000000000)
  %296 = fsub x86_fp80 %294, %295
  %297 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %296)
  %298 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %295)
  %299 = fadd x86_fp80 %298, 0xK3FFF8000000000000000
  %300 = fdiv x86_fp80 %297, %299
  %301 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %294)
  br i1 %301, label %302, label %310

302:                                              ; preds = %293
  %303 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %295)
  br i1 %303, label %322, label %310

304:                                              ; preds = %289, %285, %273
  %.pn206 = phi { ptr, i32 } [ %290, %289 ], [ %274, %273 ], [ %286, %285 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %305

305:                                              ; preds = %304, %271
  %.pn206.pn = phi { ptr, i32 } [ %.pn206, %304 ], [ %272, %271 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %376

306:                                              ; preds = %.critedge235
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  br label %344

308:                                              ; preds = %322, %317
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %343

310:                                              ; preds = %302, %293
  %311 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %294)
  br i1 %311, label %316, label %312

312:                                              ; preds = %310
  %313 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %294)
  %314 = fcmp oeq x86_fp80 %294, %295
  %or.cond236 = and i1 %314, %313
  %315 = fcmp olt x86_fp80 %300, 0xK3FD0B424DC35095CD800
  %or.cond256 = or i1 %315, %or.cond236
  br i1 %or.cond256, label %322, label %317

316:                                              ; preds = %310
  %.old255 = fcmp olt x86_fp80 %300, 0xK3FD0B424DC35095CD800
  br i1 %.old255, label %322, label %317

317:                                              ; preds = %312, %316
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %318 unwind label %308

318:                                              ; preds = %317
  %319 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %33, i32 noundef %319, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %294, x86_fp80 noundef %295, x86_fp80 noundef 0xK40069600000000000000)
          to label %.critedge238 unwind label %320

320:                                              ; preds = %318
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %343

322:                                              ; preds = %302, %312, %316
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %323 unwind label %308

323:                                              ; preds = %322
  invoke void @_Z15print_test_passIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %34, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %294, x86_fp80 noundef %300, x86_fp80 noundef 0xK40069600000000000000)
          to label %.critedge238 unwind label %324

324:                                              ; preds = %323
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %343

.critedge238:                                     ; preds = %323, %318
  %.sink265 = phi ptr [ %33, %318 ], [ %34, %323 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink265) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  %326 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %328 unwind label %345

328:                                              ; preds = %.critedge238
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  %329 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %330 = call noundef double @_ZN4gcem3cosIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %329) #7
  %331 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %332 = call double @cos(double noundef %331) #7
  %333 = fsub double %330, %332
  %334 = call noundef double @_ZSt3absd(double noundef %333)
  %335 = call noundef double @_ZSt3absd(double noundef %332)
  %336 = fadd double %335, 1.000000e+00
  %337 = fdiv double %334, %336
  %338 = fpext double %330 to x86_fp80
  %339 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %338)
  br i1 %339, label %340, label %349

340:                                              ; preds = %328
  %341 = fpext double %332 to x86_fp80
  %342 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %341)
  br i1 %342, label %362, label %349

343:                                              ; preds = %324, %320, %308
  %.pn209 = phi { ptr, i32 } [ %325, %324 ], [ %309, %308 ], [ %321, %320 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %344

344:                                              ; preds = %343, %306
  %.pn209.pn = phi { ptr, i32 } [ %.pn209, %343 ], [ %307, %306 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %376

345:                                              ; preds = %.critedge238
  %346 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  br label %370

347:                                              ; preds = %362, %356
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %369

349:                                              ; preds = %340, %328
  %350 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %338)
  br i1 %350, label %355, label %351

351:                                              ; preds = %349
  %352 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %338)
  %353 = fcmp oeq double %330, %332
  %or.cond239 = and i1 %353, %352
  %354 = fcmp olt double %337, 0x3D06849B86A12B9B
  %or.cond258 = or i1 %354, %or.cond239
  br i1 %or.cond258, label %362, label %356

355:                                              ; preds = %349
  %.old257 = fcmp olt double %337, 0x3D06849B86A12B9B
  br i1 %.old257, label %362, label %356

356:                                              ; preds = %351, %355
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %357 unwind label %347

357:                                              ; preds = %356
  %358 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %359 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %37, i32 noundef %358, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %330, double noundef %332, double noundef %359)
          to label %.critedge241 unwind label %360

360:                                              ; preds = %357
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %369

362:                                              ; preds = %340, %351, %355
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %363 unwind label %347

363:                                              ; preds = %362
  %364 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %38, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %330, double noundef %337, double noundef %364)
          to label %.critedge241 unwind label %365

365:                                              ; preds = %363
  %366 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %369

.critedge241:                                     ; preds = %363, %357
  %.sink266 = phi ptr [ %37, %357 ], [ %38, %363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink266) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %367 unwind label %371

367:                                              ; preds = %.critedge241
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %39)
          to label %368 unwind label %373

368:                                              ; preds = %367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  ret i32 0

369:                                              ; preds = %365, %360, %347
  %.pn212 = phi { ptr, i32 } [ %366, %365 ], [ %348, %347 ], [ %361, %360 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %370

370:                                              ; preds = %369, %345
  %.pn212.pn = phi { ptr, i32 } [ %.pn212, %369 ], [ %346, %345 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %376

371:                                              ; preds = %.critedge241
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %375

373:                                              ; preds = %367
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %375

375:                                              ; preds = %373, %371
  %.pn215 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  br label %376

376:                                              ; preds = %375, %370, %344, %305, %270, %235, %200, %165, %130, %95, %60
  %.pn215.pn = phi { ptr, i32 } [ %.pn215, %375 ], [ %.pn212.pn, %370 ], [ %.pn209.pn, %344 ], [ %.pn206.pn, %305 ], [ %.pn203.pn, %270 ], [ %.pn200.pn, %235 ], [ %.pn197.pn, %200 ], [ %.pn194.pn, %165 ], [ %.pn191.pn, %130 ], [ %.pn188.pn, %95 ], [ %.pn, %60 ]
  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 x86_fp80 @_ZN4gcem3cosIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #6

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

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

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

; Function Attrs: 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 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

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

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


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