; LLVM IR from henrywatkins/PARAMAGNET :: src/Output.ll (Z9VTKOutputRSt14basic_ofstreamIcSt11char_traitsIcEEPdPSt7complexIdES7_)

; 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::complex" = type { { double, double } }

@vars = external constant i32, align 4
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [12 x i8], align 1
@nx = external constant i32, align 4
@ny = external constant i32, align 4
@nz = external constant i32, align 4
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@dx = external constant double, align 8
@dy = external constant double, align 8
@dz = external constant double, align 8
@.str.8 = external hidden unnamed_addr constant [12 x i8], align 1
@nout = external constant i32, align 4
@.str.9 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [21 x i8], align 1
@Vout = external constant i32, align 4
@.str.11 = external hidden unnamed_addr constant [24 x i8], align 1
@Tout = external constant i32, align 4
@.str.12 = external hidden unnamed_addr constant [28 x i8], align 1
@Eout = external constant i32, align 4
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@Bout = external constant i32, align 4
@.str.14 = external hidden unnamed_addr constant [29 x i8], align 1
@jout = external constant i32, align 4
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@qout = external constant i32, align 4
@.str.16 = external hidden unnamed_addr constant [24 x i8], align 1
@lout = external constant i32, align 4
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@l2out = external constant i32, align 4
@.str.18 = external hidden unnamed_addr constant [27 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: 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 @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #2 align 2

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

; 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: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZSt4normIdET_RKSt7complexIS0_E(ptr noundef nonnull align 8 dereferenceable(16)) #1

; Function Attrs: mustprogress uwtable
define dso_local void @_Z9VTKOutputRSt14basic_ofstreamIcSt11char_traitsIcEEPdPSt7complexIdES7_(ptr noundef nonnull align 8 dereferenceable(248) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) #2 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  %41 = load ptr, ptr %5, align 8, !tbaa !5
  %42 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef @.str.1)
  %43 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  %45 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef @.str.2)
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %47 = load ptr, ptr %5, align 8, !tbaa !5
  %48 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.3)
  %49 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %50 = load ptr, ptr %5, align 8, !tbaa !5
  %51 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef @.str.4)
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %53 = load ptr, ptr %5, align 8, !tbaa !5
  %54 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef @.str.5)
  %55 = load i32, ptr @nx, align 4, !tbaa !9
  %56 = sub nsw i32 %55, 2
  %57 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %54, i32 noundef %56)
  %58 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef @.str)
  %59 = load i32, ptr @ny, align 4, !tbaa !9
  %60 = sub nsw i32 %59, 2
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %58, i32 noundef %60)
  %62 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef @.str)
  %63 = load i32, ptr @nz, align 4, !tbaa !9
  %64 = sub nsw i32 %63, 2
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %62, i32 noundef %64)
  %66 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %67 = load ptr, ptr %5, align 8, !tbaa !5
  %68 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef @.str.6)
  %69 = load i32, ptr @nx, align 4, !tbaa !9
  %70 = sub nsw i32 %69, 2
  %71 = load i32, ptr @ny, align 4, !tbaa !9
  %72 = sub nsw i32 %71, 2
  %73 = mul nsw i32 %70, %72
  %74 = load i32, ptr @nz, align 4, !tbaa !9
  %75 = sub nsw i32 %74, 2
  %76 = mul nsw i32 %73, %75
  %77 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %68, i32 noundef %76)
  %78 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef @.str.7)
  %79 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %80

80:                                               ; preds = %128, %4
  %81 = load i32, ptr %10, align 4, !tbaa !9
  %82 = load i32, ptr @nz, align 4, !tbaa !9
  %83 = sub nsw i32 %82, 2
  %84 = icmp slt i32 %81, %83
  br i1 %84, label %86, label %85

85:                                               ; preds = %80
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  br label %131

86:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %87

87:                                               ; preds = %124, %86
  %88 = load i32, ptr %12, align 4, !tbaa !9
  %89 = load i32, ptr @ny, align 4, !tbaa !9
  %90 = sub nsw i32 %89, 2
  %91 = icmp slt i32 %88, %90
  br i1 %91, label %93, label %92

92:                                               ; preds = %87
  store i32 5, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  br label %127

93:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  store i32 0, ptr %13, align 4, !tbaa !9
  br label %94

94:                                               ; preds = %120, %93
  %95 = load i32, ptr %13, align 4, !tbaa !9
  %96 = load i32, ptr @nx, align 4, !tbaa !9
  %97 = sub nsw i32 %96, 2
  %98 = icmp slt i32 %95, %97
  br i1 %98, label %100, label %99

99:                                               ; preds = %94
  store i32 8, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  br label %123

100:                                              ; preds = %94
  %101 = load ptr, ptr %5, align 8, !tbaa !5
  %102 = load i32, ptr %13, align 4, !tbaa !9
  %103 = sitofp i32 %102 to double
  %104 = load double, ptr @dx, align 8, !tbaa !11
  %105 = fmul double %103, %104
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %101, double noundef %105)
  %107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef @.str)
  %108 = load i32, ptr %12, align 4, !tbaa !9
  %109 = sitofp i32 %108 to double
  %110 = load double, ptr @dy, align 8, !tbaa !11
  %111 = fmul double %109, %110
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %107, double noundef %111)
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef @.str)
  %114 = load i32, ptr %10, align 4, !tbaa !9
  %115 = sitofp i32 %114 to double
  %116 = load double, ptr @dz, align 8, !tbaa !11
  %117 = fmul double %115, %116
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %113, double noundef %117)
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %120

120:                                              ; preds = %100
  %121 = load i32, ptr %13, align 4, !tbaa !9
  %122 = add nsw i32 %121, 1
  store i32 %122, ptr %13, align 4, !tbaa !9
  br label %94, !llvm.loop !13

123:                                              ; preds = %99
  br label %124

124:                                              ; preds = %123
  %125 = load i32, ptr %12, align 4, !tbaa !9
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr %12, align 4, !tbaa !9
  br label %87, !llvm.loop !15

127:                                              ; preds = %92
  br label %128

128:                                              ; preds = %127
  %129 = load i32, ptr %10, align 4, !tbaa !9
  %130 = add nsw i32 %129, 1
  store i32 %130, ptr %10, align 4, !tbaa !9
  br label %80, !llvm.loop !16

131:                                              ; preds = %85
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef @.str.8)
  %134 = load i32, ptr @nx, align 4, !tbaa !9
  %135 = sub nsw i32 %134, 2
  %136 = load i32, ptr @ny, align 4, !tbaa !9
  %137 = sub nsw i32 %136, 2
  %138 = mul nsw i32 %135, %137
  %139 = load i32, ptr @nz, align 4, !tbaa !9
  %140 = sub nsw i32 %139, 2
  %141 = mul nsw i32 %138, %140
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %133, i32 noundef %141)
  %143 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %144 = load i32, ptr @nout, align 4, !tbaa !9
  %145 = icmp eq i32 %144, 1
  br i1 %145, label %146, label %207

146:                                              ; preds = %131
  %147 = load ptr, ptr %5, align 8, !tbaa !5
  %148 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef @.str.9)
  %149 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %150 = load ptr, ptr %5, align 8, !tbaa !5
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef @.str.10)
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  store i32 1, ptr %14, align 4, !tbaa !9
  br label %153

153:                                              ; preds = %203, %146
  %154 = load i32, ptr %14, align 4, !tbaa !9
  %155 = load i32, ptr @nz, align 4, !tbaa !9
  %156 = sub nsw i32 %155, 1
  %157 = icmp slt i32 %154, %156
  br i1 %157, label %159, label %158

158:                                              ; preds = %153
  store i32 11, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  br label %206

159:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  store i32 1, ptr %15, align 4, !tbaa !9
  br label %160

160:                                              ; preds = %199, %159
  %161 = load i32, ptr %15, align 4, !tbaa !9
  %162 = load i32, ptr @ny, align 4, !tbaa !9
  %163 = sub nsw i32 %162, 1
  %164 = icmp slt i32 %161, %163
  br i1 %164, label %166, label %165

165:                                              ; preds = %160
  store i32 14, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  br label %202

166:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  store i32 1, ptr %16, align 4, !tbaa !9
  br label %167

167:                                              ; preds = %195, %166
  %168 = load i32, ptr %16, align 4, !tbaa !9
  %169 = load i32, ptr @nx, align 4, !tbaa !9
  %170 = sub nsw i32 %169, 1
  %171 = icmp slt i32 %168, %170
  br i1 %171, label %173, label %172

172:                                              ; preds = %167
  store i32 17, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  br label %198

173:                                              ; preds = %167
  %174 = load i32, ptr @vars, align 4, !tbaa !9
  %175 = load i32, ptr %16, align 4, !tbaa !9
  %176 = load i32, ptr @nx, align 4, !tbaa !9
  %177 = load i32, ptr %15, align 4, !tbaa !9
  %178 = mul nsw i32 %176, %177
  %179 = add nsw i32 %175, %178
  %180 = load i32, ptr @nx, align 4, !tbaa !9
  %181 = load i32, ptr @ny, align 4, !tbaa !9
  %182 = mul nsw i32 %180, %181
  %183 = load i32, ptr %14, align 4, !tbaa !9
  %184 = mul nsw i32 %182, %183
  %185 = add nsw i32 %179, %184
  %186 = mul nsw i32 %174, %185
  store i32 %186, ptr %9, align 4, !tbaa !9
  %187 = load ptr, ptr %5, align 8, !tbaa !5
  %188 = load ptr, ptr %6, align 8, !tbaa !5
  %189 = load i32, ptr %9, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds double, ptr %188, i64 %190
  %192 = load double, ptr %191, align 8, !tbaa !11
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %187, double noundef %192)
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %195

195:                                              ; preds = %173
  %196 = load i32, ptr %16, align 4, !tbaa !9
  %197 = add nsw i32 %196, 1
  store i32 %197, ptr %16, align 4, !tbaa !9
  br label %167, !llvm.loop !17

198:                                              ; preds = %172
  br label %199

199:                                              ; preds = %198
  %200 = load i32, ptr %15, align 4, !tbaa !9
  %201 = add nsw i32 %200, 1
  store i32 %201, ptr %15, align 4, !tbaa !9
  br label %160, !llvm.loop !18

202:                                              ; preds = %165
  br label %203

203:                                              ; preds = %202
  %204 = load i32, ptr %14, align 4, !tbaa !9
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr %14, align 4, !tbaa !9
  br label %153, !llvm.loop !19

206:                                              ; preds = %158
  br label %207

207:                                              ; preds = %206, %131
  %208 = load i32, ptr @Vout, align 4, !tbaa !9
  %209 = icmp eq i32 %208, 1
  br i1 %209, label %210, label %285

210:                                              ; preds = %207
  %211 = load ptr, ptr %5, align 8, !tbaa !5
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %211, ptr noundef @.str.11)
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %212, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  store i32 1, ptr %17, align 4, !tbaa !9
  br label %214

214:                                              ; preds = %281, %210
  %215 = load i32, ptr %17, align 4, !tbaa !9
  %216 = load i32, ptr @nz, align 4, !tbaa !9
  %217 = sub nsw i32 %216, 1
  %218 = icmp slt i32 %215, %217
  br i1 %218, label %220, label %219

219:                                              ; preds = %214
  store i32 20, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br label %284

220:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  store i32 1, ptr %18, align 4, !tbaa !9
  br label %221

221:                                              ; preds = %277, %220
  %222 = load i32, ptr %18, align 4, !tbaa !9
  %223 = load i32, ptr @ny, align 4, !tbaa !9
  %224 = sub nsw i32 %223, 1
  %225 = icmp slt i32 %222, %224
  br i1 %225, label %227, label %226

226:                                              ; preds = %221
  store i32 23, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  br label %280

227:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %228

228:                                              ; preds = %273, %227
  %229 = load i32, ptr %19, align 4, !tbaa !9
  %230 = load i32, ptr @nx, align 4, !tbaa !9
  %231 = sub nsw i32 %230, 1
  %232 = icmp slt i32 %229, %231
  br i1 %232, label %234, label %233

233:                                              ; preds = %228
  store i32 26, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  br label %276

234:                                              ; preds = %228
  %235 = load i32, ptr @vars, align 4, !tbaa !9
  %236 = load i32, ptr %19, align 4, !tbaa !9
  %237 = load i32, ptr @nx, align 4, !tbaa !9
  %238 = load i32, ptr %18, align 4, !tbaa !9
  %239 = mul nsw i32 %237, %238
  %240 = add nsw i32 %236, %239
  %241 = load i32, ptr @nx, align 4, !tbaa !9
  %242 = load i32, ptr @ny, align 4, !tbaa !9
  %243 = mul nsw i32 %241, %242
  %244 = load i32, ptr %17, align 4, !tbaa !9
  %245 = mul nsw i32 %243, %244
  %246 = add nsw i32 %240, %245
  %247 = mul nsw i32 %235, %246
  store i32 %247, ptr %9, align 4, !tbaa !9
  %248 = load ptr, ptr %5, align 8, !tbaa !5
  %249 = load ptr, ptr %6, align 8, !tbaa !5
  %250 = load i32, ptr %9, align 4, !tbaa !9
  %251 = add nsw i32 %250, 1
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds double, ptr %249, i64 %252
  %254 = load double, ptr %253, align 8, !tbaa !11
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %248, double noundef %254)
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef @.str)
  %257 = load ptr, ptr %6, align 8, !tbaa !5
  %258 = load i32, ptr %9, align 4, !tbaa !9
  %259 = add nsw i32 %258, 2
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds double, ptr %257, i64 %260
  %262 = load double, ptr %261, align 8, !tbaa !11
  %263 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %256, double noundef %262)
  %264 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef @.str)
  %265 = load ptr, ptr %6, align 8, !tbaa !5
  %266 = load i32, ptr %9, align 4, !tbaa !9
  %267 = add nsw i32 %266, 3
  %268 = sext i32 %267 to i64
  %269 = getelementptr inbounds double, ptr %265, i64 %268
  %270 = load double, ptr %269, align 8, !tbaa !11
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %264, double noundef %270)
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %273

273:                                              ; preds = %234
  %274 = load i32, ptr %19, align 4, !tbaa !9
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr %19, align 4, !tbaa !9
  br label %228, !llvm.loop !20

276:                                              ; preds = %233
  br label %277

277:                                              ; preds = %276
  %278 = load i32, ptr %18, align 4, !tbaa !9
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr %18, align 4, !tbaa !9
  br label %221, !llvm.loop !21

280:                                              ; preds = %226
  br label %281

281:                                              ; preds = %280
  %282 = load i32, ptr %17, align 4, !tbaa !9
  %283 = add nsw i32 %282, 1
  store i32 %283, ptr %17, align 4, !tbaa !9
  br label %214, !llvm.loop !22

284:                                              ; preds = %219
  br label %285

285:                                              ; preds = %284, %207
  %286 = load i32, ptr @Tout, align 4, !tbaa !9
  %287 = icmp eq i32 %286, 1
  br i1 %287, label %288, label %350

288:                                              ; preds = %285
  %289 = load ptr, ptr %5, align 8, !tbaa !5
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef @.str.12)
  %291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %292 = load ptr, ptr %5, align 8, !tbaa !5
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %292, ptr noundef @.str.10)
  %294 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %293, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %295

295:                                              ; preds = %346, %288
  %296 = load i32, ptr %20, align 4, !tbaa !9
  %297 = load i32, ptr @nz, align 4, !tbaa !9
  %298 = sub nsw i32 %297, 1
  %299 = icmp slt i32 %296, %298
  br i1 %299, label %301, label %300

300:                                              ; preds = %295
  store i32 29, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  br label %349

301:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 1, ptr %21, align 4, !tbaa !9
  br label %302

302:                                              ; preds = %342, %301
  %303 = load i32, ptr %21, align 4, !tbaa !9
  %304 = load i32, ptr @ny, align 4, !tbaa !9
  %305 = sub nsw i32 %304, 1
  %306 = icmp slt i32 %303, %305
  br i1 %306, label %308, label %307

307:                                              ; preds = %302
  store i32 32, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  br label %345

308:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 1, ptr %22, align 4, !tbaa !9
  br label %309

309:                                              ; preds = %338, %308
  %310 = load i32, ptr %22, align 4, !tbaa !9
  %311 = load i32, ptr @nx, align 4, !tbaa !9
  %312 = sub nsw i32 %311, 1
  %313 = icmp slt i32 %310, %312
  br i1 %313, label %315, label %314

314:                                              ; preds = %309
  store i32 35, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %341

315:                                              ; preds = %309
  %316 = load i32, ptr @vars, align 4, !tbaa !9
  %317 = load i32, ptr %22, align 4, !tbaa !9
  %318 = load i32, ptr @nx, align 4, !tbaa !9
  %319 = load i32, ptr %21, align 4, !tbaa !9
  %320 = mul nsw i32 %318, %319
  %321 = add nsw i32 %317, %320
  %322 = load i32, ptr @nx, align 4, !tbaa !9
  %323 = load i32, ptr @ny, align 4, !tbaa !9
  %324 = mul nsw i32 %322, %323
  %325 = load i32, ptr %20, align 4, !tbaa !9
  %326 = mul nsw i32 %324, %325
  %327 = add nsw i32 %321, %326
  %328 = mul nsw i32 %316, %327
  store i32 %328, ptr %9, align 4, !tbaa !9
  %329 = load ptr, ptr %5, align 8, !tbaa !5
  %330 = load ptr, ptr %6, align 8, !tbaa !5
  %331 = load i32, ptr %9, align 4, !tbaa !9
  %332 = add nsw i32 %331, 4
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds double, ptr %330, i64 %333
  %335 = load double, ptr %334, align 8, !tbaa !11
  %336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %329, double noundef %335)
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %336, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %338

338:                                              ; preds = %315
  %339 = load i32, ptr %22, align 4, !tbaa !9
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr %22, align 4, !tbaa !9
  br label %309, !llvm.loop !23

341:                                              ; preds = %314
  br label %342

342:                                              ; preds = %341
  %343 = load i32, ptr %21, align 4, !tbaa !9
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr %21, align 4, !tbaa !9
  br label %302, !llvm.loop !24

345:                                              ; preds = %307
  br label %346

346:                                              ; preds = %345
  %347 = load i32, ptr %20, align 4, !tbaa !9
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr %20, align 4, !tbaa !9
  br label %295, !llvm.loop !25

349:                                              ; preds = %300
  br label %350

350:                                              ; preds = %349, %285
  %351 = load i32, ptr @Eout, align 4, !tbaa !9
  %352 = icmp eq i32 %351, 1
  br i1 %352, label %353, label %428

353:                                              ; preds = %350
  %354 = load ptr, ptr %5, align 8, !tbaa !5
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef @.str.13)
  %356 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  store i32 1, ptr %23, align 4, !tbaa !9
  br label %357

357:                                              ; preds = %424, %353
  %358 = load i32, ptr %23, align 4, !tbaa !9
  %359 = load i32, ptr @nz, align 4, !tbaa !9
  %360 = sub nsw i32 %359, 1
  %361 = icmp slt i32 %358, %360
  br i1 %361, label %363, label %362

362:                                              ; preds = %357
  store i32 38, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  br label %427

363:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  store i32 1, ptr %24, align 4, !tbaa !9
  br label %364

364:                                              ; preds = %420, %363
  %365 = load i32, ptr %24, align 4, !tbaa !9
  %366 = load i32, ptr @ny, align 4, !tbaa !9
  %367 = sub nsw i32 %366, 1
  %368 = icmp slt i32 %365, %367
  br i1 %368, label %370, label %369

369:                                              ; preds = %364
  store i32 41, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br label %423

370:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %371

371:                                              ; preds = %416, %370
  %372 = load i32, ptr %25, align 4, !tbaa !9
  %373 = load i32, ptr @nx, align 4, !tbaa !9
  %374 = sub nsw i32 %373, 1
  %375 = icmp slt i32 %372, %374
  br i1 %375, label %377, label %376

376:                                              ; preds = %371
  store i32 44, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  br label %419

377:                                              ; preds = %371
  %378 = load i32, ptr @vars, align 4, !tbaa !9
  %379 = load i32, ptr %25, align 4, !tbaa !9
  %380 = load i32, ptr @nx, align 4, !tbaa !9
  %381 = load i32, ptr %24, align 4, !tbaa !9
  %382 = mul nsw i32 %380, %381
  %383 = add nsw i32 %379, %382
  %384 = load i32, ptr @nx, align 4, !tbaa !9
  %385 = load i32, ptr @ny, align 4, !tbaa !9
  %386 = mul nsw i32 %384, %385
  %387 = load i32, ptr %23, align 4, !tbaa !9
  %388 = mul nsw i32 %386, %387
  %389 = add nsw i32 %383, %388
  %390 = mul nsw i32 %378, %389
  store i32 %390, ptr %9, align 4, !tbaa !9
  %391 = load ptr, ptr %5, align 8, !tbaa !5
  %392 = load ptr, ptr %6, align 8, !tbaa !5
  %393 = load i32, ptr %9, align 4, !tbaa !9
  %394 = add nsw i32 %393, 5
  %395 = sext i32 %394 to i64
  %396 = getelementptr inbounds double, ptr %392, i64 %395
  %397 = load double, ptr %396, align 8, !tbaa !11
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %391, double noundef %397)
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef @.str)
  %400 = load ptr, ptr %6, align 8, !tbaa !5
  %401 = load i32, ptr %9, align 4, !tbaa !9
  %402 = add nsw i32 %401, 6
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds double, ptr %400, i64 %403
  %405 = load double, ptr %404, align 8, !tbaa !11
  %406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %399, double noundef %405)
  %407 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef @.str)
  %408 = load ptr, ptr %6, align 8, !tbaa !5
  %409 = load i32, ptr %9, align 4, !tbaa !9
  %410 = add nsw i32 %409, 7
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds double, ptr %408, i64 %411
  %413 = load double, ptr %412, align 8, !tbaa !11
  %414 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %407, double noundef %413)
  %415 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %414, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %416

416:                                              ; preds = %377
  %417 = load i32, ptr %25, align 4, !tbaa !9
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr %25, align 4, !tbaa !9
  br label %371, !llvm.loop !26

419:                                              ; preds = %376
  br label %420

420:                                              ; preds = %419
  %421 = load i32, ptr %24, align 4, !tbaa !9
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr %24, align 4, !tbaa !9
  br label %364, !llvm.loop !27

423:                                              ; preds = %369
  br label %424

424:                                              ; preds = %423
  %425 = load i32, ptr %23, align 4, !tbaa !9
  %426 = add nsw i32 %425, 1
  store i32 %426, ptr %23, align 4, !tbaa !9
  br label %357, !llvm.loop !28

427:                                              ; preds = %362
  br label %428

428:                                              ; preds = %427, %350
  %429 = load i32, ptr @Bout, align 4, !tbaa !9
  %430 = icmp eq i32 %429, 1
  br i1 %430, label %431, label %506

431:                                              ; preds = %428
  %432 = load ptr, ptr %5, align 8, !tbaa !5
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef @.str.14)
  %434 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %433, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %435

435:                                              ; preds = %502, %431
  %436 = load i32, ptr %26, align 4, !tbaa !9
  %437 = load i32, ptr @nz, align 4, !tbaa !9
  %438 = sub nsw i32 %437, 1
  %439 = icmp slt i32 %436, %438
  br i1 %439, label %441, label %440

440:                                              ; preds = %435
  store i32 47, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  br label %505

441:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %498, %441
  %443 = load i32, ptr %27, align 4, !tbaa !9
  %444 = load i32, ptr @ny, align 4, !tbaa !9
  %445 = sub nsw i32 %444, 1
  %446 = icmp slt i32 %443, %445
  br i1 %446, label %448, label %447

447:                                              ; preds = %442
  store i32 50, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %501

448:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %449

449:                                              ; preds = %494, %448
  %450 = load i32, ptr %28, align 4, !tbaa !9
  %451 = load i32, ptr @nx, align 4, !tbaa !9
  %452 = sub nsw i32 %451, 1
  %453 = icmp slt i32 %450, %452
  br i1 %453, label %455, label %454

454:                                              ; preds = %449
  store i32 53, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  br label %497

455:                                              ; preds = %449
  %456 = load i32, ptr @vars, align 4, !tbaa !9
  %457 = load i32, ptr %28, align 4, !tbaa !9
  %458 = load i32, ptr @nx, align 4, !tbaa !9
  %459 = load i32, ptr %27, align 4, !tbaa !9
  %460 = mul nsw i32 %458, %459
  %461 = add nsw i32 %457, %460
  %462 = load i32, ptr @nx, align 4, !tbaa !9
  %463 = load i32, ptr @ny, align 4, !tbaa !9
  %464 = mul nsw i32 %462, %463
  %465 = load i32, ptr %26, align 4, !tbaa !9
  %466 = mul nsw i32 %464, %465
  %467 = add nsw i32 %461, %466
  %468 = mul nsw i32 %456, %467
  store i32 %468, ptr %9, align 4, !tbaa !9
  %469 = load ptr, ptr %5, align 8, !tbaa !5
  %470 = load ptr, ptr %6, align 8, !tbaa !5
  %471 = load i32, ptr %9, align 4, !tbaa !9
  %472 = add nsw i32 %471, 8
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds double, ptr %470, i64 %473
  %475 = load double, ptr %474, align 8, !tbaa !11
  %476 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %469, double noundef %475)
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %476, ptr noundef @.str)
  %478 = load ptr, ptr %6, align 8, !tbaa !5
  %479 = load i32, ptr %9, align 4, !tbaa !9
  %480 = add nsw i32 %479, 9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds double, ptr %478, i64 %481
  %483 = load double, ptr %482, align 8, !tbaa !11
  %484 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %477, double noundef %483)
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %484, ptr noundef @.str)
  %486 = load ptr, ptr %6, align 8, !tbaa !5
  %487 = load i32, ptr %9, align 4, !tbaa !9
  %488 = add nsw i32 %487, 10
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds double, ptr %486, i64 %489
  %491 = load double, ptr %490, align 8, !tbaa !11
  %492 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %485, double noundef %491)
  %493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %492, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %494

494:                                              ; preds = %455
  %495 = load i32, ptr %28, align 4, !tbaa !9
  %496 = add nsw i32 %495, 1
  store i32 %496, ptr %28, align 4, !tbaa !9
  br label %449, !llvm.loop !29

497:                                              ; preds = %454
  br label %498

498:                                              ; preds = %497
  %499 = load i32, ptr %27, align 4, !tbaa !9
  %500 = add nsw i32 %499, 1
  store i32 %500, ptr %27, align 4, !tbaa !9
  br label %442, !llvm.loop !30

501:                                              ; preds = %447
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr %26, align 4, !tbaa !9
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %26, align 4, !tbaa !9
  br label %435, !llvm.loop !31

505:                                              ; preds = %440
  br label %506

506:                                              ; preds = %505, %428
  %507 = load i32, ptr @jout, align 4, !tbaa !9
  %508 = icmp eq i32 %507, 1
  br i1 %508, label %509, label %584

509:                                              ; preds = %506
  %510 = load ptr, ptr %5, align 8, !tbaa !5
  %511 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %510, ptr noundef @.str.15)
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  store i32 1, ptr %29, align 4, !tbaa !9
  br label %513

513:                                              ; preds = %580, %509
  %514 = load i32, ptr %29, align 4, !tbaa !9
  %515 = load i32, ptr @nz, align 4, !tbaa !9
  %516 = sub nsw i32 %515, 1
  %517 = icmp slt i32 %514, %516
  br i1 %517, label %519, label %518

518:                                              ; preds = %513
  store i32 56, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %583

519:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %520

520:                                              ; preds = %576, %519
  %521 = load i32, ptr %30, align 4, !tbaa !9
  %522 = load i32, ptr @ny, align 4, !tbaa !9
  %523 = sub nsw i32 %522, 1
  %524 = icmp slt i32 %521, %523
  br i1 %524, label %526, label %525

525:                                              ; preds = %520
  store i32 59, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  br label %579

526:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %527

527:                                              ; preds = %572, %526
  %528 = load i32, ptr %31, align 4, !tbaa !9
  %529 = load i32, ptr @nx, align 4, !tbaa !9
  %530 = sub nsw i32 %529, 1
  %531 = icmp slt i32 %528, %530
  br i1 %531, label %533, label %532

532:                                              ; preds = %527
  store i32 62, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  br label %575

533:                                              ; preds = %527
  %534 = load i32, ptr @vars, align 4, !tbaa !9
  %535 = load i32, ptr %31, align 4, !tbaa !9
  %536 = load i32, ptr @nx, align 4, !tbaa !9
  %537 = load i32, ptr %30, align 4, !tbaa !9
  %538 = mul nsw i32 %536, %537
  %539 = add nsw i32 %535, %538
  %540 = load i32, ptr @nx, align 4, !tbaa !9
  %541 = load i32, ptr @ny, align 4, !tbaa !9
  %542 = mul nsw i32 %540, %541
  %543 = load i32, ptr %29, align 4, !tbaa !9
  %544 = mul nsw i32 %542, %543
  %545 = add nsw i32 %539, %544
  %546 = mul nsw i32 %534, %545
  store i32 %546, ptr %9, align 4, !tbaa !9
  %547 = load ptr, ptr %5, align 8, !tbaa !5
  %548 = load ptr, ptr %6, align 8, !tbaa !5
  %549 = load i32, ptr %9, align 4, !tbaa !9
  %550 = add nsw i32 %549, 11
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds double, ptr %548, i64 %551
  %553 = load double, ptr %552, align 8, !tbaa !11
  %554 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %547, double noundef %553)
  %555 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %554, ptr noundef @.str)
  %556 = load ptr, ptr %6, align 8, !tbaa !5
  %557 = load i32, ptr %9, align 4, !tbaa !9
  %558 = add nsw i32 %557, 12
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds double, ptr %556, i64 %559
  %561 = load double, ptr %560, align 8, !tbaa !11
  %562 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %555, double noundef %561)
  %563 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %562, ptr noundef @.str)
  %564 = load ptr, ptr %6, align 8, !tbaa !5
  %565 = load i32, ptr %9, align 4, !tbaa !9
  %566 = add nsw i32 %565, 13
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds double, ptr %564, i64 %567
  %569 = load double, ptr %568, align 8, !tbaa !11
  %570 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %563, double noundef %569)
  %571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %570, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %572

572:                                              ; preds = %533
  %573 = load i32, ptr %31, align 4, !tbaa !9
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr %31, align 4, !tbaa !9
  br label %527, !llvm.loop !32

575:                                              ; preds = %532
  br label %576

576:                                              ; preds = %575
  %577 = load i32, ptr %30, align 4, !tbaa !9
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr %30, align 4, !tbaa !9
  br label %520, !llvm.loop !33

579:                                              ; preds = %525
  br label %580

580:                                              ; preds = %579
  %581 = load i32, ptr %29, align 4, !tbaa !9
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr %29, align 4, !tbaa !9
  br label %513, !llvm.loop !34

583:                                              ; preds = %518
  br label %584

584:                                              ; preds = %583, %506
  %585 = load i32, ptr @qout, align 4, !tbaa !9
  %586 = icmp eq i32 %585, 1
  br i1 %586, label %587, label %662

587:                                              ; preds = %584
  %588 = load ptr, ptr %5, align 8, !tbaa !5
  %589 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %588, ptr noundef @.str.16)
  %590 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %589, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %591

591:                                              ; preds = %658, %587
  %592 = load i32, ptr %32, align 4, !tbaa !9
  %593 = load i32, ptr @nz, align 4, !tbaa !9
  %594 = sub nsw i32 %593, 1
  %595 = icmp slt i32 %592, %594
  br i1 %595, label %597, label %596

596:                                              ; preds = %591
  store i32 65, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  br label %661

597:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  store i32 1, ptr %33, align 4, !tbaa !9
  br label %598

598:                                              ; preds = %654, %597
  %599 = load i32, ptr %33, align 4, !tbaa !9
  %600 = load i32, ptr @ny, align 4, !tbaa !9
  %601 = sub nsw i32 %600, 1
  %602 = icmp slt i32 %599, %601
  br i1 %602, label %604, label %603

603:                                              ; preds = %598
  store i32 68, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  br label %657

604:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %605

605:                                              ; preds = %650, %604
  %606 = load i32, ptr %34, align 4, !tbaa !9
  %607 = load i32, ptr @nx, align 4, !tbaa !9
  %608 = sub nsw i32 %607, 1
  %609 = icmp slt i32 %606, %608
  br i1 %609, label %611, label %610

610:                                              ; preds = %605
  store i32 71, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  br label %653

611:                                              ; preds = %605
  %612 = load i32, ptr @vars, align 4, !tbaa !9
  %613 = load i32, ptr %34, align 4, !tbaa !9
  %614 = load i32, ptr @nx, align 4, !tbaa !9
  %615 = load i32, ptr %33, align 4, !tbaa !9
  %616 = mul nsw i32 %614, %615
  %617 = add nsw i32 %613, %616
  %618 = load i32, ptr @nx, align 4, !tbaa !9
  %619 = load i32, ptr @ny, align 4, !tbaa !9
  %620 = mul nsw i32 %618, %619
  %621 = load i32, ptr %32, align 4, !tbaa !9
  %622 = mul nsw i32 %620, %621
  %623 = add nsw i32 %617, %622
  %624 = mul nsw i32 %612, %623
  store i32 %624, ptr %9, align 4, !tbaa !9
  %625 = load ptr, ptr %5, align 8, !tbaa !5
  %626 = load ptr, ptr %6, align 8, !tbaa !5
  %627 = load i32, ptr %9, align 4, !tbaa !9
  %628 = add nsw i32 %627, 14
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds double, ptr %626, i64 %629
  %631 = load double, ptr %630, align 8, !tbaa !11
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %625, double noundef %631)
  %633 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %632, ptr noundef @.str)
  %634 = load ptr, ptr %6, align 8, !tbaa !5
  %635 = load i32, ptr %9, align 4, !tbaa !9
  %636 = add nsw i32 %635, 15
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds double, ptr %634, i64 %637
  %639 = load double, ptr %638, align 8, !tbaa !11
  %640 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %633, double noundef %639)
  %641 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %640, ptr noundef @.str)
  %642 = load ptr, ptr %6, align 8, !tbaa !5
  %643 = load i32, ptr %9, align 4, !tbaa !9
  %644 = add nsw i32 %643, 16
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds double, ptr %642, i64 %645
  %647 = load double, ptr %646, align 8, !tbaa !11
  %648 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %641, double noundef %647)
  %649 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %648, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %650

650:                                              ; preds = %611
  %651 = load i32, ptr %34, align 4, !tbaa !9
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr %34, align 4, !tbaa !9
  br label %605, !llvm.loop !35

653:                                              ; preds = %610
  br label %654

654:                                              ; preds = %653
  %655 = load i32, ptr %33, align 4, !tbaa !9
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr %33, align 4, !tbaa !9
  br label %598, !llvm.loop !36

657:                                              ; preds = %603
  br label %658

658:                                              ; preds = %657
  %659 = load i32, ptr %32, align 4, !tbaa !9
  %660 = add nsw i32 %659, 1
  store i32 %660, ptr %32, align 4, !tbaa !9
  br label %591, !llvm.loop !37

661:                                              ; preds = %596
  br label %662

662:                                              ; preds = %661, %584
  %663 = load i32, ptr @lout, align 4, !tbaa !9
  %664 = icmp eq i32 %663, 1
  br i1 %664, label %665, label %724

665:                                              ; preds = %662
  %666 = load ptr, ptr %5, align 8, !tbaa !5
  %667 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %666, ptr noundef @.str.17)
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %667, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %669 = load ptr, ptr %5, align 8, !tbaa !5
  %670 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %669, ptr noundef @.str.10)
  %671 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %670, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  store i32 1, ptr %35, align 4, !tbaa !9
  br label %672

672:                                              ; preds = %720, %665
  %673 = load i32, ptr %35, align 4, !tbaa !9
  %674 = load i32, ptr @nz, align 4, !tbaa !9
  %675 = sub nsw i32 %674, 1
  %676 = icmp slt i32 %673, %675
  br i1 %676, label %678, label %677

677:                                              ; preds = %672
  store i32 74, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  br label %723

678:                                              ; preds = %672
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  store i32 1, ptr %36, align 4, !tbaa !9
  br label %679

679:                                              ; preds = %716, %678
  %680 = load i32, ptr %36, align 4, !tbaa !9
  %681 = load i32, ptr @ny, align 4, !tbaa !9
  %682 = sub nsw i32 %681, 1
  %683 = icmp slt i32 %680, %682
  br i1 %683, label %685, label %684

684:                                              ; preds = %679
  store i32 77, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  br label %719

685:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %686

686:                                              ; preds = %712, %685
  %687 = load i32, ptr %37, align 4, !tbaa !9
  %688 = load i32, ptr @nx, align 4, !tbaa !9
  %689 = sub nsw i32 %688, 1
  %690 = icmp slt i32 %687, %689
  br i1 %690, label %692, label %691

691:                                              ; preds = %686
  store i32 80, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  br label %715

692:                                              ; preds = %686
  %693 = load i32, ptr %37, align 4, !tbaa !9
  %694 = load i32, ptr @nx, align 4, !tbaa !9
  %695 = load i32, ptr %36, align 4, !tbaa !9
  %696 = mul nsw i32 %694, %695
  %697 = add nsw i32 %693, %696
  %698 = load i32, ptr @nx, align 4, !tbaa !9
  %699 = load i32, ptr @ny, align 4, !tbaa !9
  %700 = mul nsw i32 %698, %699
  %701 = load i32, ptr %35, align 4, !tbaa !9
  %702 = mul nsw i32 %700, %701
  %703 = add nsw i32 %697, %702
  store i32 %703, ptr %9, align 4, !tbaa !9
  %704 = load ptr, ptr %5, align 8, !tbaa !5
  %705 = load ptr, ptr %7, align 8, !tbaa !5
  %706 = load i32, ptr %9, align 4, !tbaa !9
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds %"class.std::complex", ptr %705, i64 %707
  %709 = call noundef double @_ZSt4normIdET_RKSt7complexIS0_E(ptr noundef nonnull align 8 dereferenceable(16) %708)
  %710 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %704, double noundef %709)
  %711 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %710, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %712

712:                                              ; preds = %692
  %713 = load i32, ptr %37, align 4, !tbaa !9
  %714 = add nsw i32 %713, 1
  store i32 %714, ptr %37, align 4, !tbaa !9
  br label %686, !llvm.loop !38

715:                                              ; preds = %691
  br label %716

716:                                              ; preds = %715
  %717 = load i32, ptr %36, align 4, !tbaa !9
  %718 = add nsw i32 %717, 1
  store i32 %718, ptr %36, align 4, !tbaa !9
  br label %679, !llvm.loop !39

719:                                              ; preds = %684
  br label %720

720:                                              ; preds = %719
  %721 = load i32, ptr %35, align 4, !tbaa !9
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr %35, align 4, !tbaa !9
  br label %672, !llvm.loop !40

723:                                              ; preds = %677
  br label %724

724:                                              ; preds = %723, %662
  %725 = load i32, ptr @l2out, align 4, !tbaa !9
  %726 = icmp eq i32 %725, 1
  br i1 %726, label %727, label %786

727:                                              ; preds = %724
  %728 = load ptr, ptr %5, align 8, !tbaa !5
  %729 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %728, ptr noundef @.str.18)
  %730 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %729, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %731 = load ptr, ptr %5, align 8, !tbaa !5
  %732 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %731, ptr noundef @.str.10)
  %733 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %732, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  store i32 1, ptr %38, align 4, !tbaa !9
  br label %734

734:                                              ; preds = %782, %727
  %735 = load i32, ptr %38, align 4, !tbaa !9
  %736 = load i32, ptr @nz, align 4, !tbaa !9
  %737 = sub nsw i32 %736, 1
  %738 = icmp slt i32 %735, %737
  br i1 %738, label %740, label %739

739:                                              ; preds = %734
  store i32 83, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  br label %785

740:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  store i32 1, ptr %39, align 4, !tbaa !9
  br label %741

741:                                              ; preds = %778, %740
  %742 = load i32, ptr %39, align 4, !tbaa !9
  %743 = load i32, ptr @ny, align 4, !tbaa !9
  %744 = sub nsw i32 %743, 1
  %745 = icmp slt i32 %742, %744
  br i1 %745, label %747, label %746

746:                                              ; preds = %741
  store i32 86, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  br label %781

747:                                              ; preds = %741
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  store i32 1, ptr %40, align 4, !tbaa !9
  br label %748

748:                                              ; preds = %774, %747
  %749 = load i32, ptr %40, align 4, !tbaa !9
  %750 = load i32, ptr @nx, align 4, !tbaa !9
  %751 = sub nsw i32 %750, 1
  %752 = icmp slt i32 %749, %751
  br i1 %752, label %754, label %753

753:                                              ; preds = %748
  store i32 89, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  br label %777

754:                                              ; preds = %748
  %755 = load i32, ptr %40, align 4, !tbaa !9
  %756 = load i32, ptr @nx, align 4, !tbaa !9
  %757 = load i32, ptr %39, align 4, !tbaa !9
  %758 = mul nsw i32 %756, %757
  %759 = add nsw i32 %755, %758
  %760 = load i32, ptr @nx, align 4, !tbaa !9
  %761 = load i32, ptr @ny, align 4, !tbaa !9
  %762 = mul nsw i32 %760, %761
  %763 = load i32, ptr %38, align 4, !tbaa !9
  %764 = mul nsw i32 %762, %763
  %765 = add nsw i32 %759, %764
  store i32 %765, ptr %9, align 4, !tbaa !9
  %766 = load ptr, ptr %5, align 8, !tbaa !5
  %767 = load ptr, ptr %8, align 8, !tbaa !5
  %768 = load i32, ptr %9, align 4, !tbaa !9
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds %"class.std::complex", ptr %767, i64 %769
  %771 = call noundef double @_ZSt4normIdET_RKSt7complexIS0_E(ptr noundef nonnull align 8 dereferenceable(16) %770)
  %772 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %766, double noundef %771)
  %773 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %772, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %774

774:                                              ; preds = %754
  %775 = load i32, ptr %40, align 4, !tbaa !9
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr %40, align 4, !tbaa !9
  br label %748, !llvm.loop !41

777:                                              ; preds = %753
  br label %778

778:                                              ; preds = %777
  %779 = load i32, ptr %39, align 4, !tbaa !9
  %780 = add nsw i32 %779, 1
  store i32 %780, ptr %39, align 4, !tbaa !9
  br label %741, !llvm.loop !42

781:                                              ; preds = %746
  br label %782

782:                                              ; preds = %781
  %783 = load i32, ptr %38, align 4, !tbaa !9
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %38, align 4, !tbaa !9
  br label %734, !llvm.loop !43

785:                                              ; preds = %739
  br label %786

786:                                              ; preds = %785, %724
  %787 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(248) %787)
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  ret void
}

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(248)) #2 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 = { "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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}


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

%"class.std::complex" = type { { double, double } }

@vars = external local_unnamed_addr constant i32, align 4
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [12 x i8], align 1
@nx = external local_unnamed_addr constant i32, align 4
@ny = external local_unnamed_addr constant i32, align 4
@nz = external local_unnamed_addr constant i32, align 4
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@dx = external local_unnamed_addr constant double, align 8
@dy = external local_unnamed_addr constant double, align 8
@dz = external local_unnamed_addr constant double, align 8
@.str.8 = external hidden unnamed_addr constant [12 x i8], align 1
@nout = external local_unnamed_addr constant i32, align 4
@.str.9 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [21 x i8], align 1
@Vout = external local_unnamed_addr constant i32, align 4
@.str.11 = external hidden unnamed_addr constant [24 x i8], align 1
@Tout = external local_unnamed_addr constant i32, align 4
@.str.12 = external hidden unnamed_addr constant [28 x i8], align 1
@Eout = external local_unnamed_addr constant i32, align 4
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@Bout = external local_unnamed_addr constant i32, align 4
@.str.14 = external hidden unnamed_addr constant [29 x i8], align 1
@jout = external local_unnamed_addr constant i32, align 4
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@qout = external local_unnamed_addr constant i32, align 4
@.str.16 = external hidden unnamed_addr constant [24 x i8], align 1
@lout = external local_unnamed_addr constant i32, align 4
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@l2out = external local_unnamed_addr constant i32, align 4
@.str.18 = external hidden unnamed_addr constant [27 x i8], align 1

; 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 #0

; 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 #1 align 2

; 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 #1 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)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZSt4normIdET_RKSt7complexIS0_E(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local void @_Z9VTKOutputRSt14basic_ofstreamIcSt11char_traitsIcEEPdPSt7complexIdES7_(ptr noundef nonnull align 8 dereferenceable(248) %0, ptr nocapture noundef readonly %1, ptr noundef %2, ptr noundef %3) local_unnamed_addr #1 {
  %5 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.1)
  %6 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %7 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.2)
  %8 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %9 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.3)
  %10 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %11 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.4)
  %12 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %13 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.5)
  %14 = load i32, ptr @nx, align 4, !tbaa !5
  %15 = add nsw i32 %14, -2
  %16 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %15)
  %17 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull @.str)
  %18 = load i32, ptr @ny, align 4, !tbaa !5
  %19 = add nsw i32 %18, -2
  %20 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %17, i32 noundef %19)
  %21 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull @.str)
  %22 = load i32, ptr @nz, align 4, !tbaa !5
  %23 = add nsw i32 %22, -2
  %24 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %21, i32 noundef %23)
  %25 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %26 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.6)
  %27 = mul nsw i32 %19, %15
  %28 = mul nsw i32 %27, %23
  %29 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %26, i32 noundef %28)
  %30 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull @.str.7)
  %31 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %32 = icmp sgt i32 %22, 2
  br i1 %32, label %.preheader229.lr.ph, label %._crit_edge

.preheader229.lr.ph:                              ; preds = %4
  %33 = icmp sgt i32 %18, 2
  %34 = load double, ptr @dx, align 8
  %35 = load double, ptr @dy, align 8
  %36 = load double, ptr @dz, align 8
  %37 = icmp sgt i32 %14, 2
  %or.cond = and i1 %33, %37
  br i1 %or.cond, label %.preheader229.us.us, label %._crit_edge

.preheader229.us.us:                              ; preds = %.preheader229.lr.ph, %._crit_edge232.split.us.us.us
  %.0186233.us.us = phi i32 [ %53, %._crit_edge232.split.us.us.us ], [ 0, %.preheader229.lr.ph ]
  %38 = uitofp nneg i32 %.0186233.us.us to double
  %39 = fmul double %36, %38
  br label %.preheader228.us.us.us

.preheader228.us.us.us:                           ; preds = %._crit_edge.us.us.us, %.preheader229.us.us
  %.0185231.us.us.us = phi i32 [ 0, %.preheader229.us.us ], [ %52, %._crit_edge.us.us.us ]
  %40 = uitofp nneg i32 %.0185231.us.us.us to double
  %41 = fmul double %35, %40
  br label %42

42:                                               ; preds = %42, %.preheader228.us.us.us
  %.0184230.us.us.us = phi i32 [ 0, %.preheader228.us.us.us ], [ %51, %42 ]
  %43 = uitofp nneg i32 %.0184230.us.us.us to double
  %44 = fmul double %34, %43
  %45 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %44)
  %46 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull @.str)
  %47 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %46, double noundef %41)
  %48 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull @.str)
  %49 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %48, double noundef %39)
  %50 = tail call 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_)
  %51 = add nuw nsw i32 %.0184230.us.us.us, 1
  %exitcond.not = icmp eq i32 %51, %15
  br i1 %exitcond.not, label %._crit_edge.us.us.us, label %42, !llvm.loop !9

._crit_edge.us.us.us:                             ; preds = %42
  %52 = add nuw nsw i32 %.0185231.us.us.us, 1
  %exitcond339.not = icmp eq i32 %52, %19
  br i1 %exitcond339.not, label %._crit_edge232.split.us.us.us, label %.preheader228.us.us.us, !llvm.loop !11

._crit_edge232.split.us.us.us:                    ; preds = %._crit_edge.us.us.us
  %53 = add nuw nsw i32 %.0186233.us.us, 1
  %exitcond340.not = icmp eq i32 %53, %23
  br i1 %exitcond340.not, label %._crit_edge, label %.preheader229.us.us, !llvm.loop !12

._crit_edge:                                      ; preds = %._crit_edge232.split.us.us.us, %.preheader229.lr.ph, %4
  %54 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.8)
  %55 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %54, i32 noundef %28)
  %56 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %57 = load i32, ptr @nout, align 4, !tbaa !5
  %58 = icmp eq i32 %57, 1
  br i1 %58, label %59, label %.loopexit227

59:                                               ; preds = %._crit_edge
  %60 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.9)
  %61 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %62 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.10)
  %63 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader226.lr.ph, label %.loopexit227

.preheader226.lr.ph:                              ; preds = %59
  %64 = icmp sgt i32 %18, 2
  %65 = load i32, ptr @vars, align 4
  %66 = icmp sgt i32 %14, 2
  %or.cond401 = and i1 %64, %66
  br i1 %or.cond401, label %.preheader226.us.us.preheader, label %.loopexit227

.preheader226.us.us.preheader:                    ; preds = %.preheader226.lr.ph
  %67 = add nsw i32 %14, -1
  %wide.trip.count = zext i32 %67 to i64
  %68 = add nsw i32 %18, -2
  %69 = add nsw i32 %22, -2
  br label %.preheader226.us.us

.preheader226.us.us:                              ; preds = %.preheader226.us.us.preheader, %._crit_edge241.split.us.us.us
  %.0183242.us.us = phi i32 [ %81, %._crit_edge241.split.us.us.us ], [ 1, %.preheader226.us.us.preheader ]
  %70 = mul i32 %.0183242.us.us, %18
  br label %.preheader225.us.us.us

.preheader225.us.us.us:                           ; preds = %._crit_edge239.us.us.us, %.preheader226.us.us
  %.0182240.us.us.us = phi i32 [ 1, %.preheader226.us.us ], [ %80, %._crit_edge239.us.us.us ]
  %reass.add201.us.us.us = add i32 %.0182240.us.us.us, %70
  %reass.mul202.us.us.us = mul i32 %reass.add201.us.us.us, %14
  br label %71

71:                                               ; preds = %71, %.preheader225.us.us.us
  %indvars.iv = phi i64 [ %indvars.iv.next, %71 ], [ 1, %.preheader225.us.us.us ]
  %72 = trunc nuw nsw i64 %indvars.iv to i32
  %73 = add i32 %reass.mul202.us.us.us, %72
  %74 = mul nsw i32 %65, %73
  %75 = sext i32 %74 to i64
  %76 = getelementptr inbounds double, ptr %1, i64 %75
  %77 = load double, ptr %76, align 8, !tbaa !13
  %78 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %77)
  %79 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond342.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond342.not, label %._crit_edge239.us.us.us, label %71, !llvm.loop !15

._crit_edge239.us.us.us:                          ; preds = %71
  %80 = add nuw nsw i32 %.0182240.us.us.us, 1
  %exitcond343.not = icmp eq i32 %.0182240.us.us.us, %68
  br i1 %exitcond343.not, label %._crit_edge241.split.us.us.us, label %.preheader225.us.us.us, !llvm.loop !16

._crit_edge241.split.us.us.us:                    ; preds = %._crit_edge239.us.us.us
  %81 = add nuw nsw i32 %.0183242.us.us, 1
  %exitcond344.not = icmp eq i32 %.0183242.us.us, %69
  br i1 %exitcond344.not, label %.loopexit227, label %.preheader226.us.us, !llvm.loop !17

.loopexit227:                                     ; preds = %._crit_edge241.split.us.us.us, %.preheader226.lr.ph, %59, %._crit_edge
  %82 = load i32, ptr @Vout, align 4, !tbaa !5
  %83 = icmp eq i32 %82, 1
  br i1 %83, label %84, label %.loopexit224

84:                                               ; preds = %.loopexit227
  %85 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.11)
  %86 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader223.lr.ph, label %.loopexit224

.preheader223.lr.ph:                              ; preds = %84
  %87 = icmp sgt i32 %18, 2
  %88 = load i32, ptr @vars, align 4
  %89 = icmp sgt i32 %14, 2
  %or.cond402 = and i1 %87, %89
  br i1 %or.cond402, label %.preheader223.us.us.preheader, label %.loopexit224

.preheader223.us.us.preheader:                    ; preds = %.preheader223.lr.ph
  %90 = add nsw i32 %14, -1
  %wide.trip.count348 = zext i32 %90 to i64
  %91 = add nsw i32 %18, -2
  %92 = add nsw i32 %22, -2
  br label %.preheader223.us.us

.preheader223.us.us:                              ; preds = %.preheader223.us.us.preheader, %._crit_edge250.split.us.us.us
  %.0180251.us.us = phi i32 [ %113, %._crit_edge250.split.us.us.us ], [ 1, %.preheader223.us.us.preheader ]
  %93 = mul i32 %.0180251.us.us, %18
  br label %.preheader222.us.us.us

.preheader222.us.us.us:                           ; preds = %._crit_edge248.us.us.us, %.preheader223.us.us
  %.0179249.us.us.us = phi i32 [ 1, %.preheader223.us.us ], [ %112, %._crit_edge248.us.us.us ]
  %reass.add199.us.us.us = add i32 %.0179249.us.us.us, %93
  %reass.mul200.us.us.us = mul i32 %reass.add199.us.us.us, %14
  br label %94

94:                                               ; preds = %94, %.preheader222.us.us.us
  %indvars.iv345 = phi i64 [ %indvars.iv.next346, %94 ], [ 1, %.preheader222.us.us.us ]
  %95 = trunc nuw nsw i64 %indvars.iv345 to i32
  %96 = add i32 %reass.mul200.us.us.us, %95
  %97 = mul nsw i32 %88, %96
  %98 = sext i32 %97 to i64
  %99 = getelementptr double, ptr %1, i64 %98
  %100 = getelementptr i8, ptr %99, i64 8
  %101 = load double, ptr %100, align 8, !tbaa !13
  %102 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %101)
  %103 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull @.str)
  %104 = getelementptr i8, ptr %99, i64 16
  %105 = load double, ptr %104, align 8, !tbaa !13
  %106 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %103, double noundef %105)
  %107 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull @.str)
  %108 = getelementptr i8, ptr %99, i64 24
  %109 = load double, ptr %108, align 8, !tbaa !13
  %110 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %107, double noundef %109)
  %111 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next346 = add nuw nsw i64 %indvars.iv345, 1
  %exitcond349.not = icmp eq i64 %indvars.iv.next346, %wide.trip.count348
  br i1 %exitcond349.not, label %._crit_edge248.us.us.us, label %94, !llvm.loop !18

._crit_edge248.us.us.us:                          ; preds = %94
  %112 = add nuw nsw i32 %.0179249.us.us.us, 1
  %exitcond350.not = icmp eq i32 %.0179249.us.us.us, %91
  br i1 %exitcond350.not, label %._crit_edge250.split.us.us.us, label %.preheader222.us.us.us, !llvm.loop !19

._crit_edge250.split.us.us.us:                    ; preds = %._crit_edge248.us.us.us
  %113 = add nuw nsw i32 %.0180251.us.us, 1
  %exitcond351.not = icmp eq i32 %.0180251.us.us, %92
  br i1 %exitcond351.not, label %.loopexit224, label %.preheader223.us.us, !llvm.loop !20

.loopexit224:                                     ; preds = %._crit_edge250.split.us.us.us, %.preheader223.lr.ph, %84, %.loopexit227
  %114 = load i32, ptr @Tout, align 4, !tbaa !5
  %115 = icmp eq i32 %114, 1
  br i1 %115, label %116, label %.loopexit221

116:                                              ; preds = %.loopexit224
  %117 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.12)
  %118 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %119 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.10)
  %120 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader220.lr.ph, label %.loopexit221

.preheader220.lr.ph:                              ; preds = %116
  %121 = icmp sgt i32 %18, 2
  %invariant.gep = getelementptr i8, ptr %1, i64 32
  %122 = load i32, ptr @vars, align 4
  %123 = icmp sgt i32 %14, 2
  %or.cond403 = and i1 %121, %123
  br i1 %or.cond403, label %.preheader220.us.us.preheader, label %.loopexit221

.preheader220.us.us.preheader:                    ; preds = %.preheader220.lr.ph
  %124 = add nsw i32 %14, -1
  %wide.trip.count355 = zext i32 %124 to i64
  %125 = add nsw i32 %18, -2
  %126 = add nsw i32 %22, -2
  br label %.preheader220.us.us

.preheader220.us.us:                              ; preds = %.preheader220.us.us.preheader, %._crit_edge259.split.us.us.us
  %.0177260.us.us = phi i32 [ %137, %._crit_edge259.split.us.us.us ], [ 1, %.preheader220.us.us.preheader ]
  %127 = mul i32 %.0177260.us.us, %18
  br label %.preheader219.us.us.us

.preheader219.us.us.us:                           ; preds = %._crit_edge257.us.us.us, %.preheader220.us.us
  %.0176258.us.us.us = phi i32 [ 1, %.preheader220.us.us ], [ %136, %._crit_edge257.us.us.us ]
  %reass.add197.us.us.us = add i32 %.0176258.us.us.us, %127
  %reass.mul198.us.us.us = mul i32 %reass.add197.us.us.us, %14
  br label %128

128:                                              ; preds = %128, %.preheader219.us.us.us
  %indvars.iv352 = phi i64 [ %indvars.iv.next353, %128 ], [ 1, %.preheader219.us.us.us ]
  %129 = trunc nuw nsw i64 %indvars.iv352 to i32
  %130 = add i32 %reass.mul198.us.us.us, %129
  %131 = mul nsw i32 %122, %130
  %132 = sext i32 %131 to i64
  %gep.us.us.us = getelementptr double, ptr %invariant.gep, i64 %132
  %133 = load double, ptr %gep.us.us.us, align 8, !tbaa !13
  %134 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %133)
  %135 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next353 = add nuw nsw i64 %indvars.iv352, 1
  %exitcond356.not = icmp eq i64 %indvars.iv.next353, %wide.trip.count355
  br i1 %exitcond356.not, label %._crit_edge257.us.us.us, label %128, !llvm.loop !21

._crit_edge257.us.us.us:                          ; preds = %128
  %136 = add nuw nsw i32 %.0176258.us.us.us, 1
  %exitcond357.not = icmp eq i32 %.0176258.us.us.us, %125
  br i1 %exitcond357.not, label %._crit_edge259.split.us.us.us, label %.preheader219.us.us.us, !llvm.loop !22

._crit_edge259.split.us.us.us:                    ; preds = %._crit_edge257.us.us.us
  %137 = add nuw nsw i32 %.0177260.us.us, 1
  %exitcond358.not = icmp eq i32 %.0177260.us.us, %126
  br i1 %exitcond358.not, label %.loopexit221, label %.preheader220.us.us, !llvm.loop !23

.loopexit221:                                     ; preds = %._crit_edge259.split.us.us.us, %.preheader220.lr.ph, %116, %.loopexit224
  %138 = load i32, ptr @Eout, align 4, !tbaa !5
  %139 = icmp eq i32 %138, 1
  br i1 %139, label %140, label %.loopexit218

140:                                              ; preds = %.loopexit221
  %141 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.13)
  %142 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader217.lr.ph, label %.loopexit218

.preheader217.lr.ph:                              ; preds = %140
  %143 = icmp sgt i32 %18, 2
  %144 = load i32, ptr @vars, align 4
  %145 = icmp sgt i32 %14, 2
  %or.cond404 = and i1 %143, %145
  br i1 %or.cond404, label %.preheader217.us.us.preheader, label %.loopexit218

.preheader217.us.us.preheader:                    ; preds = %.preheader217.lr.ph
  %146 = add nsw i32 %14, -1
  %wide.trip.count362 = zext i32 %146 to i64
  %147 = add nsw i32 %18, -2
  %148 = add nsw i32 %22, -2
  br label %.preheader217.us.us

.preheader217.us.us:                              ; preds = %.preheader217.us.us.preheader, %._crit_edge268.split.us.us.us
  %.0174269.us.us = phi i32 [ %169, %._crit_edge268.split.us.us.us ], [ 1, %.preheader217.us.us.preheader ]
  %149 = mul i32 %.0174269.us.us, %18
  br label %.preheader216.us.us.us

.preheader216.us.us.us:                           ; preds = %._crit_edge266.us.us.us, %.preheader217.us.us
  %.0173267.us.us.us = phi i32 [ 1, %.preheader217.us.us ], [ %168, %._crit_edge266.us.us.us ]
  %reass.add195.us.us.us = add i32 %.0173267.us.us.us, %149
  %reass.mul196.us.us.us = mul i32 %reass.add195.us.us.us, %14
  br label %150

150:                                              ; preds = %150, %.preheader216.us.us.us
  %indvars.iv359 = phi i64 [ %indvars.iv.next360, %150 ], [ 1, %.preheader216.us.us.us ]
  %151 = trunc nuw nsw i64 %indvars.iv359 to i32
  %152 = add i32 %reass.mul196.us.us.us, %151
  %153 = mul nsw i32 %144, %152
  %154 = sext i32 %153 to i64
  %155 = getelementptr double, ptr %1, i64 %154
  %156 = getelementptr i8, ptr %155, i64 40
  %157 = load double, ptr %156, align 8, !tbaa !13
  %158 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %157)
  %159 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull @.str)
  %160 = getelementptr i8, ptr %155, i64 48
  %161 = load double, ptr %160, align 8, !tbaa !13
  %162 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %159, double noundef %161)
  %163 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull @.str)
  %164 = getelementptr i8, ptr %155, i64 56
  %165 = load double, ptr %164, align 8, !tbaa !13
  %166 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %163, double noundef %165)
  %167 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next360 = add nuw nsw i64 %indvars.iv359, 1
  %exitcond363.not = icmp eq i64 %indvars.iv.next360, %wide.trip.count362
  br i1 %exitcond363.not, label %._crit_edge266.us.us.us, label %150, !llvm.loop !24

._crit_edge266.us.us.us:                          ; preds = %150
  %168 = add nuw nsw i32 %.0173267.us.us.us, 1
  %exitcond364.not = icmp eq i32 %.0173267.us.us.us, %147
  br i1 %exitcond364.not, label %._crit_edge268.split.us.us.us, label %.preheader216.us.us.us, !llvm.loop !25

._crit_edge268.split.us.us.us:                    ; preds = %._crit_edge266.us.us.us
  %169 = add nuw nsw i32 %.0174269.us.us, 1
  %exitcond365.not = icmp eq i32 %.0174269.us.us, %148
  br i1 %exitcond365.not, label %.loopexit218, label %.preheader217.us.us, !llvm.loop !26

.loopexit218:                                     ; preds = %._crit_edge268.split.us.us.us, %.preheader217.lr.ph, %140, %.loopexit221
  %170 = load i32, ptr @Bout, align 4, !tbaa !5
  %171 = icmp eq i32 %170, 1
  br i1 %171, label %172, label %.loopexit215

172:                                              ; preds = %.loopexit218
  %173 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.14)
  %174 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader214.lr.ph, label %.loopexit215

.preheader214.lr.ph:                              ; preds = %172
  %175 = icmp sgt i32 %18, 2
  %176 = icmp sgt i32 %14, 2
  %177 = load i32, ptr @vars, align 4
  br i1 %175, label %.preheader214.us.preheader, label %.loopexit215

.preheader214.us.preheader:                       ; preds = %.preheader214.lr.ph
  %178 = add nsw i32 %14, -1
  %wide.trip.count369 = zext i32 %178 to i64
  %179 = add nsw i32 %18, -2
  %180 = add nsw i32 %22, -2
  br label %.preheader214.us

.preheader214.us:                                 ; preds = %.preheader214.us.preheader, %._crit_edge277.us
  %.0171278.us = phi i32 [ %182, %._crit_edge277.us ], [ 1, %.preheader214.us.preheader ]
  %181 = mul i32 %.0171278.us, %18
  br i1 %176, label %.preheader213.us.us, label %._crit_edge277.us

._crit_edge277.us:                                ; preds = %._crit_edge275.us.us, %.preheader214.us
  %182 = add nuw nsw i32 %.0171278.us, 1
  %exitcond372.not = icmp eq i32 %.0171278.us, %180
  br i1 %exitcond372.not, label %.loopexit215, label %.preheader214.us, !llvm.loop !27

.preheader213.us.us:                              ; preds = %.preheader214.us, %._crit_edge275.us.us
  %.0170276.us.us = phi i32 [ %201, %._crit_edge275.us.us ], [ 1, %.preheader214.us ]
  %reass.add193.us.us = add i32 %.0170276.us.us, %181
  %reass.mul194.us.us = mul i32 %reass.add193.us.us, %14
  br label %183

183:                                              ; preds = %183, %.preheader213.us.us
  %indvars.iv366 = phi i64 [ %indvars.iv.next367, %183 ], [ 1, %.preheader213.us.us ]
  %184 = trunc nuw nsw i64 %indvars.iv366 to i32
  %185 = add i32 %reass.mul194.us.us, %184
  %186 = mul nsw i32 %177, %185
  %187 = sext i32 %186 to i64
  %188 = getelementptr double, ptr %1, i64 %187
  %189 = getelementptr i8, ptr %188, i64 64
  %190 = load double, ptr %189, align 8, !tbaa !13
  %191 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %190)
  %192 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull @.str)
  %193 = getelementptr i8, ptr %188, i64 72
  %194 = load double, ptr %193, align 8, !tbaa !13
  %195 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %192, double noundef %194)
  %196 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %195, ptr noundef nonnull @.str)
  %197 = getelementptr i8, ptr %188, i64 80
  %198 = load double, ptr %197, align 8, !tbaa !13
  %199 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %196, double noundef %198)
  %200 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next367 = add nuw nsw i64 %indvars.iv366, 1
  %exitcond370.not = icmp eq i64 %indvars.iv.next367, %wide.trip.count369
  br i1 %exitcond370.not, label %._crit_edge275.us.us, label %183, !llvm.loop !28

._crit_edge275.us.us:                             ; preds = %183
  %201 = add nuw nsw i32 %.0170276.us.us, 1
  %exitcond371.not = icmp eq i32 %.0170276.us.us, %179
  br i1 %exitcond371.not, label %._crit_edge277.us, label %.preheader213.us.us, !llvm.loop !29

.loopexit215:                                     ; preds = %._crit_edge277.us, %.preheader214.lr.ph, %172, %.loopexit218
  %202 = load i32, ptr @jout, align 4, !tbaa !5
  %203 = icmp eq i32 %202, 1
  br i1 %203, label %204, label %.loopexit212

204:                                              ; preds = %.loopexit215
  %205 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.15)
  %206 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader211.lr.ph, label %.loopexit212

.preheader211.lr.ph:                              ; preds = %204
  %207 = icmp sgt i32 %18, 2
  %208 = icmp sgt i32 %14, 2
  %209 = load i32, ptr @vars, align 4
  br i1 %207, label %.preheader211.us.preheader, label %.loopexit212

.preheader211.us.preheader:                       ; preds = %.preheader211.lr.ph
  %210 = add nsw i32 %14, -1
  %wide.trip.count376 = zext i32 %210 to i64
  %211 = add nsw i32 %18, -2
  %212 = add nsw i32 %22, -2
  br label %.preheader211.us

.preheader211.us:                                 ; preds = %.preheader211.us.preheader, %._crit_edge286.us
  %.0168287.us = phi i32 [ %214, %._crit_edge286.us ], [ 1, %.preheader211.us.preheader ]
  %213 = mul i32 %.0168287.us, %18
  br i1 %208, label %.preheader210.us.us, label %._crit_edge286.us

._crit_edge286.us:                                ; preds = %._crit_edge284.us.us, %.preheader211.us
  %214 = add nuw nsw i32 %.0168287.us, 1
  %exitcond379.not = icmp eq i32 %.0168287.us, %212
  br i1 %exitcond379.not, label %.loopexit212, label %.preheader211.us, !llvm.loop !30

.preheader210.us.us:                              ; preds = %.preheader211.us, %._crit_edge284.us.us
  %.0167285.us.us = phi i32 [ %233, %._crit_edge284.us.us ], [ 1, %.preheader211.us ]
  %reass.add191.us.us = add i32 %.0167285.us.us, %213
  %reass.mul192.us.us = mul i32 %reass.add191.us.us, %14
  br label %215

215:                                              ; preds = %215, %.preheader210.us.us
  %indvars.iv373 = phi i64 [ %indvars.iv.next374, %215 ], [ 1, %.preheader210.us.us ]
  %216 = trunc nuw nsw i64 %indvars.iv373 to i32
  %217 = add i32 %reass.mul192.us.us, %216
  %218 = mul nsw i32 %209, %217
  %219 = sext i32 %218 to i64
  %220 = getelementptr double, ptr %1, i64 %219
  %221 = getelementptr i8, ptr %220, i64 88
  %222 = load double, ptr %221, align 8, !tbaa !13
  %223 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %222)
  %224 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull @.str)
  %225 = getelementptr i8, ptr %220, i64 96
  %226 = load double, ptr %225, align 8, !tbaa !13
  %227 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %224, double noundef %226)
  %228 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef nonnull @.str)
  %229 = getelementptr i8, ptr %220, i64 104
  %230 = load double, ptr %229, align 8, !tbaa !13
  %231 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %228, double noundef %230)
  %232 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next374 = add nuw nsw i64 %indvars.iv373, 1
  %exitcond377.not = icmp eq i64 %indvars.iv.next374, %wide.trip.count376
  br i1 %exitcond377.not, label %._crit_edge284.us.us, label %215, !llvm.loop !31

._crit_edge284.us.us:                             ; preds = %215
  %233 = add nuw nsw i32 %.0167285.us.us, 1
  %exitcond378.not = icmp eq i32 %.0167285.us.us, %211
  br i1 %exitcond378.not, label %._crit_edge286.us, label %.preheader210.us.us, !llvm.loop !32

.loopexit212:                                     ; preds = %._crit_edge286.us, %.preheader211.lr.ph, %204, %.loopexit215
  %234 = load i32, ptr @qout, align 4, !tbaa !5
  %235 = icmp eq i32 %234, 1
  br i1 %235, label %236, label %.loopexit209

236:                                              ; preds = %.loopexit212
  %237 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.16)
  %238 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %237, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader208.lr.ph, label %.loopexit209

.preheader208.lr.ph:                              ; preds = %236
  %239 = icmp sgt i32 %18, 2
  %240 = icmp sgt i32 %14, 2
  %241 = load i32, ptr @vars, align 4
  br i1 %239, label %.preheader208.us.preheader, label %.loopexit209

.preheader208.us.preheader:                       ; preds = %.preheader208.lr.ph
  %242 = add nsw i32 %14, -1
  %wide.trip.count383 = zext i32 %242 to i64
  %243 = add nsw i32 %18, -2
  %244 = add nsw i32 %22, -2
  br label %.preheader208.us

.preheader208.us:                                 ; preds = %.preheader208.us.preheader, %._crit_edge295.us
  %.0165296.us = phi i32 [ %246, %._crit_edge295.us ], [ 1, %.preheader208.us.preheader ]
  %245 = mul i32 %.0165296.us, %18
  br i1 %240, label %.preheader207.us.us, label %._crit_edge295.us

._crit_edge295.us:                                ; preds = %._crit_edge293.us.us, %.preheader208.us
  %246 = add nuw nsw i32 %.0165296.us, 1
  %exitcond386.not = icmp eq i32 %.0165296.us, %244
  br i1 %exitcond386.not, label %.loopexit209, label %.preheader208.us, !llvm.loop !33

.preheader207.us.us:                              ; preds = %.preheader208.us, %._crit_edge293.us.us
  %.0164294.us.us = phi i32 [ %265, %._crit_edge293.us.us ], [ 1, %.preheader208.us ]
  %reass.add189.us.us = add i32 %.0164294.us.us, %245
  %reass.mul190.us.us = mul i32 %reass.add189.us.us, %14
  br label %247

247:                                              ; preds = %247, %.preheader207.us.us
  %indvars.iv380 = phi i64 [ %indvars.iv.next381, %247 ], [ 1, %.preheader207.us.us ]
  %248 = trunc nuw nsw i64 %indvars.iv380 to i32
  %249 = add i32 %reass.mul190.us.us, %248
  %250 = mul nsw i32 %241, %249
  %251 = sext i32 %250 to i64
  %252 = getelementptr double, ptr %1, i64 %251
  %253 = getelementptr i8, ptr %252, i64 112
  %254 = load double, ptr %253, align 8, !tbaa !13
  %255 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %254)
  %256 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef nonnull @.str)
  %257 = getelementptr i8, ptr %252, i64 120
  %258 = load double, ptr %257, align 8, !tbaa !13
  %259 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %256, double noundef %258)
  %260 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %259, ptr noundef nonnull @.str)
  %261 = getelementptr i8, ptr %252, i64 128
  %262 = load double, ptr %261, align 8, !tbaa !13
  %263 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %260, double noundef %262)
  %264 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next381 = add nuw nsw i64 %indvars.iv380, 1
  %exitcond384.not = icmp eq i64 %indvars.iv.next381, %wide.trip.count383
  br i1 %exitcond384.not, label %._crit_edge293.us.us, label %247, !llvm.loop !34

._crit_edge293.us.us:                             ; preds = %247
  %265 = add nuw nsw i32 %.0164294.us.us, 1
  %exitcond385.not = icmp eq i32 %.0164294.us.us, %243
  br i1 %exitcond385.not, label %._crit_edge295.us, label %.preheader207.us.us, !llvm.loop !35

.loopexit209:                                     ; preds = %._crit_edge295.us, %.preheader208.lr.ph, %236, %.loopexit212
  %266 = load i32, ptr @lout, align 4, !tbaa !5
  %267 = icmp eq i32 %266, 1
  br i1 %267, label %268, label %.loopexit206

268:                                              ; preds = %.loopexit209
  %269 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.17)
  %270 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %269, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %271 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.10)
  %272 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader205.lr.ph, label %.loopexit206

.preheader205.lr.ph:                              ; preds = %268
  %273 = icmp sgt i32 %18, 2
  %274 = icmp sgt i32 %14, 2
  br i1 %273, label %.preheader205.us.preheader, label %.loopexit206

.preheader205.us.preheader:                       ; preds = %.preheader205.lr.ph
  %275 = add nsw i32 %14, -1
  %wide.trip.count390 = zext i32 %275 to i64
  %276 = add nsw i32 %18, -2
  %277 = add nsw i32 %22, -2
  br label %.preheader205.us

.preheader205.us:                                 ; preds = %.preheader205.us.preheader, %._crit_edge304.us
  %.0162305.us = phi i32 [ %279, %._crit_edge304.us ], [ 1, %.preheader205.us.preheader ]
  %278 = mul i32 %.0162305.us, %18
  br i1 %274, label %.preheader204.us.us, label %._crit_edge304.us

._crit_edge304.us:                                ; preds = %._crit_edge302.us.us, %.preheader205.us
  %279 = add nuw nsw i32 %.0162305.us, 1
  %exitcond393.not = icmp eq i32 %.0162305.us, %277
  br i1 %exitcond393.not, label %.loopexit206, label %.preheader205.us, !llvm.loop !36

.preheader204.us.us:                              ; preds = %.preheader205.us, %._crit_edge302.us.us
  %.0161303.us.us = phi i32 [ %288, %._crit_edge302.us.us ], [ 1, %.preheader205.us ]
  %reass.add187.us.us = add i32 %.0161303.us.us, %278
  %reass.mul188.us.us = mul i32 %reass.add187.us.us, %14
  br label %280

280:                                              ; preds = %280, %.preheader204.us.us
  %indvars.iv387 = phi i64 [ %indvars.iv.next388, %280 ], [ 1, %.preheader204.us.us ]
  %281 = trunc nuw nsw i64 %indvars.iv387 to i32
  %282 = add i32 %reass.mul188.us.us, %281
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds %"class.std::complex", ptr %2, i64 %283
  %285 = tail call noundef double @_ZSt4normIdET_RKSt7complexIS0_E(ptr noundef nonnull align 8 dereferenceable(16) %284)
  %286 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %285)
  %287 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next388 = add nuw nsw i64 %indvars.iv387, 1
  %exitcond391.not = icmp eq i64 %indvars.iv.next388, %wide.trip.count390
  br i1 %exitcond391.not, label %._crit_edge302.us.us, label %280, !llvm.loop !37

._crit_edge302.us.us:                             ; preds = %280
  %288 = add nuw nsw i32 %.0161303.us.us, 1
  %exitcond392.not = icmp eq i32 %.0161303.us.us, %276
  br i1 %exitcond392.not, label %._crit_edge304.us, label %.preheader204.us.us, !llvm.loop !38

.loopexit206:                                     ; preds = %._crit_edge304.us, %.preheader205.lr.ph, %268, %.loopexit209
  %289 = load i32, ptr @l2out, align 4, !tbaa !5
  %290 = icmp eq i32 %289, 1
  br i1 %290, label %291, label %.loopexit

291:                                              ; preds = %.loopexit206
  %292 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.18)
  %293 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %292, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %294 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.10)
  %295 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br i1 %32, label %.preheader203.lr.ph, label %.loopexit

.preheader203.lr.ph:                              ; preds = %291
  %296 = icmp sgt i32 %18, 2
  %297 = icmp sgt i32 %14, 2
  br i1 %296, label %.preheader203.us.preheader, label %.loopexit

.preheader203.us.preheader:                       ; preds = %.preheader203.lr.ph
  %298 = add nsw i32 %14, -1
  %wide.trip.count397 = zext i32 %298 to i64
  %299 = add nsw i32 %18, -2
  %300 = add nsw i32 %22, -2
  br label %.preheader203.us

.preheader203.us:                                 ; preds = %.preheader203.us.preheader, %._crit_edge313.us
  %.0159314.us = phi i32 [ %302, %._crit_edge313.us ], [ 1, %.preheader203.us.preheader ]
  %301 = mul i32 %.0159314.us, %18
  br i1 %297, label %.preheader.us.us, label %._crit_edge313.us

._crit_edge313.us:                                ; preds = %._crit_edge311.us.us, %.preheader203.us
  %302 = add nuw nsw i32 %.0159314.us, 1
  %exitcond400.not = icmp eq i32 %.0159314.us, %300
  br i1 %exitcond400.not, label %.loopexit, label %.preheader203.us, !llvm.loop !39

.preheader.us.us:                                 ; preds = %.preheader203.us, %._crit_edge311.us.us
  %.0158312.us.us = phi i32 [ %311, %._crit_edge311.us.us ], [ 1, %.preheader203.us ]
  %reass.add.us.us = add i32 %.0158312.us.us, %301
  %reass.mul.us.us = mul i32 %reass.add.us.us, %14
  br label %303

303:                                              ; preds = %303, %.preheader.us.us
  %indvars.iv394 = phi i64 [ %indvars.iv.next395, %303 ], [ 1, %.preheader.us.us ]
  %304 = trunc nuw nsw i64 %indvars.iv394 to i32
  %305 = add i32 %reass.mul.us.us, %304
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds %"class.std::complex", ptr %3, i64 %306
  %308 = tail call noundef double @_ZSt4normIdET_RKSt7complexIS0_E(ptr noundef nonnull align 8 dereferenceable(16) %307)
  %309 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %0, double noundef %308)
  %310 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %indvars.iv.next395 = add nuw nsw i64 %indvars.iv394, 1
  %exitcond398.not = icmp eq i64 %indvars.iv.next395, %wide.trip.count397
  br i1 %exitcond398.not, label %._crit_edge311.us.us, label %303, !llvm.loop !40

._crit_edge311.us.us:                             ; preds = %303
  %311 = add nuw nsw i32 %.0158312.us.us, 1
  %exitcond399.not = icmp eq i32 %.0158312.us.us, %299
  br i1 %exitcond399.not, label %._crit_edge313.us, label %.preheader.us.us, !llvm.loop !41

.loopexit:                                        ; preds = %._crit_edge313.us, %.preheader203.lr.ph, %291, %.loopexit206
  tail call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(248) %0)
  ret void
}

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2

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

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 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 = { "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" }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = distinct !{!15, !10}
!16 = distinct !{!16, !10}
!17 = distinct !{!17, !10}
!18 = distinct !{!18, !10}
!19 = distinct !{!19, !10}
!20 = distinct !{!20, !10}
!21 = distinct !{!21, !10}
!22 = distinct !{!22, !10}
!23 = distinct !{!23, !10}
!24 = distinct !{!24, !10}
!25 = distinct !{!25, !10}
!26 = distinct !{!26, !10}
!27 = distinct !{!27, !10}
!28 = distinct !{!28, !10}
!29 = distinct !{!29, !10}
!30 = distinct !{!30, !10}
!31 = distinct !{!31, !10}
!32 = distinct !{!32, !10}
!33 = distinct !{!33, !10}
!34 = distinct !{!34, !10}
!35 = distinct !{!35, !10}
!36 = distinct !{!36, !10}
!37 = distinct !{!37, !10}
!38 = distinct !{!38, !10}
!39 = distinct !{!39, !10}
!40 = distinct !{!40, !10}
!41 = distinct !{!41, !10}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass