; LLVM IR from InsightSoftwareConsortium/ITK :: Modules/ThirdParty/VNL/src/vxl/v3p/netlib/linalg (lsqrBase)

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

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

@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [35 x i8], align 1

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8lsqrBase19TerminationPrintOutEv(ptr noundef nonnull align 8 dereferenceable(152) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %7 = load ptr, ptr %2, align 8
  %8 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 13
  %9 = load i8, ptr %8, align 8, !tbaa !9, !range !14, !noundef !15
  %10 = trunc i8 %9 to i1
  br i1 %10, label %11, label %17

11:                                               ; preds = %1
  %12 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 16
  %13 = load i32, ptr %12, align 4, !tbaa !16
  %14 = icmp eq i32 %13, 2
  br i1 %14, label %15, label %17

15:                                               ; preds = %11
  %16 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 16
  store i32 3, ptr %16, align 4, !tbaa !16
  br label %17

17:                                               ; preds = %15, %11, %1
  %18 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %19 = load ptr, ptr %18, align 8, !tbaa !17
  %20 = icmp ne ptr %19, null
  br i1 %20, label %21, label %398

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

22:                                               ; preds = %21
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #4
  %23 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %24 = load ptr, ptr %23, align 8, !tbaa !17
  %25 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  %26 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef %25)
          to label %27 unwind label %350

27:                                               ; preds = %22
  %28 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %29 = load ptr, ptr %28, align 8, !tbaa !17
  %30 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef @.str.6)
          to label %31 unwind label %350

31:                                               ; preds = %27
  %32 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %33 = load ptr, ptr %32, align 8, !tbaa !17
  %34 = load ptr, ptr %33, align 8, !tbaa !18
  %35 = getelementptr i8, ptr %34, i64 -24
  %36 = load i64, ptr %35, align 8
  %37 = getelementptr inbounds i8, ptr %33, i64 %36
  %38 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %37, i64 noundef 6)
          to label %39 unwind label %350

39:                                               ; preds = %31
  %40 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %41 = load ptr, ptr %40, align 8, !tbaa !17
  %42 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 16
  %43 = load i32, ptr %42, align 4, !tbaa !16
  %44 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %41, i32 noundef %43)
          to label %45 unwind label %350

45:                                               ; preds = %39
  %46 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %47 = load ptr, ptr %46, align 8, !tbaa !17
  %48 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.7)
          to label %49 unwind label %350

49:                                               ; preds = %45
  %50 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %51 = load ptr, ptr %50, align 8, !tbaa !17
  %52 = load ptr, ptr %51, align 8, !tbaa !18
  %53 = getelementptr i8, ptr %52, i64 -24
  %54 = load i64, ptr %53, align 8
  %55 = getelementptr inbounds i8, ptr %51, i64 %54
  %56 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %55, i64 noundef 15)
          to label %57 unwind label %350

57:                                               ; preds = %49
  %58 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %59 = load ptr, ptr %58, align 8, !tbaa !17
  %60 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 15
  %61 = load i32, ptr %60, align 8, !tbaa !20
  %62 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %59, i32 noundef %61)
          to label %63 unwind label %350

63:                                               ; preds = %57
  %64 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %65 = load ptr, ptr %64, align 8, !tbaa !17
  %66 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %67 unwind label %350

67:                                               ; preds = %63
  %68 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %69 = load ptr, ptr %68, align 8, !tbaa !17
  %70 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  %71 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef %70)
          to label %72 unwind label %350

72:                                               ; preds = %67
  %73 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %74 = load ptr, ptr %73, align 8, !tbaa !17
  %75 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef @.str.8)
          to label %76 unwind label %350

76:                                               ; preds = %72
  %77 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %78 = load ptr, ptr %77, align 8, !tbaa !17
  %79 = load ptr, ptr %78, align 8, !tbaa !18
  %80 = getelementptr i8, ptr %79, i64 -24
  %81 = load i64, ptr %80, align 8
  %82 = getelementptr inbounds i8, ptr %78, i64 %81
  %83 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %82, i64 noundef 5)
          to label %84 unwind label %350

84:                                               ; preds = %76
  %85 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %86 = load ptr, ptr %85, align 8, !tbaa !17
  %87 = load ptr, ptr %86, align 8, !tbaa !18
  %88 = getelementptr i8, ptr %87, i64 -24
  %89 = load i64, ptr %88, align 8
  %90 = getelementptr inbounds i8, ptr %86, i64 %89
  %91 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %90, i64 noundef 12)
          to label %92 unwind label %350

92:                                               ; preds = %84
  %93 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %94 = load ptr, ptr %93, align 8, !tbaa !17
  %95 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 1
  %96 = load double, ptr %95, align 8, !tbaa !21
  %97 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %94, double noundef %96)
          to label %98 unwind label %350

98:                                               ; preds = %92
  %99 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %100 = load ptr, ptr %99, align 8, !tbaa !17
  %101 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef @.str.9)
          to label %102 unwind label %350

102:                                              ; preds = %98
  %103 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %104 = load ptr, ptr %103, align 8, !tbaa !17
  %105 = load ptr, ptr %104, align 8, !tbaa !18
  %106 = getelementptr i8, ptr %105, i64 -24
  %107 = load i64, ptr %106, align 8
  %108 = getelementptr inbounds i8, ptr %104, i64 %107
  %109 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %108, i64 noundef 5)
          to label %110 unwind label %350

110:                                              ; preds = %102
  %111 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %112 = load ptr, ptr %111, align 8, !tbaa !17
  %113 = load ptr, ptr %112, align 8, !tbaa !18
  %114 = getelementptr i8, ptr %113, i64 -24
  %115 = load i64, ptr %114, align 8
  %116 = getelementptr inbounds i8, ptr %112, i64 %115
  %117 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %116, i64 noundef 12)
          to label %118 unwind label %350

118:                                              ; preds = %110
  %119 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %120 = load ptr, ptr %119, align 8, !tbaa !17
  %121 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 2
  %122 = load double, ptr %121, align 8, !tbaa !22
  %123 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %120, double noundef %122)
          to label %124 unwind label %350

124:                                              ; preds = %118
  %125 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %126 = load ptr, ptr %125, align 8, !tbaa !17
  %127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %128 unwind label %350

128:                                              ; preds = %124
  %129 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %130 = load ptr, ptr %129, align 8, !tbaa !17
  %131 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  %132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef %131)
          to label %133 unwind label %350

133:                                              ; preds = %128
  %134 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %135 = load ptr, ptr %134, align 8, !tbaa !17
  %136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef @.str.10)
          to label %137 unwind label %350

137:                                              ; preds = %133
  %138 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %139 = load ptr, ptr %138, align 8, !tbaa !17
  %140 = load ptr, ptr %139, align 8, !tbaa !18
  %141 = getelementptr i8, ptr %140, i64 -24
  %142 = load i64, ptr %141, align 8
  %143 = getelementptr inbounds i8, ptr %139, i64 %142
  %144 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %143, i64 noundef 5)
          to label %145 unwind label %350

145:                                              ; preds = %137
  %146 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %147 = load ptr, ptr %146, align 8, !tbaa !17
  %148 = load ptr, ptr %147, align 8, !tbaa !18
  %149 = getelementptr i8, ptr %148, i64 -24
  %150 = load i64, ptr %149, align 8
  %151 = getelementptr inbounds i8, ptr %147, i64 %150
  %152 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %151, i64 noundef 12)
          to label %153 unwind label %350

153:                                              ; preds = %145
  %154 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %155 = load ptr, ptr %154, align 8, !tbaa !17
  %156 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 3
  %157 = load double, ptr %156, align 8, !tbaa !23
  %158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %155, double noundef %157)
          to label %159 unwind label %350

159:                                              ; preds = %153
  %160 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %161 = load ptr, ptr %160, align 8, !tbaa !17
  %162 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %161, ptr noundef @.str.11)
          to label %163 unwind label %350

163:                                              ; preds = %159
  %164 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %165 = load ptr, ptr %164, align 8, !tbaa !17
  %166 = load ptr, ptr %165, align 8, !tbaa !18
  %167 = getelementptr i8, ptr %166, i64 -24
  %168 = load i64, ptr %167, align 8
  %169 = getelementptr inbounds i8, ptr %165, i64 %168
  %170 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %169, i64 noundef 5)
          to label %171 unwind label %350

171:                                              ; preds = %163
  %172 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %173 = load ptr, ptr %172, align 8, !tbaa !17
  %174 = load ptr, ptr %173, align 8, !tbaa !18
  %175 = getelementptr i8, ptr %174, i64 -24
  %176 = load i64, ptr %175, align 8
  %177 = getelementptr inbounds i8, ptr %173, i64 %176
  %178 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %177, i64 noundef 12)
          to label %179 unwind label %350

179:                                              ; preds = %171
  %180 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %181 = load ptr, ptr %180, align 8, !tbaa !17
  %182 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 6
  %183 = load double, ptr %182, align 8, !tbaa !24
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %181, double noundef %183)
          to label %185 unwind label %350

185:                                              ; preds = %179
  %186 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %187 = load ptr, ptr %186, align 8, !tbaa !17
  %188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %189 unwind label %350

189:                                              ; preds = %185
  %190 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %191 = load ptr, ptr %190, align 8, !tbaa !17
  %192 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef %192)
          to label %194 unwind label %350

194:                                              ; preds = %189
  %195 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %196 = load ptr, ptr %195, align 8, !tbaa !17
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %196, ptr noundef @.str.12)
          to label %198 unwind label %350

198:                                              ; preds = %194
  %199 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %200 = load ptr, ptr %199, align 8, !tbaa !17
  %201 = load ptr, ptr %200, align 8, !tbaa !18
  %202 = getelementptr i8, ptr %201, i64 -24
  %203 = load i64, ptr %202, align 8
  %204 = getelementptr inbounds i8, ptr %200, i64 %203
  %205 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %204, i64 noundef 5)
          to label %206 unwind label %350

206:                                              ; preds = %198
  %207 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %208 = load ptr, ptr %207, align 8, !tbaa !17
  %209 = load ptr, ptr %208, align 8, !tbaa !18
  %210 = getelementptr i8, ptr %209, i64 -24
  %211 = load i64, ptr %210, align 8
  %212 = getelementptr inbounds i8, ptr %208, i64 %211
  %213 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %212, i64 noundef 12)
          to label %214 unwind label %350

214:                                              ; preds = %206
  %215 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %216 = load ptr, ptr %215, align 8, !tbaa !17
  %217 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 4
  %218 = load double, ptr %217, align 8, !tbaa !25
  %219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %216, double noundef %218)
          to label %220 unwind label %350

220:                                              ; preds = %214
  %221 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %222 = load ptr, ptr %221, align 8, !tbaa !17
  %223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef @.str.13)
          to label %224 unwind label %350

224:                                              ; preds = %220
  %225 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %226 = load ptr, ptr %225, align 8, !tbaa !17
  %227 = load ptr, ptr %226, align 8, !tbaa !18
  %228 = getelementptr i8, ptr %227, i64 -24
  %229 = load i64, ptr %228, align 8
  %230 = getelementptr inbounds i8, ptr %226, i64 %229
  %231 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %230, i64 noundef 5)
          to label %232 unwind label %350

232:                                              ; preds = %224
  %233 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %234 = load ptr, ptr %233, align 8, !tbaa !17
  %235 = load ptr, ptr %234, align 8, !tbaa !18
  %236 = getelementptr i8, ptr %235, i64 -24
  %237 = load i64, ptr %236, align 8
  %238 = getelementptr inbounds i8, ptr %234, i64 %237
  %239 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %238, i64 noundef 12)
          to label %240 unwind label %350

240:                                              ; preds = %232
  %241 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %242 = load ptr, ptr %241, align 8, !tbaa !17
  %243 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 5
  %244 = load double, ptr %243, align 8, !tbaa !26
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %242, double noundef %244)
          to label %246 unwind label %350

246:                                              ; preds = %240
  %247 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %248 = load ptr, ptr %247, align 8, !tbaa !17
  %249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %248, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %250 unwind label %350

250:                                              ; preds = %246
  %251 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %252 = load ptr, ptr %251, align 8, !tbaa !17
  %253 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef %253)
          to label %255 unwind label %350

255:                                              ; preds = %250
  %256 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %257 = load ptr, ptr %256, align 8, !tbaa !17
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef @.str.14)
          to label %259 unwind label %350

259:                                              ; preds = %255
  %260 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %261 = load ptr, ptr %260, align 8, !tbaa !17
  %262 = load ptr, ptr %261, align 8, !tbaa !18
  %263 = getelementptr i8, ptr %262, i64 -24
  %264 = load i64, ptr %263, align 8
  %265 = getelementptr inbounds i8, ptr %261, i64 %264
  %266 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %265, i64 noundef 1)
          to label %267 unwind label %350

267:                                              ; preds = %259
  %268 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %269 = load ptr, ptr %268, align 8, !tbaa !17
  %270 = load ptr, ptr %269, align 8, !tbaa !18
  %271 = getelementptr i8, ptr %270, i64 -24
  %272 = load i64, ptr %271, align 8
  %273 = getelementptr inbounds i8, ptr %269, i64 %272
  %274 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %273, i64 noundef 8)
          to label %275 unwind label %350

275:                                              ; preds = %267
  %276 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %277 = load ptr, ptr %276, align 8, !tbaa !17
  %278 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 7
  %279 = load double, ptr %278, align 8, !tbaa !27
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %277, double noundef %279)
          to label %281 unwind label %350

281:                                              ; preds = %275
  %282 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %283 = load ptr, ptr %282, align 8, !tbaa !17
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %283, ptr noundef @.str.15)
          to label %285 unwind label %350

285:                                              ; preds = %281
  %286 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %287 = load ptr, ptr %286, align 8, !tbaa !17
  %288 = load ptr, ptr %287, align 8, !tbaa !18
  %289 = getelementptr i8, ptr %288, i64 -24
  %290 = load i64, ptr %289, align 8
  %291 = getelementptr inbounds i8, ptr %287, i64 %290
  %292 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %291, i64 noundef 8)
          to label %293 unwind label %350

293:                                              ; preds = %285
  %294 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %295 = load ptr, ptr %294, align 8, !tbaa !17
  %296 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 17
  %297 = load i32, ptr %296, align 8, !tbaa !28
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %295, i32 noundef %297)
          to label %299 unwind label %350

299:                                              ; preds = %293
  %300 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %301 = load ptr, ptr %300, align 8, !tbaa !17
  %302 = load ptr, ptr %301, align 8, !tbaa !18
  %303 = getelementptr i8, ptr %302, i64 -24
  %304 = load i64, ptr %303, align 8
  %305 = getelementptr inbounds i8, ptr %301, i64 %304
  %306 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %305, i64 noundef 1)
          to label %307 unwind label %350

307:                                              ; preds = %299
  %308 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %309 = load ptr, ptr %308, align 8, !tbaa !17
  %310 = load ptr, ptr %309, align 8, !tbaa !18
  %311 = getelementptr i8, ptr %310, i64 -24
  %312 = load i64, ptr %311, align 8
  %313 = getelementptr inbounds i8, ptr %309, i64 %312
  %314 = invoke noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %313, i64 noundef 8)
          to label %315 unwind label %350

315:                                              ; preds = %307
  %316 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %317 = load ptr, ptr %316, align 8, !tbaa !17
  %318 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %319 unwind label %350

319:                                              ; preds = %315
  %320 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %321 = load ptr, ptr %320, align 8, !tbaa !17
  %322 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  %323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef %322)
          to label %324 unwind label %350

324:                                              ; preds = %319
  %325 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %326 = load ptr, ptr %325, align 8, !tbaa !17
  %327 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 7
  %328 = load double, ptr %327, align 8, !tbaa !27
  %329 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 6
  %330 = load double, ptr %329, align 8, !tbaa !24
  %331 = fadd double %330, 1.000000e-30
  %332 = fdiv double %328, %331
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %326, double noundef %332)
          to label %334 unwind label %350

334:                                              ; preds = %324
  %335 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %336 = load ptr, ptr %335, align 8, !tbaa !17
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %336, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %338 unwind label %350

338:                                              ; preds = %334
  %339 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %340 = load ptr, ptr %339, align 8, !tbaa !17
  %341 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef %341)
          to label %343 unwind label %350

343:                                              ; preds = %338
  %344 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 16
  %345 = load i32, ptr %344, align 4, !tbaa !16
  switch i32 %345, label %396 [
    i32 0, label %354
    i32 1, label %361
    i32 2, label %368
    i32 3, label %375
    i32 4, label %382
    i32 5, label %389
  ]

346:                                              ; preds = %21
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %5, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #4
  br label %397

350:                                              ; preds = %393, %389, %386, %382, %379, %375, %372, %368, %365, %361, %358, %354, %338, %334, %324, %319, %315, %307, %299, %293, %285, %281, %275, %267, %259, %255, %250, %246, %240, %232, %224, %220, %214, %206, %198, %194, %189, %185, %179, %171, %163, %159, %153, %145, %137, %133, %128, %124, %118, %110, %102, %98, %92, %84, %76, %72, %67, %63, %57, %49, %45, %39, %31, %27, %22
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %5, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  br label %397

354:                                              ; preds = %343
  %355 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %356 = load ptr, ptr %355, align 8, !tbaa !17
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef @.str.16)
          to label %358 unwind label %350

358:                                              ; preds = %354
  %359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %357, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %360 unwind label %350

360:                                              ; preds = %358
  br label %396

361:                                              ; preds = %343
  %362 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %363 = load ptr, ptr %362, align 8, !tbaa !17
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %363, ptr noundef @.str.17)
          to label %365 unwind label %350

365:                                              ; preds = %361
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %367 unwind label %350

367:                                              ; preds = %365
  br label %396

368:                                              ; preds = %343
  %369 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %370 = load ptr, ptr %369, align 8, !tbaa !17
  %371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef @.str.18)
          to label %372 unwind label %350

372:                                              ; preds = %368
  %373 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %371, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %374 unwind label %350

374:                                              ; preds = %372
  br label %396

375:                                              ; preds = %343
  %376 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %377 = load ptr, ptr %376, align 8, !tbaa !17
  %378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %377, ptr noundef @.str.19)
          to label %379 unwind label %350

379:                                              ; preds = %375
  %380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %378, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %381 unwind label %350

381:                                              ; preds = %379
  br label %396

382:                                              ; preds = %343
  %383 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %384 = load ptr, ptr %383, align 8, !tbaa !17
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef @.str.20)
          to label %386 unwind label %350

386:                                              ; preds = %382
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %388 unwind label %350

388:                                              ; preds = %386
  br label %396

389:                                              ; preds = %343
  %390 = getelementptr inbounds %class.lsqrBase, ptr %7, i32 0, i32 18
  %391 = load ptr, ptr %390, align 8, !tbaa !17
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %391, ptr noundef @.str.21)
          to label %393 unwind label %350

393:                                              ; preds = %389
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %395 unwind label %350

395:                                              ; preds = %393
  br label %396

396:                                              ; preds = %395, %388, %381, %374, %367, %360, %343
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #4
  br label %398

397:                                              ; preds = %350, %346
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #4
  br label %399

398:                                              ; preds = %396, %17
  ret void

399:                                              ; preds = %397
  %400 = load ptr, ptr %5, align 8
  %401 = load i32, ptr %6, align 4
  %402 = insertvalue { ptr, i32 } poison, ptr %400, 0
  %403 = insertvalue { ptr, i32 } %402, i32 %401, 1
  resume { ptr, i32 } %403
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) #3 align 2

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

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

declare i32 @__gxx_personality_v0(...)

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

; 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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 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 = { 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, !12, i64 104}
!10 = !{!"_ZTS8lsqrBase", !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !11, i64 96, !12, i64 104, !13, i64 108, !13, i64 112, !13, i64 116, !13, i64 120, !6, i64 128, !12, i64 136, !6, i64 144}
!11 = !{!"double", !7, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!10, !13, i64 116}
!17 = !{!10, !6, i64 128}
!18 = !{!19, !19, i64 0}
!19 = !{!"vtable pointer", !8, i64 0}
!20 = !{!10, !13, i64 112}
!21 = !{!10, !11, i64 8}
!22 = !{!10, !11, i64 16}
!23 = !{!10, !11, i64 24}
!24 = !{!10, !11, i64 48}
!25 = !{!10, !11, i64 32}
!26 = !{!10, !11, i64 40}
!27 = !{!10, !11, i64 56}
!28 = !{!10, !13, i64 120}


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

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

@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [35 x i8], align 1
@switch.table._ZN8lsqrBase19TerminationPrintOutEv = private unnamed_addr constant [6 x ptr] [ptr @.str.16, ptr @.str.17, ptr @.str.18, ptr @.str.19, ptr @.str.20, ptr @.str.21], align 8

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8lsqrBase19TerminationPrintOutEv(ptr nocapture noundef nonnull align 8 dereferenceable(152) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = getelementptr inbounds i8, ptr %0, i64 104
  %5 = load i8, ptr %4, align 8, !tbaa !5, !range !13, !noundef !14
  %6 = trunc nuw i8 %5 to i1
  br i1 %6, label %7, label %12

7:                                                ; preds = %1
  %8 = getelementptr inbounds i8, ptr %0, i64 116
  %9 = load i32, ptr %8, align 4, !tbaa !15
  %10 = icmp eq i32 %9, 2
  br i1 %10, label %11, label %12

11:                                               ; preds = %7
  store i32 3, ptr %8, align 4, !tbaa !15
  br label %12

12:                                               ; preds = %11, %7, %1
  %13 = getelementptr inbounds i8, ptr %0, i64 128
  %14 = load ptr, ptr %13, align 8, !tbaa !16
  %.not = icmp eq ptr %14, null
  br i1 %.not, label %276, label %15

15:                                               ; preds = %12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %16 unwind label %266

16:                                               ; preds = %15
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #4
  %17 = load ptr, ptr %13, align 8, !tbaa !16
  %18 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  %19 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %18)
          to label %20 unwind label %268

20:                                               ; preds = %16
  %21 = load ptr, ptr %13, align 8, !tbaa !16
  %22 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull @.str.6)
          to label %23 unwind label %268

23:                                               ; preds = %20
  %24 = load ptr, ptr %13, align 8, !tbaa !16
  %25 = load ptr, ptr %24, align 8, !tbaa !17
  %26 = getelementptr i8, ptr %25, i64 -24
  %27 = load i64, ptr %26, align 8
  %28 = getelementptr inbounds i8, ptr %24, i64 %27
  %29 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %28, i64 noundef 6)
  %30 = load ptr, ptr %13, align 8, !tbaa !16
  %31 = getelementptr inbounds i8, ptr %0, i64 116
  %32 = load i32, ptr %31, align 4, !tbaa !15
  %33 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %30, i32 noundef %32)
          to label %34 unwind label %268

34:                                               ; preds = %23
  %35 = load ptr, ptr %13, align 8, !tbaa !16
  %36 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull @.str.7)
          to label %37 unwind label %268

37:                                               ; preds = %34
  %38 = load ptr, ptr %13, align 8, !tbaa !16
  %39 = load ptr, ptr %38, align 8, !tbaa !17
  %40 = getelementptr i8, ptr %39, i64 -24
  %41 = load i64, ptr %40, align 8
  %42 = getelementptr inbounds i8, ptr %38, i64 %41
  %43 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %42, i64 noundef 15)
  %44 = load ptr, ptr %13, align 8, !tbaa !16
  %45 = getelementptr inbounds i8, ptr %0, i64 112
  %46 = load i32, ptr %45, align 8, !tbaa !19
  %47 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %44, i32 noundef %46)
          to label %48 unwind label %268

48:                                               ; preds = %37
  %49 = load ptr, ptr %13, align 8, !tbaa !16
  %50 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %51 unwind label %268

51:                                               ; preds = %48
  %52 = load ptr, ptr %13, align 8, !tbaa !16
  %53 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  %54 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef %53)
          to label %55 unwind label %268

55:                                               ; preds = %51
  %56 = load ptr, ptr %13, align 8, !tbaa !16
  %57 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull @.str.8)
          to label %58 unwind label %268

58:                                               ; preds = %55
  %59 = load ptr, ptr %13, align 8, !tbaa !16
  %60 = load ptr, ptr %59, align 8, !tbaa !17
  %61 = getelementptr i8, ptr %60, i64 -24
  %62 = load i64, ptr %61, align 8
  %63 = getelementptr inbounds i8, ptr %59, i64 %62
  %64 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %63, i64 noundef 5)
  %65 = load ptr, ptr %13, align 8, !tbaa !16
  %66 = load ptr, ptr %65, align 8, !tbaa !17
  %67 = getelementptr i8, ptr %66, i64 -24
  %68 = load i64, ptr %67, align 8
  %69 = getelementptr inbounds i8, ptr %65, i64 %68
  %70 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %69, i64 noundef 12)
  %71 = load ptr, ptr %13, align 8, !tbaa !16
  %72 = getelementptr inbounds i8, ptr %0, i64 8
  %73 = load double, ptr %72, align 8, !tbaa !20
  %74 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %71, double noundef %73)
          to label %75 unwind label %268

75:                                               ; preds = %58
  %76 = load ptr, ptr %13, align 8, !tbaa !16
  %77 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull @.str.9)
          to label %78 unwind label %268

78:                                               ; preds = %75
  %79 = load ptr, ptr %13, align 8, !tbaa !16
  %80 = load ptr, ptr %79, align 8, !tbaa !17
  %81 = getelementptr i8, ptr %80, i64 -24
  %82 = load i64, ptr %81, align 8
  %83 = getelementptr inbounds i8, ptr %79, i64 %82
  %84 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %83, i64 noundef 5)
  %85 = load ptr, ptr %13, align 8, !tbaa !16
  %86 = load ptr, ptr %85, align 8, !tbaa !17
  %87 = getelementptr i8, ptr %86, i64 -24
  %88 = load i64, ptr %87, align 8
  %89 = getelementptr inbounds i8, ptr %85, i64 %88
  %90 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %89, i64 noundef 12)
  %91 = load ptr, ptr %13, align 8, !tbaa !16
  %92 = getelementptr inbounds i8, ptr %0, i64 16
  %93 = load double, ptr %92, align 8, !tbaa !21
  %94 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %91, double noundef %93)
          to label %95 unwind label %268

95:                                               ; preds = %78
  %96 = load ptr, ptr %13, align 8, !tbaa !16
  %97 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %98 unwind label %268

98:                                               ; preds = %95
  %99 = load ptr, ptr %13, align 8, !tbaa !16
  %100 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  %101 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef %100)
          to label %102 unwind label %268

102:                                              ; preds = %98
  %103 = load ptr, ptr %13, align 8, !tbaa !16
  %104 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull @.str.10)
          to label %105 unwind label %268

105:                                              ; preds = %102
  %106 = load ptr, ptr %13, align 8, !tbaa !16
  %107 = load ptr, ptr %106, align 8, !tbaa !17
  %108 = getelementptr i8, ptr %107, i64 -24
  %109 = load i64, ptr %108, align 8
  %110 = getelementptr inbounds i8, ptr %106, i64 %109
  %111 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %110, i64 noundef 5)
  %112 = load ptr, ptr %13, align 8, !tbaa !16
  %113 = load ptr, ptr %112, align 8, !tbaa !17
  %114 = getelementptr i8, ptr %113, i64 -24
  %115 = load i64, ptr %114, align 8
  %116 = getelementptr inbounds i8, ptr %112, i64 %115
  %117 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %116, i64 noundef 12)
  %118 = load ptr, ptr %13, align 8, !tbaa !16
  %119 = getelementptr inbounds i8, ptr %0, i64 24
  %120 = load double, ptr %119, align 8, !tbaa !22
  %121 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %118, double noundef %120)
          to label %122 unwind label %268

122:                                              ; preds = %105
  %123 = load ptr, ptr %13, align 8, !tbaa !16
  %124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull @.str.11)
          to label %125 unwind label %268

125:                                              ; preds = %122
  %126 = load ptr, ptr %13, align 8, !tbaa !16
  %127 = load ptr, ptr %126, align 8, !tbaa !17
  %128 = getelementptr i8, ptr %127, i64 -24
  %129 = load i64, ptr %128, align 8
  %130 = getelementptr inbounds i8, ptr %126, i64 %129
  %131 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %130, i64 noundef 5)
  %132 = load ptr, ptr %13, align 8, !tbaa !16
  %133 = load ptr, ptr %132, align 8, !tbaa !17
  %134 = getelementptr i8, ptr %133, i64 -24
  %135 = load i64, ptr %134, align 8
  %136 = getelementptr inbounds i8, ptr %132, i64 %135
  %137 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %136, i64 noundef 12)
  %138 = load ptr, ptr %13, align 8, !tbaa !16
  %139 = getelementptr inbounds i8, ptr %0, i64 48
  %140 = load double, ptr %139, align 8, !tbaa !23
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %138, double noundef %140)
          to label %142 unwind label %268

142:                                              ; preds = %125
  %143 = load ptr, ptr %13, align 8, !tbaa !16
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %145 unwind label %268

145:                                              ; preds = %142
  %146 = load ptr, ptr %13, align 8, !tbaa !16
  %147 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef %147)
          to label %149 unwind label %268

149:                                              ; preds = %145
  %150 = load ptr, ptr %13, align 8, !tbaa !16
  %151 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull @.str.12)
          to label %152 unwind label %268

152:                                              ; preds = %149
  %153 = load ptr, ptr %13, align 8, !tbaa !16
  %154 = load ptr, ptr %153, align 8, !tbaa !17
  %155 = getelementptr i8, ptr %154, i64 -24
  %156 = load i64, ptr %155, align 8
  %157 = getelementptr inbounds i8, ptr %153, i64 %156
  %158 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %157, i64 noundef 5)
  %159 = load ptr, ptr %13, align 8, !tbaa !16
  %160 = load ptr, ptr %159, align 8, !tbaa !17
  %161 = getelementptr i8, ptr %160, i64 -24
  %162 = load i64, ptr %161, align 8
  %163 = getelementptr inbounds i8, ptr %159, i64 %162
  %164 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %163, i64 noundef 12)
  %165 = load ptr, ptr %13, align 8, !tbaa !16
  %166 = getelementptr inbounds i8, ptr %0, i64 32
  %167 = load double, ptr %166, align 8, !tbaa !24
  %168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %165, double noundef %167)
          to label %169 unwind label %268

169:                                              ; preds = %152
  %170 = load ptr, ptr %13, align 8, !tbaa !16
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef nonnull @.str.13)
          to label %172 unwind label %268

172:                                              ; preds = %169
  %173 = load ptr, ptr %13, align 8, !tbaa !16
  %174 = load ptr, ptr %173, align 8, !tbaa !17
  %175 = getelementptr i8, ptr %174, i64 -24
  %176 = load i64, ptr %175, align 8
  %177 = getelementptr inbounds i8, ptr %173, i64 %176
  %178 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %177, i64 noundef 5)
  %179 = load ptr, ptr %13, align 8, !tbaa !16
  %180 = load ptr, ptr %179, align 8, !tbaa !17
  %181 = getelementptr i8, ptr %180, i64 -24
  %182 = load i64, ptr %181, align 8
  %183 = getelementptr inbounds i8, ptr %179, i64 %182
  %184 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %183, i64 noundef 12)
  %185 = load ptr, ptr %13, align 8, !tbaa !16
  %186 = getelementptr inbounds i8, ptr %0, i64 40
  %187 = load double, ptr %186, align 8, !tbaa !25
  %188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %185, double noundef %187)
          to label %189 unwind label %268

189:                                              ; preds = %172
  %190 = load ptr, ptr %13, align 8, !tbaa !16
  %191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %192 unwind label %268

192:                                              ; preds = %189
  %193 = load ptr, ptr %13, align 8, !tbaa !16
  %194 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef %194)
          to label %196 unwind label %268

196:                                              ; preds = %192
  %197 = load ptr, ptr %13, align 8, !tbaa !16
  %198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull @.str.14)
          to label %199 unwind label %268

199:                                              ; preds = %196
  %200 = load ptr, ptr %13, align 8, !tbaa !16
  %201 = load ptr, ptr %200, align 8, !tbaa !17
  %202 = getelementptr i8, ptr %201, i64 -24
  %203 = load i64, ptr %202, align 8
  %204 = getelementptr inbounds i8, ptr %200, i64 %203
  %205 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %204, i64 noundef 1)
  %206 = load ptr, ptr %13, align 8, !tbaa !16
  %207 = load ptr, ptr %206, align 8, !tbaa !17
  %208 = getelementptr i8, ptr %207, i64 -24
  %209 = load i64, ptr %208, align 8
  %210 = getelementptr inbounds i8, ptr %206, i64 %209
  %211 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %210, i64 noundef 8)
  %212 = load ptr, ptr %13, align 8, !tbaa !16
  %213 = getelementptr inbounds i8, ptr %0, i64 56
  %214 = load double, ptr %213, align 8, !tbaa !26
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %212, double noundef %214)
          to label %216 unwind label %268

216:                                              ; preds = %199
  %217 = load ptr, ptr %13, align 8, !tbaa !16
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %217, ptr noundef nonnull @.str.15)
          to label %219 unwind label %268

219:                                              ; preds = %216
  %220 = load ptr, ptr %13, align 8, !tbaa !16
  %221 = load ptr, ptr %220, align 8, !tbaa !17
  %222 = getelementptr i8, ptr %221, i64 -24
  %223 = load i64, ptr %222, align 8
  %224 = getelementptr inbounds i8, ptr %220, i64 %223
  %225 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %224, i64 noundef 8)
  %226 = load ptr, ptr %13, align 8, !tbaa !16
  %227 = getelementptr inbounds i8, ptr %0, i64 120
  %228 = load i32, ptr %227, align 8, !tbaa !27
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %226, i32 noundef %228)
          to label %230 unwind label %268

230:                                              ; preds = %219
  %231 = load ptr, ptr %13, align 8, !tbaa !16
  %232 = load ptr, ptr %231, align 8, !tbaa !17
  %233 = getelementptr i8, ptr %232, i64 -24
  %234 = load i64, ptr %233, align 8
  %235 = getelementptr inbounds i8, ptr %231, i64 %234
  %236 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %235, i64 noundef 1)
  %237 = load ptr, ptr %13, align 8, !tbaa !16
  %238 = load ptr, ptr %237, align 8, !tbaa !17
  %239 = getelementptr i8, ptr %238, i64 -24
  %240 = load i64, ptr %239, align 8
  %241 = getelementptr inbounds i8, ptr %237, i64 %240
  %242 = call noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216) %241, i64 noundef 8)
  %243 = load ptr, ptr %13, align 8, !tbaa !16
  %244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %245 unwind label %268

245:                                              ; preds = %230
  %246 = load ptr, ptr %13, align 8, !tbaa !16
  %247 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef %247)
          to label %249 unwind label %268

249:                                              ; preds = %245
  %250 = load ptr, ptr %13, align 8, !tbaa !16
  %251 = load double, ptr %213, align 8, !tbaa !26
  %252 = load double, ptr %139, align 8, !tbaa !23
  %253 = fadd double %252, 1.000000e-30
  %254 = fdiv double %251, %253
  %255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %250, double noundef %254)
          to label %256 unwind label %268

256:                                              ; preds = %249
  %257 = load ptr, ptr %13, align 8, !tbaa !16
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %259 unwind label %268

259:                                              ; preds = %256
  %260 = load ptr, ptr %13, align 8, !tbaa !16
  %261 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %260, ptr noundef %261)
          to label %263 unwind label %268

263:                                              ; preds = %259
  %264 = load i32, ptr %31, align 4, !tbaa !15
  %265 = icmp ult i32 %264, 6
  br i1 %265, label %switch.lookup, label %274

266:                                              ; preds = %15
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #4
  br label %275

268:                                              ; preds = %switch.lookup, %.invoke, %259, %256, %249, %245, %230, %219, %216, %199, %196, %192, %189, %172, %169, %152, %149, %145, %142, %125, %122, %105, %102, %98, %95, %78, %75, %58, %55, %51, %48, %37, %34, %23, %20, %16
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  br label %275

switch.lookup:                                    ; preds = %263
  %270 = zext nneg i32 %264 to i64
  %switch.gep = getelementptr inbounds [6 x ptr], ptr @switch.table._ZN8lsqrBase19TerminationPrintOutEv, i64 0, i64 %270
  %switch.load = load ptr, ptr %switch.gep, align 8
  %271 = load ptr, ptr %13, align 8, !tbaa !16
  %272 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull %switch.load)
          to label %.invoke unwind label %268

.invoke:                                          ; preds = %switch.lookup
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %274 unwind label %268

274:                                              ; preds = %263, %.invoke
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #4
  br label %276

275:                                              ; preds = %268, %266
  %.pn = phi { ptr, i32 } [ %269, %268 ], [ %267, %266 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #4
  resume { ptr, i32 } %.pn

276:                                              ; preds = %274, %12
  ret void
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt8ios_base5widthEl(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) local_unnamed_addr #3 align 2

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

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

declare i32 @__gxx_personality_v0(...)

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

; 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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 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 = { 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, !10, i64 104}
!6 = !{!"_ZTS8lsqrBase", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !10, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !12, i64 128, !10, i64 136, !12, i64 144}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!6, !11, i64 116}
!16 = !{!6, !12, i64 128}
!17 = !{!18, !18, i64 0}
!18 = !{!"vtable pointer", !9, i64 0}
!19 = !{!6, !11, i64 112}
!20 = !{!6, !7, i64 8}
!21 = !{!6, !7, i64 16}
!22 = !{!6, !7, i64 24}
!23 = !{!6, !7, i64 48}
!24 = !{!6, !7, i64 32}
!25 = !{!6, !7, i64 40}
!26 = !{!6, !7, i64 56}
!27 = !{!6, !11, i64 120}


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