; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/polygon/polygon.ll (ZN8Triangle14setShapeFactorEd)

; 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.7" = type { i8 }
%class.VoidElem = type { %class.ElemModel, double, double, double, double }
%class.ElemModel = type { ptr, double, double, ptr, ptr, double, ptr, i8, i8, i8, i8, i32, double, double, double, double, double, double, double, %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair" = type { double, double }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__._ZN8Triangle14setShapeFactorEd = external hidden unnamed_addr constant [15 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [26 x i8], align 1

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #1

; 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 uwtable
declare dso_local void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #4

; 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 nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8Triangle13setHalfAnglesEv(ptr noundef nonnull align 8 dereferenceable(248)) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8Triangle14setShapeFactorEd(ptr noundef nonnull align 8 dereferenceable(248) %0, double noundef %1) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca double, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca i1, align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca i1, align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca i1, align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i1, align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i1, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::allocator.7", align 1
  %19 = alloca i1, align 1
  %20 = alloca i1, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i1, align 1
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca i1, align 1
  %27 = alloca %"class.std::allocator.7", align 1
  %28 = alloca i1, align 1
  %29 = alloca i1, align 1
  %30 = alloca i1, align 1
  %31 = alloca i1, align 1
  %32 = alloca i1, align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca i1, align 1
  %35 = alloca %"class.std::allocator.7", align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i1, align 1
  %43 = alloca i32, align 4
  %44 = alloca i1, align 1
  %45 = alloca i1, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca i1, align 1
  %49 = alloca %"class.std::allocator.7", align 1
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca i1, align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::allocator.7", align 1
  %56 = alloca i1, align 1
  %57 = alloca i1, align 1
  %58 = alloca i1, align 1
  %59 = alloca i1, align 1
  %60 = alloca double, align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca i1, align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca i1, align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca i1, align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca i1, align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca i1, align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca i1, align 1
  %74 = alloca %"class.std::allocator.7", align 1
  %75 = alloca i1, align 1
  %76 = alloca i1, align 1
  %77 = alloca i1, align 1
  %78 = alloca i1, align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca i1, align 1
  %81 = alloca %"class.std::allocator.7", align 1
  %82 = alloca i1, align 1
  %83 = alloca i1, align 1
  %84 = alloca i1, align 1
  %85 = alloca i1, align 1
  %86 = alloca i1, align 1
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca i1, align 1
  %89 = alloca %"class.std::allocator.7", align 1
  %90 = alloca i1, align 1
  %91 = alloca i1, align 1
  %92 = alloca i1, align 1
  %93 = alloca i1, align 1
  %94 = alloca i1, align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca i1, align 1
  %97 = alloca i32, align 4
  %98 = alloca i1, align 1
  %99 = alloca i1, align 1
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca i1, align 1
  %103 = alloca %"class.std::allocator.7", align 1
  %104 = alloca i1, align 1
  %105 = alloca i1, align 1
  %106 = alloca i1, align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca i1, align 1
  %109 = alloca %"class.std::allocator.7", align 1
  %110 = alloca i1, align 1
  %111 = alloca i1, align 1
  %112 = alloca i1, align 1
  %113 = alloca i1, align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  store double %1, ptr %4, align 8, !tbaa !9
  %114 = load ptr, ptr %3, align 8
  %115 = load double, ptr %4, align 8, !tbaa !9
  %116 = call double @sqrt(double noundef 3.000000e+00) #6
  %117 = fdiv double %116, 3.600000e+01
  %118 = fcmp ole double %115, %117
  store i1 false, ptr %7, align 1
  store i1 false, ptr %9, align 1
  store i1 false, ptr %11, align 1
  store i1 false, ptr %13, align 1
  store i1 false, ptr %15, align 1
  store i1 false, ptr %17, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %20, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %24, align 1
  store i1 false, ptr %26, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %42, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #6
  store i1 false, ptr %44, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %48, align 1
  store i1 false, ptr %50, align 1
  store i1 false, ptr %51, align 1
  store i1 false, ptr %52, align 1
  store i1 false, ptr %54, align 1
  store i1 false, ptr %56, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %59, align 1
  br i1 %118, label %135, label %119

119:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #6
  store i1 true, ptr %7, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #6
  store i1 true, ptr %9, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #6
  store i1 true, ptr %11, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #6
  store i1 true, ptr %13, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #6
  store i1 true, ptr %15, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #6
  store i1 true, ptr %19, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  store i1 true, ptr %20, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %120 unwind label %375

120:                                              ; preds = %119
  store i1 true, ptr %23, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.1)
          to label %121 unwind label %379

121:                                              ; preds = %120
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #6
  store i1 true, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #6
  store i1 true, ptr %28, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  store i1 true, ptr %29, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @__FUNCTION__._ZN8Triangle14setShapeFactorEd, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %122 unwind label %383

122:                                              ; preds = %121
  store i1 true, ptr %30, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %123 unwind label %387

123:                                              ; preds = %122
  store i1 true, ptr %31, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.2)
          to label %124 unwind label %391

124:                                              ; preds = %123
  store i1 true, ptr %32, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #6
  store i1 true, ptr %34, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #6
  store i1 true, ptr %36, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  store i1 true, ptr %37, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %125 unwind label %395

125:                                              ; preds = %124
  store i1 true, ptr %38, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %126 unwind label %399

126:                                              ; preds = %125
  store i1 true, ptr %39, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.4)
          to label %127 unwind label %403

127:                                              ; preds = %126
  store i1 true, ptr %40, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #6
  store i1 true, ptr %42, align 1
  store i32 174, ptr %43, align 4, !tbaa !11
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %128 unwind label %407

128:                                              ; preds = %127
  store i1 true, ptr %44, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %129 unwind label %411

129:                                              ; preds = %128
  store i1 true, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #6
  store i1 true, ptr %48, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #6
  store i1 true, ptr %50, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  store i1 true, ptr %51, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %130 unwind label %415

130:                                              ; preds = %129
  store i1 true, ptr %52, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #6
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #6
  store i1 true, ptr %56, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  store i1 true, ptr %57, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %131 unwind label %419

131:                                              ; preds = %130
  store i1 true, ptr %58, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %132 unwind label %423

132:                                              ; preds = %131
  store i1 true, ptr %59, align 1
  %133 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %5, ptr noundef %46, i32 noundef 0)
          to label %134 unwind label %427

134:                                              ; preds = %132
  br label %135

135:                                              ; preds = %134, %2
  %136 = phi i1 [ true, %2 ], [ %133, %134 ]
  %137 = xor i1 %136, true
  %138 = load i1, ptr %59, align 1
  br i1 %138, label %139, label %140

139:                                              ; preds = %135
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %140

140:                                              ; preds = %139, %135
  %141 = load i1, ptr %58, align 1
  br i1 %141, label %142, label %143

142:                                              ; preds = %140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %143

143:                                              ; preds = %142, %140
  %144 = load i1, ptr %57, align 1
  br i1 %144, label %145, label %146

145:                                              ; preds = %143
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  br label %146

146:                                              ; preds = %145, %143
  %147 = load i1, ptr %56, align 1
  br i1 %147, label %148, label %149

148:                                              ; preds = %146
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  br label %149

149:                                              ; preds = %148, %146
  %150 = load i1, ptr %54, align 1
  br i1 %150, label %151, label %152

151:                                              ; preds = %149
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %152

152:                                              ; preds = %151, %149
  %153 = load i1, ptr %52, align 1
  br i1 %153, label %154, label %155

154:                                              ; preds = %152
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %155

155:                                              ; preds = %154, %152
  %156 = load i1, ptr %51, align 1
  br i1 %156, label %157, label %158

157:                                              ; preds = %155
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  br label %158

158:                                              ; preds = %157, %155
  %159 = load i1, ptr %50, align 1
  br i1 %159, label %160, label %161

160:                                              ; preds = %158
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #6
  br label %161

161:                                              ; preds = %160, %158
  %162 = load i1, ptr %48, align 1
  br i1 %162, label %163, label %164

163:                                              ; preds = %161
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  br label %164

164:                                              ; preds = %163, %161
  %165 = load i1, ptr %45, align 1
  br i1 %165, label %166, label %167

166:                                              ; preds = %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %167

167:                                              ; preds = %166, %164
  %168 = load i1, ptr %44, align 1
  br i1 %168, label %169, label %170

169:                                              ; preds = %167
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %170

170:                                              ; preds = %169, %167
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  %171 = load i1, ptr %42, align 1
  br i1 %171, label %172, label %173

172:                                              ; preds = %170
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  br label %173

173:                                              ; preds = %172, %170
  %174 = load i1, ptr %40, align 1
  br i1 %174, label %175, label %176

175:                                              ; preds = %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %176

176:                                              ; preds = %175, %173
  %177 = load i1, ptr %39, align 1
  br i1 %177, label %178, label %179

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

179:                                              ; preds = %178, %176
  %180 = load i1, ptr %38, align 1
  br i1 %180, label %181, label %182

181:                                              ; preds = %179
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %182

182:                                              ; preds = %181, %179
  %183 = load i1, ptr %37, align 1
  br i1 %183, label %184, label %185

184:                                              ; preds = %182
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  br label %185

185:                                              ; preds = %184, %182
  %186 = load i1, ptr %36, align 1
  br i1 %186, label %187, label %188

187:                                              ; preds = %185
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #6
  br label %188

188:                                              ; preds = %187, %185
  %189 = load i1, ptr %34, align 1
  br i1 %189, label %190, label %191

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

191:                                              ; preds = %190, %188
  %192 = load i1, ptr %32, align 1
  br i1 %192, label %193, label %194

193:                                              ; preds = %191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %194

194:                                              ; preds = %193, %191
  %195 = load i1, ptr %31, align 1
  br i1 %195, label %196, label %197

196:                                              ; preds = %194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %197

197:                                              ; preds = %196, %194
  %198 = load i1, ptr %30, align 1
  br i1 %198, label %199, label %200

199:                                              ; preds = %197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %200

200:                                              ; preds = %199, %197
  %201 = load i1, ptr %29, align 1
  br i1 %201, label %202, label %203

202:                                              ; preds = %200
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  br label %203

203:                                              ; preds = %202, %200
  %204 = load i1, ptr %28, align 1
  br i1 %204, label %205, label %206

205:                                              ; preds = %203
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #6
  br label %206

206:                                              ; preds = %205, %203
  %207 = load i1, ptr %26, align 1
  br i1 %207, label %208, label %209

208:                                              ; preds = %206
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  br label %209

209:                                              ; preds = %208, %206
  %210 = load i1, ptr %24, align 1
  br i1 %210, label %211, label %212

211:                                              ; preds = %209
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %212

212:                                              ; preds = %211, %209
  %213 = load i1, ptr %23, align 1
  br i1 %213, label %214, label %215

214:                                              ; preds = %212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %215

215:                                              ; preds = %214, %212
  %216 = load i1, ptr %20, align 1
  br i1 %216, label %217, label %218

217:                                              ; preds = %215
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  br label %218

218:                                              ; preds = %217, %215
  %219 = load i1, ptr %19, align 1
  br i1 %219, label %220, label %221

220:                                              ; preds = %218
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #6
  br label %221

221:                                              ; preds = %220, %218
  %222 = load i1, ptr %17, align 1
  br i1 %222, label %223, label %224

223:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %224

224:                                              ; preds = %223, %221
  %225 = load i1, ptr %15, align 1
  br i1 %225, label %226, label %227

226:                                              ; preds = %224
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %227

227:                                              ; preds = %226, %224
  %228 = load i1, ptr %13, align 1
  br i1 %228, label %229, label %230

229:                                              ; preds = %227
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  br label %230

230:                                              ; preds = %229, %227
  %231 = load i1, ptr %11, align 1
  br i1 %231, label %232, label %233

232:                                              ; preds = %230
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  br label %233

233:                                              ; preds = %232, %230
  %234 = load i1, ptr %9, align 1
  br i1 %234, label %235, label %236

235:                                              ; preds = %233
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #6
  br label %236

236:                                              ; preds = %235, %233
  %237 = load i1, ptr %7, align 1
  br i1 %237, label %238, label %239

238:                                              ; preds = %236
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  br label %239

239:                                              ; preds = %238, %236
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  store double 0x3EB0C6F7A0B5ED8D, ptr %60, align 8, !tbaa !9
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %60)
  %241 = load double, ptr %240, align 8, !tbaa !9
  %242 = getelementptr inbounds %class.VoidElem, ptr %114, i32 0, i32 1
  store double %241, ptr %242, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  %243 = getelementptr inbounds %class.ElemModel, ptr %114, i32 0, i32 5
  %244 = load double, ptr %243, align 8, !tbaa !18
  %245 = call double @pow(double noundef %244, double noundef 2.000000e+00) #6
  %246 = getelementptr inbounds %class.VoidElem, ptr %114, i32 0, i32 1
  %247 = load double, ptr %246, align 8, !tbaa !13
  %248 = fmul double 4.000000e+00, %247
  %249 = fdiv double %245, %248
  %250 = getelementptr inbounds %class.ElemModel, ptr %114, i32 0, i32 13
  store double %249, ptr %250, align 8, !tbaa !19
  %251 = getelementptr inbounds %class.ElemModel, ptr %114, i32 0, i32 13
  %252 = load double, ptr %251, align 8, !tbaa !19
  %253 = fcmp ogt double %252, 0.000000e+00
  store i1 false, ptr %63, align 1
  store i1 false, ptr %65, align 1
  store i1 false, ptr %67, align 1
  store i1 false, ptr %69, align 1
  store i1 false, ptr %71, align 1
  store i1 false, ptr %73, align 1
  store i1 false, ptr %75, align 1
  store i1 false, ptr %76, align 1
  store i1 false, ptr %77, align 1
  store i1 false, ptr %78, align 1
  store i1 false, ptr %80, align 1
  store i1 false, ptr %82, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %86, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %91, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %96, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #6
  store i1 false, ptr %98, align 1
  store i1 false, ptr %99, align 1
  store i1 false, ptr %102, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %105, align 1
  store i1 false, ptr %106, align 1
  store i1 false, ptr %108, align 1
  store i1 false, ptr %110, align 1
  store i1 false, ptr %111, align 1
  store i1 false, ptr %112, align 1
  store i1 false, ptr %113, align 1
  br i1 %253, label %270, label %254

254:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #6
  store i1 true, ptr %63, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #6
  store i1 true, ptr %65, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #6
  store i1 true, ptr %67, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #6
  store i1 true, ptr %69, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #6
  store i1 true, ptr %71, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #6
  store i1 true, ptr %73, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #6
  store i1 true, ptr %75, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  store i1 true, ptr %76, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %255 unwind label %546

255:                                              ; preds = %254
  store i1 true, ptr %77, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.1)
          to label %256 unwind label %550

256:                                              ; preds = %255
  store i1 true, ptr %78, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #6
  store i1 true, ptr %80, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #6
  store i1 true, ptr %82, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #6
  store i1 true, ptr %83, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @__FUNCTION__._ZN8Triangle14setShapeFactorEd, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %257 unwind label %554

257:                                              ; preds = %256
  store i1 true, ptr %84, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %258 unwind label %558

258:                                              ; preds = %257
  store i1 true, ptr %85, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.2)
          to label %259 unwind label %562

259:                                              ; preds = %258
  store i1 true, ptr %86, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #6
  store i1 true, ptr %88, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #6
  store i1 true, ptr %90, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #6
  store i1 true, ptr %91, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %260 unwind label %566

260:                                              ; preds = %259
  store i1 true, ptr %92, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %261 unwind label %570

261:                                              ; preds = %260
  store i1 true, ptr %93, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.4)
          to label %262 unwind label %574

262:                                              ; preds = %261
  store i1 true, ptr %94, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #6
  store i1 true, ptr %96, align 1
  store i32 177, ptr %97, align 4, !tbaa !11
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 4 dereferenceable(4) %97)
          to label %263 unwind label %578

263:                                              ; preds = %262
  store i1 true, ptr %98, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %264 unwind label %582

264:                                              ; preds = %263
  store i1 true, ptr %99, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #6
  store i1 true, ptr %102, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #6
  store i1 true, ptr %104, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  store i1 true, ptr %105, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %265 unwind label %586

265:                                              ; preds = %264
  store i1 true, ptr %106, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #6
  store i1 true, ptr %108, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #6
  store i1 true, ptr %110, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  store i1 true, ptr %111, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %266 unwind label %590

266:                                              ; preds = %265
  store i1 true, ptr %112, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %267 unwind label %594

267:                                              ; preds = %266
  store i1 true, ptr %113, align 1
  %268 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %61, ptr noundef %100, i32 noundef 0)
          to label %269 unwind label %598

269:                                              ; preds = %267
  br label %270

270:                                              ; preds = %269, %239
  %271 = phi i1 [ true, %239 ], [ %268, %269 ]
  %272 = xor i1 %271, true
  %273 = load i1, ptr %113, align 1
  br i1 %273, label %274, label %275

274:                                              ; preds = %270
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  br label %275

275:                                              ; preds = %274, %270
  %276 = load i1, ptr %112, align 1
  br i1 %276, label %277, label %278

277:                                              ; preds = %275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %278

278:                                              ; preds = %277, %275
  %279 = load i1, ptr %111, align 1
  br i1 %279, label %280, label %281

280:                                              ; preds = %278
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  br label %281

281:                                              ; preds = %280, %278
  %282 = load i1, ptr %110, align 1
  br i1 %282, label %283, label %284

283:                                              ; preds = %281
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #6
  br label %284

284:                                              ; preds = %283, %281
  %285 = load i1, ptr %108, align 1
  br i1 %285, label %286, label %287

286:                                              ; preds = %284
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  br label %287

287:                                              ; preds = %286, %284
  %288 = load i1, ptr %106, align 1
  br i1 %288, label %289, label %290

289:                                              ; preds = %287
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %290

290:                                              ; preds = %289, %287
  %291 = load i1, ptr %105, align 1
  br i1 %291, label %292, label %293

292:                                              ; preds = %290
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  br label %293

293:                                              ; preds = %292, %290
  %294 = load i1, ptr %104, align 1
  br i1 %294, label %295, label %296

295:                                              ; preds = %293
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #6
  br label %296

296:                                              ; preds = %295, %293
  %297 = load i1, ptr %102, align 1
  br i1 %297, label %298, label %299

298:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  br label %299

299:                                              ; preds = %298, %296
  %300 = load i1, ptr %99, align 1
  br i1 %300, label %301, label %302

301:                                              ; preds = %299
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %302

302:                                              ; preds = %301, %299
  %303 = load i1, ptr %98, align 1
  br i1 %303, label %304, label %305

304:                                              ; preds = %302
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %305

305:                                              ; preds = %304, %302
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #6
  %306 = load i1, ptr %96, align 1
  br i1 %306, label %307, label %308

307:                                              ; preds = %305
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #6
  br label %308

308:                                              ; preds = %307, %305
  %309 = load i1, ptr %94, align 1
  br i1 %309, label %310, label %311

310:                                              ; preds = %308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %311

311:                                              ; preds = %310, %308
  %312 = load i1, ptr %93, align 1
  br i1 %312, label %313, label %314

313:                                              ; preds = %311
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %314

314:                                              ; preds = %313, %311
  %315 = load i1, ptr %92, align 1
  br i1 %315, label %316, label %317

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

317:                                              ; preds = %316, %314
  %318 = load i1, ptr %91, align 1
  br i1 %318, label %319, label %320

319:                                              ; preds = %317
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #6
  br label %320

320:                                              ; preds = %319, %317
  %321 = load i1, ptr %90, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %320
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #6
  br label %323

323:                                              ; preds = %322, %320
  %324 = load i1, ptr %88, align 1
  br i1 %324, label %325, label %326

325:                                              ; preds = %323
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #6
  br label %326

326:                                              ; preds = %325, %323
  %327 = load i1, ptr %86, align 1
  br i1 %327, label %328, label %329

328:                                              ; preds = %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %329

329:                                              ; preds = %328, %326
  %330 = load i1, ptr %85, align 1
  br i1 %330, label %331, label %332

331:                                              ; preds = %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %332

332:                                              ; preds = %331, %329
  %333 = load i1, ptr %84, align 1
  br i1 %333, label %334, label %335

334:                                              ; preds = %332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %335

335:                                              ; preds = %334, %332
  %336 = load i1, ptr %83, align 1
  br i1 %336, label %337, label %338

337:                                              ; preds = %335
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #6
  br label %338

338:                                              ; preds = %337, %335
  %339 = load i1, ptr %82, align 1
  br i1 %339, label %340, label %341

340:                                              ; preds = %338
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #6
  br label %341

341:                                              ; preds = %340, %338
  %342 = load i1, ptr %80, align 1
  br i1 %342, label %343, label %344

343:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  br label %344

344:                                              ; preds = %343, %341
  %345 = load i1, ptr %78, align 1
  br i1 %345, label %346, label %347

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

347:                                              ; preds = %346, %344
  %348 = load i1, ptr %77, align 1
  br i1 %348, label %349, label %350

349:                                              ; preds = %347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %350

350:                                              ; preds = %349, %347
  %351 = load i1, ptr %76, align 1
  br i1 %351, label %352, label %353

352:                                              ; preds = %350
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  br label %353

353:                                              ; preds = %352, %350
  %354 = load i1, ptr %75, align 1
  br i1 %354, label %355, label %356

355:                                              ; preds = %353
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #6
  br label %356

356:                                              ; preds = %355, %353
  %357 = load i1, ptr %73, align 1
  br i1 %357, label %358, label %359

358:                                              ; preds = %356
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #6
  br label %359

359:                                              ; preds = %358, %356
  %360 = load i1, ptr %71, align 1
  br i1 %360, label %361, label %362

361:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  br label %362

362:                                              ; preds = %361, %359
  %363 = load i1, ptr %69, align 1
  br i1 %363, label %364, label %365

364:                                              ; preds = %362
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  br label %365

365:                                              ; preds = %364, %362
  %366 = load i1, ptr %67, align 1
  br i1 %366, label %367, label %368

367:                                              ; preds = %365
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  br label %368

368:                                              ; preds = %367, %365
  %369 = load i1, ptr %65, align 1
  br i1 %369, label %370, label %371

370:                                              ; preds = %368
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  br label %371

371:                                              ; preds = %370, %368
  %372 = load i1, ptr %63, align 1
  br i1 %372, label %373, label %374

373:                                              ; preds = %371
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %374

374:                                              ; preds = %373, %371
  call void @_ZN8Triangle13setHalfAnglesEv(ptr noundef nonnull align 8 dereferenceable(248) %114)
  ret void

375:                                              ; preds = %119
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %21, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %22, align 4
  br label %521

379:                                              ; preds = %120
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %21, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %22, align 4
  br label %517

383:                                              ; preds = %121
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %21, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %22, align 4
  br label %504

387:                                              ; preds = %122
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %21, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %22, align 4
  br label %500

391:                                              ; preds = %123
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %21, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %22, align 4
  br label %496

395:                                              ; preds = %124
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %21, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %22, align 4
  br label %483

399:                                              ; preds = %125
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %21, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %22, align 4
  br label %479

403:                                              ; preds = %126
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %21, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %22, align 4
  br label %475

407:                                              ; preds = %127
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %21, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %22, align 4
  br label %468

411:                                              ; preds = %128
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %21, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %22, align 4
  br label %464

415:                                              ; preds = %129
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %21, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %22, align 4
  br label %451

419:                                              ; preds = %130
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %21, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %22, align 4
  br label %438

423:                                              ; preds = %131
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %21, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %22, align 4
  br label %434

427:                                              ; preds = %132
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %21, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %22, align 4
  %431 = load i1, ptr %59, align 1
  br i1 %431, label %432, label %433

432:                                              ; preds = %427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %433

433:                                              ; preds = %432, %427
  br label %434

434:                                              ; preds = %433, %423
  %435 = load i1, ptr %58, align 1
  br i1 %435, label %436, label %437

436:                                              ; preds = %434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %437

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

438:                                              ; preds = %437, %419
  %439 = load i1, ptr %57, align 1
  br i1 %439, label %440, label %441

440:                                              ; preds = %438
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  br label %441

441:                                              ; preds = %440, %438
  %442 = load i1, ptr %56, align 1
  br i1 %442, label %443, label %444

443:                                              ; preds = %441
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  br label %444

444:                                              ; preds = %443, %441
  %445 = load i1, ptr %54, align 1
  br i1 %445, label %446, label %447

446:                                              ; preds = %444
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %447

447:                                              ; preds = %446, %444
  %448 = load i1, ptr %52, align 1
  br i1 %448, label %449, label %450

449:                                              ; preds = %447
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %450

450:                                              ; preds = %449, %447
  br label %451

451:                                              ; preds = %450, %415
  %452 = load i1, ptr %51, align 1
  br i1 %452, label %453, label %454

453:                                              ; preds = %451
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  br label %454

454:                                              ; preds = %453, %451
  %455 = load i1, ptr %50, align 1
  br i1 %455, label %456, label %457

456:                                              ; preds = %454
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #6
  br label %457

457:                                              ; preds = %456, %454
  %458 = load i1, ptr %48, align 1
  br i1 %458, label %459, label %460

459:                                              ; preds = %457
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  br label %460

460:                                              ; preds = %459, %457
  %461 = load i1, ptr %45, align 1
  br i1 %461, label %462, label %463

462:                                              ; preds = %460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %463

463:                                              ; preds = %462, %460
  br label %464

464:                                              ; preds = %463, %411
  %465 = load i1, ptr %44, align 1
  br i1 %465, label %466, label %467

466:                                              ; preds = %464
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %467

467:                                              ; preds = %466, %464
  br label %468

468:                                              ; preds = %467, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  %469 = load i1, ptr %42, align 1
  br i1 %469, label %470, label %471

470:                                              ; preds = %468
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  br label %471

471:                                              ; preds = %470, %468
  %472 = load i1, ptr %40, align 1
  br i1 %472, label %473, label %474

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

474:                                              ; preds = %473, %471
  br label %475

475:                                              ; preds = %474, %403
  %476 = load i1, ptr %39, align 1
  br i1 %476, label %477, label %478

477:                                              ; preds = %475
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %478

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

479:                                              ; preds = %478, %399
  %480 = load i1, ptr %38, align 1
  br i1 %480, label %481, label %482

481:                                              ; preds = %479
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %482

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

483:                                              ; preds = %482, %395
  %484 = load i1, ptr %37, align 1
  br i1 %484, label %485, label %486

485:                                              ; preds = %483
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  br label %486

486:                                              ; preds = %485, %483
  %487 = load i1, ptr %36, align 1
  br i1 %487, label %488, label %489

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

489:                                              ; preds = %488, %486
  %490 = load i1, ptr %34, align 1
  br i1 %490, label %491, label %492

491:                                              ; preds = %489
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #6
  br label %492

492:                                              ; preds = %491, %489
  %493 = load i1, ptr %32, align 1
  br i1 %493, label %494, label %495

494:                                              ; preds = %492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %495

495:                                              ; preds = %494, %492
  br label %496

496:                                              ; preds = %495, %391
  %497 = load i1, ptr %31, align 1
  br i1 %497, label %498, label %499

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

499:                                              ; preds = %498, %496
  br label %500

500:                                              ; preds = %499, %387
  %501 = load i1, ptr %30, align 1
  br i1 %501, label %502, label %503

502:                                              ; preds = %500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %503

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

504:                                              ; preds = %503, %383
  %505 = load i1, ptr %29, align 1
  br i1 %505, label %506, label %507

506:                                              ; preds = %504
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  br label %507

507:                                              ; preds = %506, %504
  %508 = load i1, ptr %28, align 1
  br i1 %508, label %509, label %510

509:                                              ; preds = %507
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #6
  br label %510

510:                                              ; preds = %509, %507
  %511 = load i1, ptr %26, align 1
  br i1 %511, label %512, label %513

512:                                              ; preds = %510
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  br label %513

513:                                              ; preds = %512, %510
  %514 = load i1, ptr %24, align 1
  br i1 %514, label %515, label %516

515:                                              ; preds = %513
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %516

516:                                              ; preds = %515, %513
  br label %517

517:                                              ; preds = %516, %379
  %518 = load i1, ptr %23, align 1
  br i1 %518, label %519, label %520

519:                                              ; preds = %517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %520

520:                                              ; preds = %519, %517
  br label %521

521:                                              ; preds = %520, %375
  %522 = load i1, ptr %20, align 1
  br i1 %522, label %523, label %524

523:                                              ; preds = %521
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  br label %524

524:                                              ; preds = %523, %521
  %525 = load i1, ptr %19, align 1
  br i1 %525, label %526, label %527

526:                                              ; preds = %524
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #6
  br label %527

527:                                              ; preds = %526, %524
  %528 = load i1, ptr %17, align 1
  br i1 %528, label %529, label %530

529:                                              ; preds = %527
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %530

530:                                              ; preds = %529, %527
  %531 = load i1, ptr %15, align 1
  br i1 %531, label %532, label %533

532:                                              ; preds = %530
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %533

533:                                              ; preds = %532, %530
  %534 = load i1, ptr %13, align 1
  br i1 %534, label %535, label %536

535:                                              ; preds = %533
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  br label %536

536:                                              ; preds = %535, %533
  %537 = load i1, ptr %11, align 1
  br i1 %537, label %538, label %539

538:                                              ; preds = %536
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  br label %539

539:                                              ; preds = %538, %536
  %540 = load i1, ptr %9, align 1
  br i1 %540, label %541, label %542

541:                                              ; preds = %539
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #6
  br label %542

542:                                              ; preds = %541, %539
  %543 = load i1, ptr %7, align 1
  br i1 %543, label %544, label %545

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

545:                                              ; preds = %544, %542
  br label %717

546:                                              ; preds = %254
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %21, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %22, align 4
  br label %692

550:                                              ; preds = %255
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %21, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %22, align 4
  br label %688

554:                                              ; preds = %256
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %21, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %22, align 4
  br label %675

558:                                              ; preds = %257
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %21, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %22, align 4
  br label %671

562:                                              ; preds = %258
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %21, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %22, align 4
  br label %667

566:                                              ; preds = %259
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %21, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %22, align 4
  br label %654

570:                                              ; preds = %260
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %21, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %22, align 4
  br label %650

574:                                              ; preds = %261
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %21, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %22, align 4
  br label %646

578:                                              ; preds = %262
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %21, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %22, align 4
  br label %639

582:                                              ; preds = %263
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %21, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %22, align 4
  br label %635

586:                                              ; preds = %264
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %21, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %22, align 4
  br label %622

590:                                              ; preds = %265
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %21, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %22, align 4
  br label %609

594:                                              ; preds = %266
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %21, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %22, align 4
  br label %605

598:                                              ; preds = %267
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %21, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %22, align 4
  %602 = load i1, ptr %113, align 1
  br i1 %602, label %603, label %604

603:                                              ; preds = %598
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  br label %604

604:                                              ; preds = %603, %598
  br label %605

605:                                              ; preds = %604, %594
  %606 = load i1, ptr %112, align 1
  br i1 %606, label %607, label %608

607:                                              ; preds = %605
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %608

608:                                              ; preds = %607, %605
  br label %609

609:                                              ; preds = %608, %590
  %610 = load i1, ptr %111, align 1
  br i1 %610, label %611, label %612

611:                                              ; preds = %609
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  br label %612

612:                                              ; preds = %611, %609
  %613 = load i1, ptr %110, align 1
  br i1 %613, label %614, label %615

614:                                              ; preds = %612
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #6
  br label %615

615:                                              ; preds = %614, %612
  %616 = load i1, ptr %108, align 1
  br i1 %616, label %617, label %618

617:                                              ; preds = %615
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  br label %618

618:                                              ; preds = %617, %615
  %619 = load i1, ptr %106, align 1
  br i1 %619, label %620, label %621

620:                                              ; preds = %618
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %621

621:                                              ; preds = %620, %618
  br label %622

622:                                              ; preds = %621, %586
  %623 = load i1, ptr %105, align 1
  br i1 %623, label %624, label %625

624:                                              ; preds = %622
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  br label %625

625:                                              ; preds = %624, %622
  %626 = load i1, ptr %104, align 1
  br i1 %626, label %627, label %628

627:                                              ; preds = %625
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #6
  br label %628

628:                                              ; preds = %627, %625
  %629 = load i1, ptr %102, align 1
  br i1 %629, label %630, label %631

630:                                              ; preds = %628
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  br label %631

631:                                              ; preds = %630, %628
  %632 = load i1, ptr %99, align 1
  br i1 %632, label %633, label %634

633:                                              ; preds = %631
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %634

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

635:                                              ; preds = %634, %582
  %636 = load i1, ptr %98, align 1
  br i1 %636, label %637, label %638

637:                                              ; preds = %635
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %638

638:                                              ; preds = %637, %635
  br label %639

639:                                              ; preds = %638, %578
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #6
  %640 = load i1, ptr %96, align 1
  br i1 %640, label %641, label %642

641:                                              ; preds = %639
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #6
  br label %642

642:                                              ; preds = %641, %639
  %643 = load i1, ptr %94, align 1
  br i1 %643, label %644, label %645

644:                                              ; preds = %642
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %645

645:                                              ; preds = %644, %642
  br label %646

646:                                              ; preds = %645, %574
  %647 = load i1, ptr %93, align 1
  br i1 %647, label %648, label %649

648:                                              ; preds = %646
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %649

649:                                              ; preds = %648, %646
  br label %650

650:                                              ; preds = %649, %570
  %651 = load i1, ptr %92, align 1
  br i1 %651, label %652, label %653

652:                                              ; preds = %650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  br label %653

653:                                              ; preds = %652, %650
  br label %654

654:                                              ; preds = %653, %566
  %655 = load i1, ptr %91, align 1
  br i1 %655, label %656, label %657

656:                                              ; preds = %654
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #6
  br label %657

657:                                              ; preds = %656, %654
  %658 = load i1, ptr %90, align 1
  br i1 %658, label %659, label %660

659:                                              ; preds = %657
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #6
  br label %660

660:                                              ; preds = %659, %657
  %661 = load i1, ptr %88, align 1
  br i1 %661, label %662, label %663

662:                                              ; preds = %660
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #6
  br label %663

663:                                              ; preds = %662, %660
  %664 = load i1, ptr %86, align 1
  br i1 %664, label %665, label %666

665:                                              ; preds = %663
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %666

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

667:                                              ; preds = %666, %562
  %668 = load i1, ptr %85, align 1
  br i1 %668, label %669, label %670

669:                                              ; preds = %667
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %670

670:                                              ; preds = %669, %667
  br label %671

671:                                              ; preds = %670, %558
  %672 = load i1, ptr %84, align 1
  br i1 %672, label %673, label %674

673:                                              ; preds = %671
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %674

674:                                              ; preds = %673, %671
  br label %675

675:                                              ; preds = %674, %554
  %676 = load i1, ptr %83, align 1
  br i1 %676, label %677, label %678

677:                                              ; preds = %675
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #6
  br label %678

678:                                              ; preds = %677, %675
  %679 = load i1, ptr %82, align 1
  br i1 %679, label %680, label %681

680:                                              ; preds = %678
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #6
  br label %681

681:                                              ; preds = %680, %678
  %682 = load i1, ptr %80, align 1
  br i1 %682, label %683, label %684

683:                                              ; preds = %681
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  br label %684

684:                                              ; preds = %683, %681
  %685 = load i1, ptr %78, align 1
  br i1 %685, label %686, label %687

686:                                              ; preds = %684
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %687

687:                                              ; preds = %686, %684
  br label %688

688:                                              ; preds = %687, %550
  %689 = load i1, ptr %77, align 1
  br i1 %689, label %690, label %691

690:                                              ; preds = %688
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %691

691:                                              ; preds = %690, %688
  br label %692

692:                                              ; preds = %691, %546
  %693 = load i1, ptr %76, align 1
  br i1 %693, label %694, label %695

694:                                              ; preds = %692
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  br label %695

695:                                              ; preds = %694, %692
  %696 = load i1, ptr %75, align 1
  br i1 %696, label %697, label %698

697:                                              ; preds = %695
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #6
  br label %698

698:                                              ; preds = %697, %695
  %699 = load i1, ptr %73, align 1
  br i1 %699, label %700, label %701

700:                                              ; preds = %698
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #6
  br label %701

701:                                              ; preds = %700, %698
  %702 = load i1, ptr %71, align 1
  br i1 %702, label %703, label %704

703:                                              ; preds = %701
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  br label %704

704:                                              ; preds = %703, %701
  %705 = load i1, ptr %69, align 1
  br i1 %705, label %706, label %707

706:                                              ; preds = %704
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  br label %707

707:                                              ; preds = %706, %704
  %708 = load i1, ptr %67, align 1
  br i1 %708, label %709, label %710

709:                                              ; preds = %707
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  br label %710

710:                                              ; preds = %709, %707
  %711 = load i1, ptr %65, align 1
  br i1 %711, label %712, label %713

712:                                              ; preds = %710
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  br label %713

713:                                              ; preds = %712, %710
  %714 = load i1, ptr %63, align 1
  br i1 %714, label %715, label %716

715:                                              ; preds = %713
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %716

716:                                              ; preds = %715, %713
  br label %717

717:                                              ; preds = %716, %545
  %718 = load ptr, ptr %21, align 8
  %719 = load i32, ptr %22, align 4
  %720 = insertvalue { ptr, i32 } poison, ptr %718, 0
  %721 = insertvalue { ptr, i32 } %720, i32 %719, 1
  resume { ptr, i32 } %721
}

; Function Attrs: nounwind
declare double @sqrt(double noundef) #0

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !10, i64 152}
!14 = !{!"_ZTS8VoidElem", !15, i64 0, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176}
!15 = !{!"_ZTS9ElemModel", !10, i64 8, !10, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !6, i64 48, !16, i64 56, !16, i64 57, !16, i64 58, !16, i64 59, !12, i64 60, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !17, i64 120, !17, i64 136}
!16 = !{!"bool", !7, i64 0}
!17 = !{!"_ZTSSt4pairIddE", !10, i64 0, !10, i64 8}
!18 = !{!15, !10, i64 40}
!19 = !{!15, !10, i64 72}


; 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.7" = type { i8 }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__._ZN8Triangle14setShapeFactorEd = external hidden unnamed_addr constant [15 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [26 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8Triangle13setHalfAnglesEv(ptr noundef nonnull align 8 dereferenceable(248)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8Triangle14setShapeFactorEd(ptr noundef nonnull align 8 dereferenceable(248) %0, double noundef %1) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca double, align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.7", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator.7", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.7", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.7", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.7", align 1
  %23 = alloca double, align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::__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.7", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.7", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.7", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.7", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.7", align 1
  store double %1, ptr %3, align 8, !tbaa !5
  %43 = fcmp ugt double %1, 0x3FA8A2345CC04425
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  br i1 %43, label %44, label %59

44:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %45 unwind label %85

45:                                               ; preds = %44
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.1)
          to label %46 unwind label %87

46:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @__FUNCTION__._ZN8Triangle14setShapeFactorEd, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %47 unwind label %89

47:                                               ; preds = %46
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %48 unwind label %91

48:                                               ; preds = %47
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.2)
          to label %49 unwind label %93

49:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %50 unwind label %95

50:                                               ; preds = %49
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %51 unwind label %97

51:                                               ; preds = %50
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.4)
          to label %52 unwind label %99

52:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #5
  store i32 174, ptr %17, align 4, !tbaa !9
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %53 unwind label %101

53:                                               ; preds = %52
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %54 unwind label %103

54:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %55 unwind label %105

55:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %56 unwind label %107

56:                                               ; preds = %55
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %57 unwind label %109

57:                                               ; preds = %56
  %58 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %4, ptr noundef nonnull %18, i32 noundef 0)
          to label %.critedge273 unwind label %111

59:                                               ; preds = %2
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  br label %.critedge294

.critedge273:                                     ; preds = %57
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  br label %.critedge294

.critedge294:                                     ; preds = %59, %.critedge273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  store double 0x3EB0C6F7A0B5ED8D, ptr %23, align 8, !tbaa !5
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %23)
  %61 = load double, ptr %60, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %0, i64 152
  store double %61, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  %63 = getelementptr inbounds i8, ptr %0, i64 40
  %64 = load double, ptr %63, align 8, !tbaa !17
  %square = fmul double %64, %64
  %65 = fmul double %61, 4.000000e+00
  %66 = fdiv double %square, %65
  %67 = getelementptr inbounds i8, ptr %0, i64 72
  store double %66, ptr %67, align 8, !tbaa !18
  %68 = fcmp ule double %66, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  br i1 %68, label %69, label %84

69:                                               ; preds = %.critedge294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %70 unwind label %126

70:                                               ; preds = %69
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.1)
          to label %71 unwind label %128

71:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @__FUNCTION__._ZN8Triangle14setShapeFactorEd, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %72 unwind label %130

72:                                               ; preds = %71
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %73 unwind label %132

73:                                               ; preds = %72
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.2)
          to label %74 unwind label %134

74:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %75 unwind label %136

75:                                               ; preds = %74
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %76 unwind label %138

76:                                               ; preds = %75
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.4)
          to label %77 unwind label %140

77:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #5
  store i32 177, ptr %37, align 4, !tbaa !9
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %78 unwind label %142

78:                                               ; preds = %77
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %79 unwind label %144

79:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %80 unwind label %146

80:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %81 unwind label %148

81:                                               ; preds = %80
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %82 unwind label %150

82:                                               ; preds = %81
  %83 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %24, ptr noundef nonnull %38, i32 noundef 0)
          to label %.critedge309 unwind label %152

84:                                               ; preds = %.critedge294
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  br label %.critedge330

.critedge309:                                     ; preds = %82
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  br label %.critedge330

.critedge330:                                     ; preds = %84, %.critedge309
  call void @_ZN8Triangle13setHalfAnglesEv(ptr noundef nonnull align 8 dereferenceable(248) %0)
  ret void

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

87:                                               ; preds = %45
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %124

89:                                               ; preds = %46
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %123

91:                                               ; preds = %47
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %122

93:                                               ; preds = %48
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %121

95:                                               ; preds = %49
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %120

97:                                               ; preds = %50
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %119

99:                                               ; preds = %51
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %118

101:                                              ; preds = %52
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %117

103:                                              ; preds = %53
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %116

105:                                              ; preds = %54
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %115

107:                                              ; preds = %55
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %114

109:                                              ; preds = %56
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %113

111:                                              ; preds = %57
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  br label %113

113:                                              ; preds = %109, %111
  %.pn = phi { ptr, i32 } [ %112, %111 ], [ %110, %109 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  br label %114

114:                                              ; preds = %107, %113
  %.pn.pn = phi { ptr, i32 } [ %.pn, %113 ], [ %108, %107 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  br label %115

115:                                              ; preds = %105, %114
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %114 ], [ %106, %105 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  br label %116

116:                                              ; preds = %103, %115
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %115 ], [ %104, %103 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %117

117:                                              ; preds = %116, %101
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %116 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %118

118:                                              ; preds = %99, %117
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %117 ], [ %100, %99 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  br label %119

119:                                              ; preds = %97, %118
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %118 ], [ %98, %97 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %120

120:                                              ; preds = %95, %119
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %119 ], [ %96, %95 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %121

121:                                              ; preds = %93, %120
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %120 ], [ %94, %93 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %122

122:                                              ; preds = %91, %121
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %121 ], [ %92, %91 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %123

123:                                              ; preds = %89, %122
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %122 ], [ %90, %89 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %124

124:                                              ; preds = %87, %123
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %123 ], [ %88, %87 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %125

125:                                              ; preds = %85, %124
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %124 ], [ %86, %85 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  br label %167

126:                                              ; preds = %69
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %166

128:                                              ; preds = %70
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %165

130:                                              ; preds = %71
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %164

132:                                              ; preds = %72
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %163

134:                                              ; preds = %73
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %162

136:                                              ; preds = %74
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %161

138:                                              ; preds = %75
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %160

140:                                              ; preds = %76
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %159

142:                                              ; preds = %77
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %158

144:                                              ; preds = %78
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %157

146:                                              ; preds = %79
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %156

148:                                              ; preds = %80
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %155

150:                                              ; preds = %81
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %154

152:                                              ; preds = %82
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  br label %154

154:                                              ; preds = %150, %152
  %.pn246 = phi { ptr, i32 } [ %153, %152 ], [ %151, %150 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  br label %155

155:                                              ; preds = %148, %154
  %.pn246.pn = phi { ptr, i32 } [ %.pn246, %154 ], [ %149, %148 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  br label %156

156:                                              ; preds = %146, %155
  %.pn246.pn.pn = phi { ptr, i32 } [ %.pn246.pn, %155 ], [ %147, %146 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  br label %157

157:                                              ; preds = %144, %156
  %.pn246.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn, %156 ], [ %145, %144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  br label %158

158:                                              ; preds = %157, %142
  %.pn246.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn, %157 ], [ %143, %142 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  br label %159

159:                                              ; preds = %140, %158
  %.pn246.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn, %158 ], [ %141, %140 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br label %160

160:                                              ; preds = %138, %159
  %.pn246.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn, %159 ], [ %139, %138 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  br label %161

161:                                              ; preds = %136, %160
  %.pn246.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn, %160 ], [ %137, %136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %162

162:                                              ; preds = %134, %161
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn, %161 ], [ %135, %134 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %163

163:                                              ; preds = %132, %162
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn, %162 ], [ %133, %132 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  br label %164

164:                                              ; preds = %130, %163
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn, %163 ], [ %131, %130 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  br label %165

165:                                              ; preds = %128, %164
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %164 ], [ %129, %128 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  br label %166

166:                                              ; preds = %126, %165
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %165 ], [ %127, %126 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  br label %167

167:                                              ; preds = %166, %125
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %166 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %125 ]
  resume { ptr, i32 } %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { 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 #5 = { 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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 152}
!12 = !{!"_ZTS8VoidElem", !13, i64 0, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176}
!13 = !{!"_ZTS9ElemModel", !6, i64 8, !6, i64 16, !14, i64 24, !14, i64 32, !6, i64 40, !14, i64 48, !15, i64 56, !15, i64 57, !15, i64 58, !15, i64 59, !10, i64 60, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !16, i64 120, !16, i64 136}
!14 = !{!"any pointer", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTSSt4pairIddE", !6, i64 0, !6, i64 8}
!17 = !{!13, !6, i64 40}
!18 = !{!13, !6, i64 72}


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