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

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

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca x86_fp80, align 16
  %9 = alloca 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 double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %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
  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 %64 unwind label %90

64:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2)
          to label %65 unwind label %94

65:                                               ; preds = %64
  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
  %66 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %67 = add nsw i32 %66, 1
  store i32 %67, 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 %68 unwind label %99

68:                                               ; preds = %65
  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
  %69 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4) #7
  store x86_fp80 %69, ptr %8, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #7
  %70 = invoke noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4)
          to label %71 unwind label %103

71:                                               ; preds = %68
  store x86_fp80 %70, ptr %9, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #7
  %72 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %73 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %74 = fsub x86_fp80 %72, %73
  %75 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %74)
          to label %76 unwind label %107

76:                                               ; preds = %71
  %77 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %78 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %77)
          to label %79 unwind label %107

79:                                               ; preds = %76
  %80 = fadd x86_fp80 0xK3FFF8000000000000000, %78
  %81 = fdiv x86_fp80 %75, %80
  store x86_fp80 %81, 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
  %82 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %83 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %82)
          to label %84 unwind label %111

84:                                               ; preds = %79
  br i1 %83, label %85, label %115

85:                                               ; preds = %84
  %86 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %87 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %86)
          to label %88 unwind label %111

88:                                               ; preds = %85
  br i1 %87, label %89, label %115

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

90:                                               ; preds = %0
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %4, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %5, align 4
  br label %98

94:                                               ; preds = %64
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %4, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  br label %98

98:                                               ; preds = %94, %90
  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 %690

99:                                               ; preds = %65
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %4, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, 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 %184

103:                                              ; preds = %68
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %4, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %5, align 4
  br label %183

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

111:                                              ; preds = %147, %132, %119, %115, %85, %79
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %4, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %5, align 4
  br label %181

115:                                              ; preds = %88, %84
  %116 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %117 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %116)
          to label %118 unwind label %111

118:                                              ; preds = %115
  br i1 %117, label %128, label %119

119:                                              ; preds = %118
  %120 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %121 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %120)
          to label %122 unwind label %111

122:                                              ; preds = %119
  br i1 %121, label %123, label %128

123:                                              ; preds = %122
  %124 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %125 = load x86_fp80, ptr %9, align 16, !tbaa !9
  %126 = fcmp oeq x86_fp80 %124, %125
  br i1 %126, label %127, label %128

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

128:                                              ; preds = %123, %122, %118
  %129 = load x86_fp80, ptr %10, align 16, !tbaa !9
  %130 = fcmp olt x86_fp80 %129, 0xK3FD0B424DC35095CD800
  br i1 %130, label %131, label %132

131:                                              ; preds = %128
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %142

132:                                              ; preds = %128
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %133 unwind label %111

133:                                              ; preds = %132
  %134 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %135 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %136 = load x86_fp80, ptr %9, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %12, i32 noundef %134, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %135, x86_fp80 noundef %136, x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4)
          to label %137 unwind label %138

137:                                              ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %142

138:                                              ; preds = %133
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %4, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %181

142:                                              ; preds = %137, %131
  br label %143

143:                                              ; preds = %142, %127
  br label %144

144:                                              ; preds = %143, %89
  %145 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %146 = trunc i8 %145 to i1
  br i1 %146, label %147, label %156

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

148:                                              ; preds = %147
  %149 = load x86_fp80, ptr %8, align 16, !tbaa !9
  %150 = 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 %149, x86_fp80 noundef %150, x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4)
          to label %151 unwind label %152

151:                                              ; preds = %148
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %156

152:                                              ; preds = %148
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %4, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %181

156:                                              ; preds = %151, %144
  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
  %157 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %158 = add nsw i32 %157, 1
  store i32 %158, 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 %159 unwind label %185

159:                                              ; preds = %156
  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
  %160 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #7
  store x86_fp80 %160, ptr %16, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #7
  %161 = invoke noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK00000000000000000000)
          to label %162 unwind label %189

162:                                              ; preds = %159
  store x86_fp80 %161, ptr %17, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #7
  %163 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %164 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %165 = fsub x86_fp80 %163, %164
  %166 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %165)
          to label %167 unwind label %193

167:                                              ; preds = %162
  %168 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %169 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %168)
          to label %170 unwind label %193

170:                                              ; preds = %167
  %171 = fadd x86_fp80 0xK3FFF8000000000000000, %169
  %172 = fdiv x86_fp80 %166, %171
  store x86_fp80 %172, 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
  %173 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %174 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %173)
          to label %175 unwind label %197

175:                                              ; preds = %170
  br i1 %174, label %176, label %201

176:                                              ; preds = %175
  %177 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %178 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %177)
          to label %179 unwind label %197

179:                                              ; preds = %176
  br i1 %178, label %180, label %201

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

181:                                              ; preds = %152, %138, %111
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %182

182:                                              ; preds = %181, %107
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  br label %183

183:                                              ; preds = %182, %103
  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 %184

184:                                              ; preds = %183, %99
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %690

185:                                              ; preds = %156
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %4, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, 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 %270

189:                                              ; preds = %159
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %4, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %5, align 4
  br label %269

193:                                              ; preds = %167, %162
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %4, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %5, align 4
  br label %268

197:                                              ; preds = %233, %218, %205, %201, %176, %170
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %4, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %5, align 4
  br label %267

201:                                              ; preds = %179, %175
  %202 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %203 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %202)
          to label %204 unwind label %197

204:                                              ; preds = %201
  br i1 %203, label %214, label %205

205:                                              ; preds = %204
  %206 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %207 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %206)
          to label %208 unwind label %197

208:                                              ; preds = %205
  br i1 %207, label %209, label %214

209:                                              ; preds = %208
  %210 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %211 = load x86_fp80, ptr %17, align 16, !tbaa !9
  %212 = fcmp oeq x86_fp80 %210, %211
  br i1 %212, label %213, label %214

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

214:                                              ; preds = %209, %208, %204
  %215 = load x86_fp80, ptr %18, align 16, !tbaa !9
  %216 = fcmp olt x86_fp80 %215, 0xK3FD0B424DC35095CD800
  br i1 %216, label %217, label %218

217:                                              ; preds = %214
  store i8 1, ptr %19, align 1, !tbaa !11
  br label %228

218:                                              ; preds = %214
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %219 unwind label %197

219:                                              ; preds = %218
  %220 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %221 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %222 = load x86_fp80, ptr %17, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %20, i32 noundef %220, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %221, x86_fp80 noundef %222, x86_fp80 noundef 0xK00000000000000000000)
          to label %223 unwind label %224

223:                                              ; preds = %219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %228

224:                                              ; preds = %219
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %4, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %267

228:                                              ; preds = %223, %217
  br label %229

229:                                              ; preds = %228, %213
  br label %230

230:                                              ; preds = %229, %180
  %231 = load i8, ptr %19, align 1, !tbaa !11, !range !13, !noundef !14
  %232 = trunc i8 %231 to i1
  br i1 %232, label %233, label %242

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

234:                                              ; preds = %233
  %235 = load x86_fp80, ptr %16, align 16, !tbaa !9
  %236 = 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 %235, x86_fp80 noundef %236, x86_fp80 noundef 0xK00000000000000000000)
          to label %237 unwind label %238

237:                                              ; preds = %234
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %242

238:                                              ; preds = %234
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %4, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %267

242:                                              ; preds = %237, %230
  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
  %243 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %244 = add nsw i32 %243, 1
  store i32 %244, 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 %245 unwind label %271

245:                                              ; preds = %242
  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
  %246 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FF583126E978D4FDF3B) #7
  store x86_fp80 %246, ptr %24, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #7
  %247 = invoke noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %248 unwind label %275

248:                                              ; preds = %245
  store x86_fp80 %247, ptr %25, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  %249 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %250 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %251 = fsub x86_fp80 %249, %250
  %252 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %251)
          to label %253 unwind label %279

253:                                              ; preds = %248
  %254 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %255 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %254)
          to label %256 unwind label %279

256:                                              ; preds = %253
  %257 = fadd x86_fp80 0xK3FFF8000000000000000, %255
  %258 = fdiv x86_fp80 %252, %257
  store x86_fp80 %258, 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
  %259 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %260 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %259)
          to label %261 unwind label %283

261:                                              ; preds = %256
  br i1 %260, label %262, label %287

262:                                              ; preds = %261
  %263 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %264 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %263)
          to label %265 unwind label %283

265:                                              ; preds = %262
  br i1 %264, label %266, label %287

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

267:                                              ; preds = %238, %224, %197
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %268

268:                                              ; preds = %267, %193
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #7
  br label %269

269:                                              ; preds = %268, %189
  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 %270

270:                                              ; preds = %269, %185
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %690

271:                                              ; preds = %242
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %4, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, 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 %356

275:                                              ; preds = %245
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %4, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %5, align 4
  br label %355

279:                                              ; preds = %253, %248
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %4, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %5, align 4
  br label %354

283:                                              ; preds = %319, %304, %291, %287, %262, %256
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %4, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %5, align 4
  br label %353

287:                                              ; preds = %265, %261
  %288 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %289 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %288)
          to label %290 unwind label %283

290:                                              ; preds = %287
  br i1 %289, label %300, label %291

291:                                              ; preds = %290
  %292 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %293 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %292)
          to label %294 unwind label %283

294:                                              ; preds = %291
  br i1 %293, label %295, label %300

295:                                              ; preds = %294
  %296 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %297 = load x86_fp80, ptr %25, align 16, !tbaa !9
  %298 = fcmp oeq x86_fp80 %296, %297
  br i1 %298, label %299, label %300

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

300:                                              ; preds = %295, %294, %290
  %301 = load x86_fp80, ptr %26, align 16, !tbaa !9
  %302 = fcmp olt x86_fp80 %301, 0xK3FD0B424DC35095CD800
  br i1 %302, label %303, label %304

303:                                              ; preds = %300
  store i8 1, ptr %27, align 1, !tbaa !11
  br label %314

304:                                              ; preds = %300
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %305 unwind label %283

305:                                              ; preds = %304
  %306 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %307 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %308 = load x86_fp80, ptr %25, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %28, i32 noundef %306, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %307, x86_fp80 noundef %308, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %309 unwind label %310

309:                                              ; preds = %305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %314

310:                                              ; preds = %305
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %4, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %353

314:                                              ; preds = %309, %303
  br label %315

315:                                              ; preds = %314, %299
  br label %316

316:                                              ; preds = %315, %266
  %317 = load i8, ptr %27, align 1, !tbaa !11, !range !13, !noundef !14
  %318 = trunc i8 %317 to i1
  br i1 %318, label %319, label %328

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

320:                                              ; preds = %319
  %321 = load x86_fp80, ptr %24, align 16, !tbaa !9
  %322 = 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 %321, x86_fp80 noundef %322, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %323 unwind label %324

323:                                              ; preds = %320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %328

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

328:                                              ; preds = %323, %316
  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
  %329 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %330 = add nsw i32 %329, 1
  store i32 %330, 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 %331 unwind label %357

331:                                              ; preds = %328
  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
  %332 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8000000000000000) #7
  store x86_fp80 %332, ptr %32, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #7
  %333 = invoke noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %334 unwind label %361

334:                                              ; preds = %331
  store x86_fp80 %333, ptr %33, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #7
  %335 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %336 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %337 = fsub x86_fp80 %335, %336
  %338 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %337)
          to label %339 unwind label %365

339:                                              ; preds = %334
  %340 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %341 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %340)
          to label %342 unwind label %365

342:                                              ; preds = %339
  %343 = fadd x86_fp80 0xK3FFF8000000000000000, %341
  %344 = fdiv x86_fp80 %338, %343
  store x86_fp80 %344, 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
  %345 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %346 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %345)
          to label %347 unwind label %369

347:                                              ; preds = %342
  br i1 %346, label %348, label %373

348:                                              ; preds = %347
  %349 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %350 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %349)
          to label %351 unwind label %369

351:                                              ; preds = %348
  br i1 %350, label %352, label %373

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

353:                                              ; preds = %324, %310, %283
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  br label %354

354:                                              ; preds = %353, %279
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  br label %355

355:                                              ; preds = %354, %275
  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 %356

356:                                              ; preds = %355, %271
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %690

357:                                              ; preds = %328
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %4, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %5, align 4
  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 %442

361:                                              ; preds = %331
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %4, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %5, align 4
  br label %441

365:                                              ; preds = %339, %334
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %4, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %5, align 4
  br label %440

369:                                              ; preds = %405, %390, %377, %373, %348, %342
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %4, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %5, align 4
  br label %439

373:                                              ; preds = %351, %347
  %374 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %375 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %374)
          to label %376 unwind label %369

376:                                              ; preds = %373
  br i1 %375, label %386, label %377

377:                                              ; preds = %376
  %378 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %379 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %378)
          to label %380 unwind label %369

380:                                              ; preds = %377
  br i1 %379, label %381, label %386

381:                                              ; preds = %380
  %382 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %383 = load x86_fp80, ptr %33, align 16, !tbaa !9
  %384 = fcmp oeq x86_fp80 %382, %383
  br i1 %384, label %385, label %386

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

386:                                              ; preds = %381, %380, %376
  %387 = load x86_fp80, ptr %34, align 16, !tbaa !9
  %388 = fcmp olt x86_fp80 %387, 0xK3FD0B424DC35095CD800
  br i1 %388, label %389, label %390

389:                                              ; preds = %386
  store i8 1, ptr %35, align 1, !tbaa !11
  br label %400

390:                                              ; preds = %386
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %391 unwind label %369

391:                                              ; preds = %390
  %392 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %393 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %394 = load x86_fp80, ptr %33, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %36, i32 noundef %392, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %393, x86_fp80 noundef %394, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %395 unwind label %396

395:                                              ; preds = %391
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %400

396:                                              ; preds = %391
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %4, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %439

400:                                              ; preds = %395, %389
  br label %401

401:                                              ; preds = %400, %385
  br label %402

402:                                              ; preds = %401, %352
  %403 = load i8, ptr %35, align 1, !tbaa !11, !range !13, !noundef !14
  %404 = trunc i8 %403 to i1
  br i1 %404, label %405, label %414

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

406:                                              ; preds = %405
  %407 = load x86_fp80, ptr %32, align 16, !tbaa !9
  %408 = 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 %407, x86_fp80 noundef %408, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %409 unwind label %410

409:                                              ; preds = %406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %414

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

414:                                              ; preds = %409, %402
  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
  %415 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %416 = add nsw i32 %415, 1
  store i32 %416, 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 %417 unwind label %443

417:                                              ; preds = %414
  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
  %418 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFF8000000000000000) #7
  store x86_fp80 %418, ptr %40, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #7
  %419 = invoke noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %420 unwind label %447

420:                                              ; preds = %417
  store x86_fp80 %419, ptr %41, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #7
  %421 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %422 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %423 = fsub x86_fp80 %421, %422
  %424 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %423)
          to label %425 unwind label %451

425:                                              ; preds = %420
  %426 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %427 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %426)
          to label %428 unwind label %451

428:                                              ; preds = %425
  %429 = fadd x86_fp80 0xK3FFF8000000000000000, %427
  %430 = fdiv x86_fp80 %424, %429
  store x86_fp80 %430, 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
  %431 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %432 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %431)
          to label %433 unwind label %455

433:                                              ; preds = %428
  br i1 %432, label %434, label %459

434:                                              ; preds = %433
  %435 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %436 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %435)
          to label %437 unwind label %455

437:                                              ; preds = %434
  br i1 %436, label %438, label %459

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

439:                                              ; preds = %410, %396, %369
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %440

440:                                              ; preds = %439, %365
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  br label %441

441:                                              ; preds = %440, %361
  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 %442

442:                                              ; preds = %441, %357
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %690

443:                                              ; preds = %414
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %4, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, 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 %528

447:                                              ; preds = %417
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %4, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %5, align 4
  br label %527

451:                                              ; preds = %425, %420
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %4, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %5, align 4
  br label %526

455:                                              ; preds = %491, %476, %463, %459, %434, %428
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %4, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %5, align 4
  br label %525

459:                                              ; preds = %437, %433
  %460 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %461 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %460)
          to label %462 unwind label %455

462:                                              ; preds = %459
  br i1 %461, label %472, label %463

463:                                              ; preds = %462
  %464 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %465 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %464)
          to label %466 unwind label %455

466:                                              ; preds = %463
  br i1 %465, label %467, label %472

467:                                              ; preds = %466
  %468 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %469 = load x86_fp80, ptr %41, align 16, !tbaa !9
  %470 = fcmp oeq x86_fp80 %468, %469
  br i1 %470, label %471, label %472

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

472:                                              ; preds = %467, %466, %462
  %473 = load x86_fp80, ptr %42, align 16, !tbaa !9
  %474 = fcmp olt x86_fp80 %473, 0xK3FD0B424DC35095CD800
  br i1 %474, label %475, label %476

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

476:                                              ; preds = %472
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %477 unwind label %455

477:                                              ; preds = %476
  %478 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %479 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %480 = load x86_fp80, ptr %41, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %44, i32 noundef %478, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %479, x86_fp80 noundef %480, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %481 unwind label %482

481:                                              ; preds = %477
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %486

482:                                              ; preds = %477
  %483 = landingpad { ptr, i32 }
          cleanup
  %484 = extractvalue { ptr, i32 } %483, 0
  store ptr %484, ptr %4, align 8
  %485 = extractvalue { ptr, i32 } %483, 1
  store i32 %485, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %525

486:                                              ; preds = %481, %475
  br label %487

487:                                              ; preds = %486, %471
  br label %488

488:                                              ; preds = %487, %438
  %489 = load i8, ptr %43, align 1, !tbaa !11, !range !13, !noundef !14
  %490 = trunc i8 %489 to i1
  br i1 %490, label %491, label %500

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

492:                                              ; preds = %491
  %493 = load x86_fp80, ptr %40, align 16, !tbaa !9
  %494 = 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 %493, x86_fp80 noundef %494, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %495 unwind label %496

495:                                              ; preds = %492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %500

496:                                              ; preds = %492
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %4, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %525

500:                                              ; preds = %495, %488
  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
  %501 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, 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 %503 unwind label %529

503:                                              ; preds = %500
  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
  %504 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD) #7
  store x86_fp80 %504, ptr %48, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #7
  %505 = invoke noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD)
          to label %506 unwind label %533

506:                                              ; preds = %503
  store x86_fp80 %505, ptr %49, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #7
  %507 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %508 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %509 = fsub x86_fp80 %507, %508
  %510 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %509)
          to label %511 unwind label %537

511:                                              ; preds = %506
  %512 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %513 = invoke noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %512)
          to label %514 unwind label %537

514:                                              ; preds = %511
  %515 = fadd x86_fp80 0xK3FFF8000000000000000, %513
  %516 = fdiv x86_fp80 %510, %515
  store x86_fp80 %516, 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
  %517 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %518 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %517)
          to label %519 unwind label %541

519:                                              ; preds = %514
  br i1 %518, label %520, label %545

520:                                              ; preds = %519
  %521 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %522 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %521)
          to label %523 unwind label %541

523:                                              ; preds = %520
  br i1 %522, label %524, label %545

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

525:                                              ; preds = %496, %482, %455
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %526

526:                                              ; preds = %525, %451
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  br label %527

527:                                              ; preds = %526, %447
  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 %528

528:                                              ; preds = %527, %443
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %690

529:                                              ; preds = %500
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %4, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, 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 %617

533:                                              ; preds = %503
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %4, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %5, align 4
  br label %616

537:                                              ; preds = %511, %506
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %4, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %5, align 4
  br label %615

541:                                              ; preds = %577, %562, %549, %545, %520, %514
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %4, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %5, align 4
  br label %614

545:                                              ; preds = %523, %519
  %546 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %547 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %546)
          to label %548 unwind label %541

548:                                              ; preds = %545
  br i1 %547, label %558, label %549

549:                                              ; preds = %548
  %550 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %551 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %550)
          to label %552 unwind label %541

552:                                              ; preds = %549
  br i1 %551, label %553, label %558

553:                                              ; preds = %552
  %554 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %555 = load x86_fp80, ptr %49, align 16, !tbaa !9
  %556 = fcmp oeq x86_fp80 %554, %555
  br i1 %556, label %557, label %558

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

558:                                              ; preds = %553, %552, %548
  %559 = load x86_fp80, ptr %50, align 16, !tbaa !9
  %560 = fcmp olt x86_fp80 %559, 0xK3FD0B424DC35095CD800
  br i1 %560, label %561, label %562

561:                                              ; preds = %558
  store i8 1, ptr %51, align 1, !tbaa !11
  br label %572

562:                                              ; preds = %558
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %563 unwind label %541

563:                                              ; preds = %562
  %564 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %565 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %566 = load x86_fp80, ptr %49, align 16, !tbaa !9
  invoke void @_Z15print_test_failIeeeEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %52, i32 noundef %564, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %565, x86_fp80 noundef %566, x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD)
          to label %567 unwind label %568

567:                                              ; preds = %563
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %572

568:                                              ; preds = %563
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %4, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %614

572:                                              ; preds = %567, %561
  br label %573

573:                                              ; preds = %572, %557
  br label %574

574:                                              ; preds = %573, %524
  %575 = load i8, ptr %51, align 1, !tbaa !11, !range !13, !noundef !14
  %576 = trunc i8 %575 to i1
  br i1 %576, label %577, label %586

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

578:                                              ; preds = %577
  %579 = load x86_fp80, ptr %48, align 16, !tbaa !9
  %580 = 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 %579, x86_fp80 noundef %580, x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD)
          to label %581 unwind label %582

581:                                              ; preds = %578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %586

582:                                              ; preds = %578
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %4, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %614

586:                                              ; preds = %581, %574
  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
  %587 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, 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 %589 unwind label %618

589:                                              ; preds = %586
  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 8, ptr %56) #7
  %590 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %591 = call noundef double @_ZN4gcem5atanhIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %590) #7
  store double %591, ptr %56, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %592 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %593 = call double @atanh(double noundef %592) #7
  store double %593, ptr %57, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %594 = load double, ptr %56, align 8, !tbaa !15
  %595 = load double, ptr %57, align 8, !tbaa !15
  %596 = fsub double %594, %595
  %597 = invoke noundef double @_ZSt3absd(double noundef %596)
          to label %598 unwind label %622

598:                                              ; preds = %589
  %599 = load double, ptr %57, align 8, !tbaa !15
  %600 = invoke noundef double @_ZSt3absd(double noundef %599)
          to label %601 unwind label %622

601:                                              ; preds = %598
  %602 = fadd double 1.000000e+00, %600
  %603 = fdiv double %597, %602
  store double %603, ptr %58, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  store i8 0, ptr %59, align 1, !tbaa !11
  %604 = load double, ptr %56, align 8, !tbaa !15
  %605 = fpext double %604 to x86_fp80
  %606 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %605)
          to label %607 unwind label %626

607:                                              ; preds = %601
  br i1 %606, label %608, label %630

608:                                              ; preds = %607
  %609 = load double, ptr %57, align 8, !tbaa !15
  %610 = fpext double %609 to x86_fp80
  %611 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %610)
          to label %612 unwind label %626

612:                                              ; preds = %608
  br i1 %611, label %613, label %630

613:                                              ; preds = %612
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %662

614:                                              ; preds = %582, %568, %541
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  br label %615

615:                                              ; preds = %614, %537
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #7
  br label %616

616:                                              ; preds = %615, %533
  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 %617

617:                                              ; preds = %616, %529
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %690

618:                                              ; preds = %586
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %4, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, 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 %680

622:                                              ; preds = %598, %589
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %4, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %5, align 4
  br label %679

626:                                              ; preds = %665, %649, %635, %630, %608, %601
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %4, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %5, align 4
  br label %678

630:                                              ; preds = %612, %607
  %631 = load double, ptr %56, align 8, !tbaa !15
  %632 = fpext double %631 to x86_fp80
  %633 = invoke noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %632)
          to label %634 unwind label %626

634:                                              ; preds = %630
  br i1 %633, label %645, label %635

635:                                              ; preds = %634
  %636 = load double, ptr %56, align 8, !tbaa !15
  %637 = fpext double %636 to x86_fp80
  %638 = invoke noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %637)
          to label %639 unwind label %626

639:                                              ; preds = %635
  br i1 %638, label %640, label %645

640:                                              ; preds = %639
  %641 = load double, ptr %56, align 8, !tbaa !15
  %642 = load double, ptr %57, align 8, !tbaa !15
  %643 = fcmp oeq double %641, %642
  br i1 %643, label %644, label %645

644:                                              ; preds = %640
  store i8 1, ptr %59, align 1, !tbaa !11
  br label %661

645:                                              ; preds = %640, %639, %634
  %646 = load double, ptr %58, align 8, !tbaa !15
  %647 = fcmp olt double %646, 0x3D06849B86A12B9B
  br i1 %647, label %648, label %649

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

649:                                              ; preds = %645
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %650 unwind label %626

650:                                              ; preds = %649
  %651 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %652 = load double, ptr %56, align 8, !tbaa !15
  %653 = load double, ptr %57, align 8, !tbaa !15
  %654 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef %60, i32 noundef %651, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %652, double noundef %653, double noundef %654)
          to label %655 unwind label %656

655:                                              ; preds = %650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %660

656:                                              ; preds = %650
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %4, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %678

660:                                              ; preds = %655, %648
  br label %661

661:                                              ; preds = %660, %644
  br label %662

662:                                              ; preds = %661, %613
  %663 = load i8, ptr %59, align 1, !tbaa !11, !range !13, !noundef !14
  %664 = trunc i8 %663 to i1
  br i1 %664, label %665, label %675

665:                                              ; preds = %662
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %666 unwind label %626

666:                                              ; preds = %665
  %667 = load double, ptr %56, align 8, !tbaa !15
  %668 = load double, ptr %58, align 8, !tbaa !15
  %669 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef %61, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %667, double noundef %668, double noundef %669)
          to label %670 unwind label %671

670:                                              ; preds = %666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %675

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

675:                                              ; preds = %670, %662
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, 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
  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, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %676 unwind label %681

676:                                              ; preds = %675
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %62)
          to label %677 unwind label %685

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

678:                                              ; preds = %671, %656, %626
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  br label %679

679:                                              ; preds = %678, %622
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %680

680:                                              ; preds = %679, %618
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %690

681:                                              ; preds = %675
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %4, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %5, align 4
  br label %689

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

689:                                              ; preds = %685, %681
  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 %690

690:                                              ; preds = %689, %680, %617, %528, %442, %356, %270, %184, %98
  %691 = load ptr, ptr %4, align 8
  %692 = load i32, ptr %5, align 4
  %693 = insertvalue { ptr, i32 } poison, ptr %691, 0
  %694 = insertvalue { ptr, i32 } %693, i32 %692, 1
  resume { ptr, i32 } %694
}

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5atanhIdEENSt11conditionalIXsr3std11is_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 @atanh(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 [6 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1

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

33:                                               ; preds = %0
  invoke void @_Z11print_beginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %1)
          to label %34 unwind label %50

34:                                               ; preds = %33
  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
  %35 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %36 = add nsw i32 %35, 1
  store i32 %36, 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 %37 unwind label %53

37:                                               ; preds = %34
  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
  %38 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4) #7
  %39 = call noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4)
  %40 = fsub x86_fp80 %38, %39
  %41 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %40)
  %42 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %39)
  %43 = fadd x86_fp80 %42, 0xK3FFF8000000000000000
  %44 = fdiv x86_fp80 %41, %43
  %45 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %38)
  br i1 %45, label %46, label %57

46:                                               ; preds = %37
  %47 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %39)
  br i1 %47, label %69, label %57

48:                                               ; preds = %0
  %49 = landingpad { ptr, i32 }
          cleanup
  br label %52

50:                                               ; preds = %33
  %51 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #7
  br label %52

52:                                               ; preds = %50, %48
  %.pn = phi { ptr, i32 } [ %51, %50 ], [ %49, %48 ]
  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 %298

53:                                               ; preds = %34
  %54 = 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 %87

55:                                               ; preds = %69, %64
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %86

57:                                               ; preds = %46, %37
  %58 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %38)
  br i1 %58, label %63, label %59

59:                                               ; preds = %57
  %60 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %38)
  %61 = fcmp oeq x86_fp80 %38, %39
  %or.cond = and i1 %61, %60
  %62 = fcmp olt x86_fp80 %44, 0xK3FD0B424DC35095CD800
  %or.cond188 = or i1 %62, %or.cond
  br i1 %or.cond188, label %69, label %64

63:                                               ; preds = %57
  %.old = fcmp olt x86_fp80 %44, 0xK3FD0B424DC35095CD800
  br i1 %.old, label %69, label %64

64:                                               ; preds = %59, %63
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %65 unwind label %55

65:                                               ; preds = %64
  %66 = 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 %66, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %38, x86_fp80 noundef %39, x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4)
          to label %.critedge unwind label %67

67:                                               ; preds = %65
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %86

69:                                               ; preds = %46, %59, %63
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %70 unwind label %55

70:                                               ; preds = %69
  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 %38, x86_fp80 noundef %44, x86_fp80 noundef 0xKBFFEFD70A3D70A3D70A4)
          to label %.critedge unwind label %71

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

.critedge:                                        ; preds = %70, %65
  %.sink = phi ptr [ %5, %65 ], [ %6, %70 ]
  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
  %73 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %74 = add nsw i32 %73, 1
  store i32 %74, 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 %75 unwind label %88

75:                                               ; 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
  %76 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK00000000000000000000) #7
  %77 = call noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK00000000000000000000)
  %78 = fsub x86_fp80 %76, %77
  %79 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %78)
  %80 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %77)
  %81 = fadd x86_fp80 %80, 0xK3FFF8000000000000000
  %82 = fdiv x86_fp80 %79, %81
  %83 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %76)
  br i1 %83, label %84, label %92

84:                                               ; preds = %75
  %85 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %77)
  br i1 %85, label %104, label %92

86:                                               ; preds = %71, %67, %55
  %.pn146 = phi { ptr, i32 } [ %72, %71 ], [ %56, %55 ], [ %68, %67 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %87

87:                                               ; preds = %86, %53
  %.pn146.pn = phi { ptr, i32 } [ %.pn146, %86 ], [ %54, %53 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %298

88:                                               ; preds = %.critedge
  %89 = 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 %122

90:                                               ; preds = %104, %99
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %121

92:                                               ; preds = %84, %75
  %93 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %76)
  br i1 %93, label %98, label %94

94:                                               ; preds = %92
  %95 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %76)
  %96 = fcmp oeq x86_fp80 %76, %77
  %or.cond170 = and i1 %96, %95
  %97 = fcmp olt x86_fp80 %82, 0xK3FD0B424DC35095CD800
  %or.cond190 = or i1 %97, %or.cond170
  br i1 %or.cond190, label %104, label %99

98:                                               ; preds = %92
  %.old189 = fcmp olt x86_fp80 %82, 0xK3FD0B424DC35095CD800
  br i1 %.old189, label %104, label %99

99:                                               ; preds = %94, %98
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %100 unwind label %90

100:                                              ; preds = %99
  %101 = 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 %101, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %76, x86_fp80 noundef %77, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge172 unwind label %102

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

104:                                              ; preds = %84, %94, %98
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %105 unwind label %90

105:                                              ; preds = %104
  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 %76, x86_fp80 noundef %82, x86_fp80 noundef 0xK00000000000000000000)
          to label %.critedge172 unwind label %106

106:                                              ; preds = %105
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %121

.critedge172:                                     ; preds = %105, %100
  %.sink201 = phi ptr [ %9, %100 ], [ %10, %105 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink201) #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
  %108 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %109 = add nsw i32 %108, 1
  store i32 %109, 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 %110 unwind label %123

110:                                              ; preds = %.critedge172
  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
  %111 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FF583126E978D4FDF3B) #7
  %112 = call noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
  %113 = fsub x86_fp80 %111, %112
  %114 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %113)
  %115 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %112)
  %116 = fadd x86_fp80 %115, 0xK3FFF8000000000000000
  %117 = fdiv x86_fp80 %114, %116
  %118 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %111)
  br i1 %118, label %119, label %127

119:                                              ; preds = %110
  %120 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %112)
  br i1 %120, label %139, label %127

121:                                              ; preds = %106, %102, %90
  %.pn149 = phi { ptr, i32 } [ %107, %106 ], [ %91, %90 ], [ %103, %102 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %122

122:                                              ; preds = %121, %88
  %.pn149.pn = phi { ptr, i32 } [ %.pn149, %121 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %298

123:                                              ; preds = %.critedge172
  %124 = 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 %157

125:                                              ; preds = %139, %134
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %156

127:                                              ; preds = %119, %110
  %128 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %111)
  br i1 %128, label %133, label %129

129:                                              ; preds = %127
  %130 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %111)
  %131 = fcmp oeq x86_fp80 %111, %112
  %or.cond173 = and i1 %131, %130
  %132 = fcmp olt x86_fp80 %117, 0xK3FD0B424DC35095CD800
  %or.cond192 = or i1 %132, %or.cond173
  br i1 %or.cond192, label %139, label %134

133:                                              ; preds = %127
  %.old191 = fcmp olt x86_fp80 %117, 0xK3FD0B424DC35095CD800
  br i1 %.old191, label %139, label %134

134:                                              ; preds = %129, %133
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %135 unwind label %125

135:                                              ; preds = %134
  %136 = 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 %136, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %111, x86_fp80 noundef %112, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %.critedge175 unwind label %137

137:                                              ; preds = %135
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %156

139:                                              ; preds = %119, %129, %133
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %140 unwind label %125

140:                                              ; preds = %139
  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 %111, x86_fp80 noundef %117, x86_fp80 noundef 0xK3FF583126E978D4FDF3B)
          to label %.critedge175 unwind label %141

141:                                              ; preds = %140
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %156

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

145:                                              ; preds = %.critedge175
  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
  %146 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8000000000000000) #7
  %147 = call noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK3FFF8000000000000000)
  %148 = fsub x86_fp80 %146, %147
  %149 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %148)
  %150 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %147)
  %151 = fadd x86_fp80 %150, 0xK3FFF8000000000000000
  %152 = fdiv x86_fp80 %149, %151
  %153 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %146)
  br i1 %153, label %154, label %162

154:                                              ; preds = %145
  %155 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %147)
  br i1 %155, label %174, label %162

156:                                              ; preds = %141, %137, %125
  %.pn152 = phi { ptr, i32 } [ %142, %141 ], [ %126, %125 ], [ %138, %137 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %157

157:                                              ; preds = %156, %123
  %.pn152.pn = phi { ptr, i32 } [ %.pn152, %156 ], [ %124, %123 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  br label %298

158:                                              ; preds = %.critedge175
  %159 = 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 %192

160:                                              ; preds = %174, %169
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %191

162:                                              ; preds = %154, %145
  %163 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %146)
  br i1 %163, label %168, label %164

164:                                              ; preds = %162
  %165 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %146)
  %166 = fcmp oeq x86_fp80 %146, %147
  %or.cond176 = and i1 %166, %165
  %167 = fcmp olt x86_fp80 %152, 0xK3FD0B424DC35095CD800
  %or.cond194 = or i1 %167, %or.cond176
  br i1 %or.cond194, label %174, label %169

168:                                              ; preds = %162
  %.old193 = fcmp olt x86_fp80 %152, 0xK3FD0B424DC35095CD800
  br i1 %.old193, label %174, label %169

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

170:                                              ; preds = %169
  %171 = 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 %171, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %146, x86_fp80 noundef %147, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %.critedge178 unwind label %172

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

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

175:                                              ; preds = %174
  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 %146, x86_fp80 noundef %152, x86_fp80 noundef 0xK3FFF8000000000000000)
          to label %.critedge178 unwind label %176

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

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

180:                                              ; preds = %.critedge178
  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
  %181 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xKBFFF8000000000000000) #7
  %182 = call noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xKBFFF8000000000000000)
  %183 = fsub x86_fp80 %181, %182
  %184 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %183)
  %185 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %182)
  %186 = fadd x86_fp80 %185, 0xK3FFF8000000000000000
  %187 = fdiv x86_fp80 %184, %186
  %188 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %181)
  br i1 %188, label %189, label %197

189:                                              ; preds = %180
  %190 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %182)
  br i1 %190, label %209, label %197

191:                                              ; preds = %176, %172, %160
  %.pn155 = phi { ptr, i32 } [ %177, %176 ], [ %161, %160 ], [ %173, %172 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %192

192:                                              ; preds = %191, %158
  %.pn155.pn = phi { ptr, i32 } [ %.pn155, %191 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %298

193:                                              ; preds = %.critedge178
  %194 = 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 %227

195:                                              ; preds = %209, %204
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %226

197:                                              ; preds = %189, %180
  %198 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %181)
  br i1 %198, label %203, label %199

199:                                              ; preds = %197
  %200 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %181)
  %201 = fcmp oeq x86_fp80 %181, %182
  %or.cond179 = and i1 %201, %200
  %202 = fcmp olt x86_fp80 %187, 0xK3FD0B424DC35095CD800
  %or.cond196 = or i1 %202, %or.cond179
  br i1 %or.cond196, label %209, label %204

203:                                              ; preds = %197
  %.old195 = fcmp olt x86_fp80 %187, 0xK3FD0B424DC35095CD800
  br i1 %.old195, label %209, label %204

204:                                              ; preds = %199, %203
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %205 unwind label %195

205:                                              ; preds = %204
  %206 = 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 %206, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %181, x86_fp80 noundef %182, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %.critedge181 unwind label %207

207:                                              ; preds = %205
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %226

209:                                              ; preds = %189, %199, %203
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %210 unwind label %195

210:                                              ; preds = %209
  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 %181, x86_fp80 noundef %187, x86_fp80 noundef 0xKBFFF8000000000000000)
          to label %.critedge181 unwind label %211

211:                                              ; preds = %210
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %226

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

215:                                              ; preds = %.critedge181
  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
  %216 = call noundef x86_fp80 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD) #7
  %217 = call noundef x86_fp80 @_ZSt5atanhe(x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD)
  %218 = fsub x86_fp80 %216, %217
  %219 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %218)
  %220 = call noundef x86_fp80 @_ZSt3abse(x86_fp80 noundef %217)
  %221 = fadd x86_fp80 %220, 0xK3FFF8000000000000000
  %222 = fdiv x86_fp80 %219, %221
  %223 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %216)
  br i1 %223, label %224, label %232

224:                                              ; preds = %215
  %225 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %217)
  br i1 %225, label %244, label %232

226:                                              ; preds = %211, %207, %195
  %.pn158 = phi { ptr, i32 } [ %212, %211 ], [ %196, %195 ], [ %208, %207 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %227

227:                                              ; preds = %226, %193
  %.pn158.pn = phi { ptr, i32 } [ %.pn158, %226 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %298

228:                                              ; preds = %.critedge181
  %229 = 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 %266

230:                                              ; preds = %244, %239
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %265

232:                                              ; preds = %224, %215
  %233 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %216)
  br i1 %233, label %238, label %234

234:                                              ; preds = %232
  %235 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %216)
  %236 = fcmp oeq x86_fp80 %216, %217
  %or.cond182 = and i1 %236, %235
  %237 = fcmp olt x86_fp80 %222, 0xK3FD0B424DC35095CD800
  %or.cond198 = or i1 %237, %or.cond182
  br i1 %or.cond198, label %244, label %239

238:                                              ; preds = %232
  %.old197 = fcmp olt x86_fp80 %222, 0xK3FD0B424DC35095CD800
  br i1 %.old197, label %244, label %239

239:                                              ; preds = %234, %238
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %240 unwind label %230

240:                                              ; preds = %239
  %241 = 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 %241, i32 noundef 3, i32 noundef 3, i32 noundef 18, x86_fp80 noundef %216, x86_fp80 noundef %217, x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD)
          to label %.critedge184 unwind label %242

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

244:                                              ; preds = %224, %234, %238
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %245 unwind label %230

245:                                              ; preds = %244
  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 %216, x86_fp80 noundef %222, x86_fp80 noundef 0xK3FFF8CCCCCCCCCCCCCCD)
          to label %.critedge184 unwind label %246

246:                                              ; preds = %245
  %247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %265

.critedge184:                                     ; preds = %245, %240
  %.sink205 = phi ptr [ %25, %240 ], [ %26, %245 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink205) #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
  %248 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, 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 %250 unwind label %267

250:                                              ; preds = %.critedge184
  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
  %251 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %252 = call noundef double @_ZN4gcem5atanhIdEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(double noundef %251) #7
  %253 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  %254 = call double @atanh(double noundef %253) #7
  %255 = fsub double %252, %254
  %256 = call noundef double @_ZSt3absd(double noundef %255)
  %257 = call noundef double @_ZSt3absd(double noundef %254)
  %258 = fadd double %257, 1.000000e+00
  %259 = fdiv double %256, %258
  %260 = fpext double %252 to x86_fp80
  %261 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %260)
  br i1 %261, label %262, label %271

262:                                              ; preds = %250
  %263 = fpext double %254 to x86_fp80
  %264 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %263)
  br i1 %264, label %284, label %271

265:                                              ; preds = %246, %242, %230
  %.pn161 = phi { ptr, i32 } [ %247, %246 ], [ %231, %230 ], [ %243, %242 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %266

266:                                              ; preds = %265, %228
  %.pn161.pn = phi { ptr, i32 } [ %.pn161, %265 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %298

267:                                              ; preds = %.critedge184
  %268 = 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 %292

269:                                              ; preds = %284, %278
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %291

271:                                              ; preds = %262, %250
  %272 = call noundef zeroext i1 @_ZSt5isnane(x86_fp80 noundef %260)
  br i1 %272, label %277, label %273

273:                                              ; preds = %271
  %274 = call noundef zeroext i1 @_ZSt5isinfe(x86_fp80 noundef %260)
  %275 = fcmp oeq double %252, %254
  %or.cond185 = and i1 %275, %274
  %276 = fcmp olt double %259, 0x3D06849B86A12B9B
  %or.cond200 = or i1 %276, %or.cond185
  br i1 %or.cond200, label %284, label %278

277:                                              ; preds = %271
  %.old199 = fcmp olt double %259, 0x3D06849B86A12B9B
  br i1 %.old199, label %284, label %278

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

279:                                              ; preds = %278
  %280 = load i32, ptr @GCEM_TEST_NUMBER, align 4, !tbaa !5
  %281 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_failIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiiT_T0_T1_(ptr noundef nonnull %29, i32 noundef %280, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %252, double noundef %254, double noundef %281)
          to label %.critedge187 unwind label %282

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

284:                                              ; preds = %262, %273, %277
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %285 unwind label %269

285:                                              ; preds = %284
  %286 = call noundef double @_ZNSt14numeric_limitsIdE9quiet_NaNEv() #7
  invoke void @_Z15print_test_passIdddEvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiiT_T0_T1_(ptr noundef nonnull %30, i32 noundef 3, i32 noundef 3, i32 noundef 18, double noundef %252, double noundef %259, double noundef %286)
          to label %.critedge187 unwind label %287

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

.critedge187:                                     ; preds = %285, %279
  %.sink206 = phi ptr [ %29, %279 ], [ %30, %285 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink206) #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
  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, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %289 unwind label %293

289:                                              ; preds = %.critedge187
  invoke void @_Z11print_finalNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %31)
          to label %290 unwind label %295

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

291:                                              ; preds = %287, %282, %269
  %.pn164 = phi { ptr, i32 } [ %288, %287 ], [ %270, %269 ], [ %283, %282 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %292

292:                                              ; preds = %291, %267
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %291 ], [ %268, %267 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %298

293:                                              ; preds = %.critedge187
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %297

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

297:                                              ; preds = %295, %293
  %.pn167 = phi { ptr, i32 } [ %296, %295 ], [ %294, %293 ]
  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 %298

298:                                              ; preds = %297, %292, %266, %227, %192, %157, %122, %87, %52
  %.pn167.pn = phi { ptr, i32 } [ %.pn167, %297 ], [ %.pn164.pn, %292 ], [ %.pn161.pn, %266 ], [ %.pn158.pn, %227 ], [ %.pn155.pn, %192 ], [ %.pn152.pn, %157 ], [ %.pn149.pn, %122 ], [ %.pn146.pn, %87 ], [ %.pn, %52 ]
  resume { ptr, i32 } %.pn167.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 @_ZN4gcem5atanhIeEENSt11conditionalIXsr3std11is_integralIT_EE5valueEdS2_E4typeES2_(x86_fp80 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4gcem5atanhIdEENSt11conditionalIXsr3std11is_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 @atanh(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