; LLVM IR from VeloxChem/VeloxChem :: src/dft_func (DensityGridQuad)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.5" = type { i8 }
%class.CDensityGridQuad = type { i32, i32, %class.CDensityGridData2D }
%class.CDensityGridData2D = type <{ %"class.std::vector", %"class.std::vector.0", %"class.std::vector.0", %"class.std::vector.0", i32, [4 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [18 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [25 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

declare i32 @__gxx_personality_v0(...)

; 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 dso_local noundef i32 @_ZNK16CDensityGridQuad21getNumberOfGridPointsEv(ptr noundef nonnull align 8 dereferenceable(112)) #1 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16CDensityGridQuad17DensityProdForLDAERK12CDensityGridiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %0, ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(32) %3) #1 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca double, align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca ptr, align 8
  %76 = alloca ptr, align 8
  %77 = alloca ptr, align 8
  %78 = alloca ptr, align 8
  %79 = alloca ptr, align 8
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca ptr, align 8
  %88 = alloca ptr, align 8
  %89 = alloca ptr, align 8
  %90 = alloca ptr, align 8
  %91 = alloca ptr, align 8
  %92 = alloca ptr, align 8
  %93 = alloca ptr, align 8
  %94 = alloca ptr, align 8
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca i32, align 4
  %99 = alloca ptr, align 8
  %100 = alloca ptr, align 8
  %101 = alloca ptr, align 8
  %102 = alloca ptr, align 8
  %103 = alloca ptr, align 8
  %104 = alloca ptr, align 8
  %105 = alloca ptr, align 8
  %106 = alloca ptr, align 8
  %107 = alloca ptr, align 8
  %108 = alloca ptr, align 8
  %109 = alloca ptr, align 8
  %110 = alloca ptr, align 8
  %111 = alloca i32, align 4
  %112 = alloca double, align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca ptr, align 8
  %117 = alloca ptr, align 8
  %118 = alloca ptr, align 8
  %119 = alloca ptr, align 8
  %120 = alloca ptr, align 8
  %121 = alloca ptr, align 8
  %122 = alloca ptr, align 8
  %123 = alloca ptr, align 8
  %124 = alloca ptr, align 8
  %125 = alloca ptr, align 8
  %126 = alloca ptr, align 8
  %127 = alloca ptr, align 8
  %128 = alloca ptr, align 8
  %129 = alloca ptr, align 8
  %130 = alloca ptr, align 8
  %131 = alloca ptr, align 8
  %132 = alloca ptr, align 8
  %133 = alloca ptr, align 8
  %134 = alloca ptr, align 8
  %135 = alloca ptr, align 8
  %136 = alloca ptr, align 8
  %137 = alloca ptr, align 8
  %138 = alloca ptr, align 8
  %139 = alloca i32, align 4
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca i32, align 4
  %142 = alloca ptr, align 8
  %143 = alloca ptr, align 8
  %144 = alloca ptr, align 8
  %145 = alloca ptr, align 8
  %146 = alloca ptr, align 8
  %147 = alloca ptr, align 8
  %148 = alloca ptr, align 8
  %149 = alloca ptr, align 8
  %150 = alloca ptr, align 8
  %151 = alloca ptr, align 8
  %152 = alloca ptr, align 8
  %153 = alloca ptr, align 8
  %154 = alloca ptr, align 8
  %155 = alloca ptr, align 8
  %156 = alloca i32, align 4
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca i32, align 4
  %159 = alloca ptr, align 8
  %160 = alloca ptr, align 8
  %161 = alloca ptr, align 8
  %162 = alloca ptr, align 8
  %163 = alloca ptr, align 8
  %164 = alloca ptr, align 8
  %165 = alloca ptr, align 8
  %166 = alloca ptr, align 8
  %167 = alloca ptr, align 8
  %168 = alloca ptr, align 8
  %169 = alloca ptr, align 8
  %170 = alloca ptr, align 8
  %171 = alloca ptr, align 8
  %172 = alloca ptr, align 8
  %173 = alloca ptr, align 8
  %174 = alloca ptr, align 8
  %175 = alloca ptr, align 8
  %176 = alloca ptr, align 8
  %177 = alloca ptr, align 8
  %178 = alloca i32, align 4
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca i32, align 4
  %181 = alloca ptr, align 8
  %182 = alloca ptr, align 8
  %183 = alloca ptr, align 8
  %184 = alloca ptr, align 8
  %185 = alloca ptr, align 8
  %186 = alloca ptr, align 8
  %187 = alloca i32, align 4
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca i32, align 4
  %190 = alloca ptr, align 8
  %191 = alloca ptr, align 8
  %192 = alloca ptr, align 8
  %193 = alloca ptr, align 8
  %194 = alloca ptr, align 8
  %195 = alloca ptr, align 8
  %196 = alloca ptr, align 8
  %197 = alloca ptr, align 8
  %198 = alloca ptr, align 8
  %199 = alloca i32, align 4
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::allocator.5", align 1
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::allocator.5", align 1
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  store ptr %3, ptr %8, align 8, !tbaa !5
  %207 = load ptr, ptr %5, align 8
  %208 = getelementptr inbounds %class.CDensityGridQuad, ptr %207, i32 0, i32 0
  %209 = load i32, ptr %208, align 8, !tbaa !11
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %211, label %212

211:                                              ; preds = %4
  br label %4156

212:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %213 = call noundef i32 @_ZNK16CDensityGridQuad21getNumberOfGridPointsEv(ptr noundef nonnull align 8 dereferenceable(112) %207)
  store i32 %213, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #7
  %214 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %214)
  %215 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.2)
          to label %216 unwind label %224

216:                                              ; preds = %212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  br i1 %215, label %217, label %920

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

218:                                              ; preds = %916, %217
  %219 = load i32, ptr %13, align 4, !tbaa !9
  %220 = load i32, ptr %7, align 4, !tbaa !9
  %221 = sdiv i32 %220, 12
  %222 = icmp slt i32 %219, %221
  br i1 %222, label %228, label %223

223:                                              ; preds = %218
  store i32 2, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %919

224:                                              ; preds = %212
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %11, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  br label %4157

228:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %229 = load i32, ptr %13, align 4, !tbaa !9
  %230 = mul nsw i32 12, %229
  %231 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %230)
  store ptr %231, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %232 = load i32, ptr %13, align 4, !tbaa !9
  %233 = mul nsw i32 12, %232
  %234 = add nsw i32 %233, 1
  %235 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %234)
  store ptr %235, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %236 = load i32, ptr %13, align 4, !tbaa !9
  %237 = mul nsw i32 12, %236
  %238 = add nsw i32 %237, 2
  %239 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %238)
  store ptr %239, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %240 = load i32, ptr %13, align 4, !tbaa !9
  %241 = mul nsw i32 12, %240
  %242 = add nsw i32 %241, 3
  %243 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %242)
  store ptr %243, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %244 = load i32, ptr %13, align 4, !tbaa !9
  %245 = mul nsw i32 12, %244
  %246 = add nsw i32 %245, 4
  %247 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %246)
  store ptr %247, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %248 = load i32, ptr %13, align 4, !tbaa !9
  %249 = mul nsw i32 12, %248
  %250 = add nsw i32 %249, 5
  %251 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %250)
  store ptr %251, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %252 = load i32, ptr %13, align 4, !tbaa !9
  %253 = mul nsw i32 12, %252
  %254 = add nsw i32 %253, 6
  %255 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %254)
  store ptr %255, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %256 = load i32, ptr %13, align 4, !tbaa !9
  %257 = mul nsw i32 12, %256
  %258 = add nsw i32 %257, 7
  %259 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %258)
  store ptr %259, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %260 = load i32, ptr %13, align 4, !tbaa !9
  %261 = mul nsw i32 12, %260
  %262 = add nsw i32 %261, 8
  %263 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %262)
  store ptr %263, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %264 = load i32, ptr %13, align 4, !tbaa !9
  %265 = mul nsw i32 12, %264
  %266 = add nsw i32 %265, 9
  %267 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %266)
  store ptr %267, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %268 = load i32, ptr %13, align 4, !tbaa !9
  %269 = mul nsw i32 12, %268
  %270 = add nsw i32 %269, 10
  %271 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %270)
  store ptr %271, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %272 = load i32, ptr %13, align 4, !tbaa !9
  %273 = mul nsw i32 12, %272
  %274 = add nsw i32 %273, 11
  %275 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %274)
  store ptr %275, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %276 = load ptr, ptr %6, align 8, !tbaa !5
  %277 = load i32, ptr %13, align 4, !tbaa !9
  %278 = mul nsw i32 6, %277
  %279 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %276, i32 noundef %278)
  store ptr %279, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %280 = load ptr, ptr %6, align 8, !tbaa !5
  %281 = load i32, ptr %13, align 4, !tbaa !9
  %282 = mul nsw i32 6, %281
  %283 = add nsw i32 %282, 1
  %284 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %280, i32 noundef %283)
  store ptr %284, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %285 = load ptr, ptr %6, align 8, !tbaa !5
  %286 = load i32, ptr %13, align 4, !tbaa !9
  %287 = mul nsw i32 6, %286
  %288 = add nsw i32 %287, 2
  %289 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %285, i32 noundef %288)
  store ptr %289, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %290 = load ptr, ptr %6, align 8, !tbaa !5
  %291 = load i32, ptr %13, align 4, !tbaa !9
  %292 = mul nsw i32 6, %291
  %293 = add nsw i32 %292, 3
  %294 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %290, i32 noundef %293)
  store ptr %294, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %295 = load ptr, ptr %6, align 8, !tbaa !5
  %296 = load i32, ptr %13, align 4, !tbaa !9
  %297 = mul nsw i32 6, %296
  %298 = add nsw i32 %297, 4
  %299 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %295, i32 noundef %298)
  store ptr %299, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %300 = load ptr, ptr %6, align 8, !tbaa !5
  %301 = load i32, ptr %13, align 4, !tbaa !9
  %302 = mul nsw i32 6, %301
  %303 = add nsw i32 %302, 5
  %304 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %300, i32 noundef %303)
  store ptr %304, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 0, ptr %33, align 4, !tbaa !9
  br label %305

305:                                              ; preds = %912, %228
  %306 = load i32, ptr %33, align 4, !tbaa !9
  %307 = load i32, ptr %9, align 4, !tbaa !9
  %308 = icmp slt i32 %306, %307
  br i1 %308, label %310, label %309

309:                                              ; preds = %305
  store i32 5, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %915

310:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %311 = load ptr, ptr %27, align 8, !tbaa !5
  %312 = load i32, ptr %33, align 4, !tbaa !9
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds double, ptr %311, i64 %313
  %315 = load double, ptr %314, align 8, !tbaa !23
  %316 = load ptr, ptr %27, align 8, !tbaa !5
  %317 = load i32, ptr %33, align 4, !tbaa !9
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds double, ptr %316, i64 %318
  %320 = load double, ptr %319, align 8, !tbaa !23
  %321 = load ptr, ptr %29, align 8, !tbaa !5
  %322 = load i32, ptr %33, align 4, !tbaa !9
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds double, ptr %321, i64 %323
  %325 = load double, ptr %324, align 8, !tbaa !23
  %326 = load ptr, ptr %29, align 8, !tbaa !5
  %327 = load i32, ptr %33, align 4, !tbaa !9
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds double, ptr %326, i64 %328
  %330 = load double, ptr %329, align 8, !tbaa !23
  %331 = fmul double %325, %330
  %332 = call double @llvm.fmuladd.f64(double %315, double %320, double %331)
  %333 = load ptr, ptr %31, align 8, !tbaa !5
  %334 = load i32, ptr %33, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds double, ptr %333, i64 %335
  %337 = load double, ptr %336, align 8, !tbaa !23
  %338 = load ptr, ptr %31, align 8, !tbaa !5
  %339 = load i32, ptr %33, align 4, !tbaa !9
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds double, ptr %338, i64 %340
  %342 = load double, ptr %341, align 8, !tbaa !23
  %343 = call double @llvm.fmuladd.f64(double %337, double %342, double %332)
  %344 = load ptr, ptr %28, align 8, !tbaa !5
  %345 = load i32, ptr %33, align 4, !tbaa !9
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds double, ptr %344, i64 %346
  %348 = load double, ptr %347, align 8, !tbaa !23
  %349 = load ptr, ptr %28, align 8, !tbaa !5
  %350 = load i32, ptr %33, align 4, !tbaa !9
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds double, ptr %349, i64 %351
  %353 = load double, ptr %352, align 8, !tbaa !23
  %354 = load ptr, ptr %30, align 8, !tbaa !5
  %355 = load i32, ptr %33, align 4, !tbaa !9
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds double, ptr %354, i64 %356
  %358 = load double, ptr %357, align 8, !tbaa !23
  %359 = load ptr, ptr %30, align 8, !tbaa !5
  %360 = load i32, ptr %33, align 4, !tbaa !9
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds double, ptr %359, i64 %361
  %363 = load double, ptr %362, align 8, !tbaa !23
  %364 = fmul double %358, %363
  %365 = call double @llvm.fmuladd.f64(double %348, double %353, double %364)
  %366 = load ptr, ptr %32, align 8, !tbaa !5
  %367 = load i32, ptr %33, align 4, !tbaa !9
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds double, ptr %366, i64 %368
  %370 = load double, ptr %369, align 8, !tbaa !23
  %371 = load ptr, ptr %32, align 8, !tbaa !5
  %372 = load i32, ptr %33, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds double, ptr %371, i64 %373
  %375 = load double, ptr %374, align 8, !tbaa !23
  %376 = call double @llvm.fmuladd.f64(double %370, double %375, double %365)
  %377 = fmul double 2.000000e+00, %376
  %378 = fneg double %377
  %379 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %343, double %378)
  store double %379, ptr %34, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %380 = load ptr, ptr %27, align 8, !tbaa !5
  %381 = load i32, ptr %33, align 4, !tbaa !9
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds double, ptr %380, i64 %382
  %384 = load double, ptr %383, align 8, !tbaa !23
  %385 = load ptr, ptr %28, align 8, !tbaa !5
  %386 = load i32, ptr %33, align 4, !tbaa !9
  %387 = sext i32 %386 to i64
  %388 = getelementptr inbounds double, ptr %385, i64 %387
  %389 = load double, ptr %388, align 8, !tbaa !23
  %390 = load ptr, ptr %29, align 8, !tbaa !5
  %391 = load i32, ptr %33, align 4, !tbaa !9
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds double, ptr %390, i64 %392
  %394 = load double, ptr %393, align 8, !tbaa !23
  %395 = load ptr, ptr %30, align 8, !tbaa !5
  %396 = load i32, ptr %33, align 4, !tbaa !9
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds double, ptr %395, i64 %397
  %399 = load double, ptr %398, align 8, !tbaa !23
  %400 = fmul double %394, %399
  %401 = call double @llvm.fmuladd.f64(double %384, double %389, double %400)
  %402 = load ptr, ptr %31, align 8, !tbaa !5
  %403 = load i32, ptr %33, align 4, !tbaa !9
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds double, ptr %402, i64 %404
  %406 = load double, ptr %405, align 8, !tbaa !23
  %407 = load ptr, ptr %32, align 8, !tbaa !5
  %408 = load i32, ptr %33, align 4, !tbaa !9
  %409 = sext i32 %408 to i64
  %410 = getelementptr inbounds double, ptr %407, i64 %409
  %411 = load double, ptr %410, align 8, !tbaa !23
  %412 = call double @llvm.fmuladd.f64(double %406, double %411, double %401)
  %413 = load ptr, ptr %28, align 8, !tbaa !5
  %414 = load i32, ptr %33, align 4, !tbaa !9
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds double, ptr %413, i64 %415
  %417 = load double, ptr %416, align 8, !tbaa !23
  %418 = load ptr, ptr %27, align 8, !tbaa !5
  %419 = load i32, ptr %33, align 4, !tbaa !9
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds double, ptr %418, i64 %420
  %422 = load double, ptr %421, align 8, !tbaa !23
  %423 = call double @llvm.fmuladd.f64(double %417, double %422, double %412)
  %424 = load ptr, ptr %30, align 8, !tbaa !5
  %425 = load i32, ptr %33, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds double, ptr %424, i64 %426
  %428 = load double, ptr %427, align 8, !tbaa !23
  %429 = load ptr, ptr %29, align 8, !tbaa !5
  %430 = load i32, ptr %33, align 4, !tbaa !9
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds double, ptr %429, i64 %431
  %433 = load double, ptr %432, align 8, !tbaa !23
  %434 = call double @llvm.fmuladd.f64(double %428, double %433, double %423)
  %435 = load ptr, ptr %32, align 8, !tbaa !5
  %436 = load i32, ptr %33, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds double, ptr %435, i64 %437
  %439 = load double, ptr %438, align 8, !tbaa !23
  %440 = load ptr, ptr %31, align 8, !tbaa !5
  %441 = load i32, ptr %33, align 4, !tbaa !9
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds double, ptr %440, i64 %442
  %444 = load double, ptr %443, align 8, !tbaa !23
  %445 = call double @llvm.fmuladd.f64(double %439, double %444, double %434)
  %446 = fmul double 2.000000e+00, %445
  store double %446, ptr %35, align 8, !tbaa !23
  %447 = load ptr, ptr %27, align 8, !tbaa !5
  %448 = load i32, ptr %33, align 4, !tbaa !9
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds double, ptr %447, i64 %449
  %451 = load double, ptr %450, align 8, !tbaa !23
  %452 = load ptr, ptr %27, align 8, !tbaa !5
  %453 = load i32, ptr %33, align 4, !tbaa !9
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds double, ptr %452, i64 %454
  %456 = load double, ptr %455, align 8, !tbaa !23
  %457 = load ptr, ptr %28, align 8, !tbaa !5
  %458 = load i32, ptr %33, align 4, !tbaa !9
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds double, ptr %457, i64 %459
  %461 = load double, ptr %460, align 8, !tbaa !23
  %462 = load ptr, ptr %28, align 8, !tbaa !5
  %463 = load i32, ptr %33, align 4, !tbaa !9
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds double, ptr %462, i64 %464
  %466 = load double, ptr %465, align 8, !tbaa !23
  %467 = fmul double %461, %466
  %468 = fneg double %467
  %469 = call double @llvm.fmuladd.f64(double %451, double %456, double %468)
  %470 = load double, ptr %34, align 8, !tbaa !23
  %471 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %469, double %470)
  %472 = load ptr, ptr %15, align 8, !tbaa !5
  %473 = load i32, ptr %33, align 4, !tbaa !9
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds double, ptr %472, i64 %474
  store double %471, ptr %475, align 8, !tbaa !23
  %476 = load ptr, ptr %27, align 8, !tbaa !5
  %477 = load i32, ptr %33, align 4, !tbaa !9
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds double, ptr %476, i64 %478
  %480 = load double, ptr %479, align 8, !tbaa !23
  %481 = load ptr, ptr %28, align 8, !tbaa !5
  %482 = load i32, ptr %33, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds double, ptr %481, i64 %483
  %485 = load double, ptr %484, align 8, !tbaa !23
  %486 = load ptr, ptr %28, align 8, !tbaa !5
  %487 = load i32, ptr %33, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds double, ptr %486, i64 %488
  %490 = load double, ptr %489, align 8, !tbaa !23
  %491 = load ptr, ptr %27, align 8, !tbaa !5
  %492 = load i32, ptr %33, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds double, ptr %491, i64 %493
  %495 = load double, ptr %494, align 8, !tbaa !23
  %496 = fmul double %490, %495
  %497 = call double @llvm.fmuladd.f64(double %480, double %485, double %496)
  %498 = load double, ptr %35, align 8, !tbaa !23
  %499 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %497, double %498)
  %500 = load ptr, ptr %16, align 8, !tbaa !5
  %501 = load i32, ptr %33, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds double, ptr %500, i64 %502
  store double %499, ptr %503, align 8, !tbaa !23
  %504 = load ptr, ptr %29, align 8, !tbaa !5
  %505 = load i32, ptr %33, align 4, !tbaa !9
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds double, ptr %504, i64 %506
  %508 = load double, ptr %507, align 8, !tbaa !23
  %509 = load ptr, ptr %29, align 8, !tbaa !5
  %510 = load i32, ptr %33, align 4, !tbaa !9
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds double, ptr %509, i64 %511
  %513 = load double, ptr %512, align 8, !tbaa !23
  %514 = load ptr, ptr %30, align 8, !tbaa !5
  %515 = load i32, ptr %33, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds double, ptr %514, i64 %516
  %518 = load double, ptr %517, align 8, !tbaa !23
  %519 = load ptr, ptr %30, align 8, !tbaa !5
  %520 = load i32, ptr %33, align 4, !tbaa !9
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds double, ptr %519, i64 %521
  %523 = load double, ptr %522, align 8, !tbaa !23
  %524 = fmul double %518, %523
  %525 = fneg double %524
  %526 = call double @llvm.fmuladd.f64(double %508, double %513, double %525)
  %527 = load double, ptr %34, align 8, !tbaa !23
  %528 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %526, double %527)
  %529 = load ptr, ptr %17, align 8, !tbaa !5
  %530 = load i32, ptr %33, align 4, !tbaa !9
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds double, ptr %529, i64 %531
  store double %528, ptr %532, align 8, !tbaa !23
  %533 = load ptr, ptr %29, align 8, !tbaa !5
  %534 = load i32, ptr %33, align 4, !tbaa !9
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds double, ptr %533, i64 %535
  %537 = load double, ptr %536, align 8, !tbaa !23
  %538 = load ptr, ptr %30, align 8, !tbaa !5
  %539 = load i32, ptr %33, align 4, !tbaa !9
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds double, ptr %538, i64 %540
  %542 = load double, ptr %541, align 8, !tbaa !23
  %543 = load ptr, ptr %30, align 8, !tbaa !5
  %544 = load i32, ptr %33, align 4, !tbaa !9
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds double, ptr %543, i64 %545
  %547 = load double, ptr %546, align 8, !tbaa !23
  %548 = load ptr, ptr %29, align 8, !tbaa !5
  %549 = load i32, ptr %33, align 4, !tbaa !9
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds double, ptr %548, i64 %550
  %552 = load double, ptr %551, align 8, !tbaa !23
  %553 = fmul double %547, %552
  %554 = call double @llvm.fmuladd.f64(double %537, double %542, double %553)
  %555 = load double, ptr %35, align 8, !tbaa !23
  %556 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %554, double %555)
  %557 = load ptr, ptr %18, align 8, !tbaa !5
  %558 = load i32, ptr %33, align 4, !tbaa !9
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds double, ptr %557, i64 %559
  store double %556, ptr %560, align 8, !tbaa !23
  %561 = load ptr, ptr %31, align 8, !tbaa !5
  %562 = load i32, ptr %33, align 4, !tbaa !9
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds double, ptr %561, i64 %563
  %565 = load double, ptr %564, align 8, !tbaa !23
  %566 = load ptr, ptr %31, align 8, !tbaa !5
  %567 = load i32, ptr %33, align 4, !tbaa !9
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds double, ptr %566, i64 %568
  %570 = load double, ptr %569, align 8, !tbaa !23
  %571 = load ptr, ptr %32, align 8, !tbaa !5
  %572 = load i32, ptr %33, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds double, ptr %571, i64 %573
  %575 = load double, ptr %574, align 8, !tbaa !23
  %576 = load ptr, ptr %32, align 8, !tbaa !5
  %577 = load i32, ptr %33, align 4, !tbaa !9
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds double, ptr %576, i64 %578
  %580 = load double, ptr %579, align 8, !tbaa !23
  %581 = fmul double %575, %580
  %582 = fneg double %581
  %583 = call double @llvm.fmuladd.f64(double %565, double %570, double %582)
  %584 = load double, ptr %34, align 8, !tbaa !23
  %585 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %583, double %584)
  %586 = load ptr, ptr %19, align 8, !tbaa !5
  %587 = load i32, ptr %33, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds double, ptr %586, i64 %588
  store double %585, ptr %589, align 8, !tbaa !23
  %590 = load ptr, ptr %31, align 8, !tbaa !5
  %591 = load i32, ptr %33, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds double, ptr %590, i64 %592
  %594 = load double, ptr %593, align 8, !tbaa !23
  %595 = load ptr, ptr %32, align 8, !tbaa !5
  %596 = load i32, ptr %33, align 4, !tbaa !9
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds double, ptr %595, i64 %597
  %599 = load double, ptr %598, align 8, !tbaa !23
  %600 = load ptr, ptr %32, align 8, !tbaa !5
  %601 = load i32, ptr %33, align 4, !tbaa !9
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds double, ptr %600, i64 %602
  %604 = load double, ptr %603, align 8, !tbaa !23
  %605 = load ptr, ptr %31, align 8, !tbaa !5
  %606 = load i32, ptr %33, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds double, ptr %605, i64 %607
  %609 = load double, ptr %608, align 8, !tbaa !23
  %610 = fmul double %604, %609
  %611 = call double @llvm.fmuladd.f64(double %594, double %599, double %610)
  %612 = load double, ptr %35, align 8, !tbaa !23
  %613 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %611, double %612)
  %614 = load ptr, ptr %20, align 8, !tbaa !5
  %615 = load i32, ptr %33, align 4, !tbaa !9
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds double, ptr %614, i64 %616
  store double %613, ptr %617, align 8, !tbaa !23
  %618 = load ptr, ptr %27, align 8, !tbaa !5
  %619 = load i32, ptr %33, align 4, !tbaa !9
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds double, ptr %618, i64 %620
  %622 = load double, ptr %621, align 8, !tbaa !23
  %623 = load ptr, ptr %29, align 8, !tbaa !5
  %624 = load i32, ptr %33, align 4, !tbaa !9
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds double, ptr %623, i64 %625
  %627 = load double, ptr %626, align 8, !tbaa !23
  %628 = load ptr, ptr %28, align 8, !tbaa !5
  %629 = load i32, ptr %33, align 4, !tbaa !9
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds double, ptr %628, i64 %630
  %632 = load double, ptr %631, align 8, !tbaa !23
  %633 = load ptr, ptr %30, align 8, !tbaa !5
  %634 = load i32, ptr %33, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds double, ptr %633, i64 %635
  %637 = load double, ptr %636, align 8, !tbaa !23
  %638 = fmul double %632, %637
  %639 = fneg double %638
  %640 = call double @llvm.fmuladd.f64(double %622, double %627, double %639)
  %641 = load ptr, ptr %29, align 8, !tbaa !5
  %642 = load i32, ptr %33, align 4, !tbaa !9
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds double, ptr %641, i64 %643
  %645 = load double, ptr %644, align 8, !tbaa !23
  %646 = load ptr, ptr %27, align 8, !tbaa !5
  %647 = load i32, ptr %33, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds double, ptr %646, i64 %648
  %650 = load double, ptr %649, align 8, !tbaa !23
  %651 = call double @llvm.fmuladd.f64(double %645, double %650, double %640)
  %652 = load ptr, ptr %30, align 8, !tbaa !5
  %653 = load i32, ptr %33, align 4, !tbaa !9
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds double, ptr %652, i64 %654
  %656 = load double, ptr %655, align 8, !tbaa !23
  %657 = load ptr, ptr %28, align 8, !tbaa !5
  %658 = load i32, ptr %33, align 4, !tbaa !9
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds double, ptr %657, i64 %659
  %661 = load double, ptr %660, align 8, !tbaa !23
  %662 = fneg double %656
  %663 = call double @llvm.fmuladd.f64(double %662, double %661, double %651)
  %664 = load ptr, ptr %21, align 8, !tbaa !5
  %665 = load i32, ptr %33, align 4, !tbaa !9
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds double, ptr %664, i64 %666
  store double %663, ptr %667, align 8, !tbaa !23
  %668 = load ptr, ptr %27, align 8, !tbaa !5
  %669 = load i32, ptr %33, align 4, !tbaa !9
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds double, ptr %668, i64 %670
  %672 = load double, ptr %671, align 8, !tbaa !23
  %673 = load ptr, ptr %30, align 8, !tbaa !5
  %674 = load i32, ptr %33, align 4, !tbaa !9
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds double, ptr %673, i64 %675
  %677 = load double, ptr %676, align 8, !tbaa !23
  %678 = load ptr, ptr %28, align 8, !tbaa !5
  %679 = load i32, ptr %33, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds double, ptr %678, i64 %680
  %682 = load double, ptr %681, align 8, !tbaa !23
  %683 = load ptr, ptr %29, align 8, !tbaa !5
  %684 = load i32, ptr %33, align 4, !tbaa !9
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds double, ptr %683, i64 %685
  %687 = load double, ptr %686, align 8, !tbaa !23
  %688 = fmul double %682, %687
  %689 = call double @llvm.fmuladd.f64(double %672, double %677, double %688)
  %690 = load ptr, ptr %29, align 8, !tbaa !5
  %691 = load i32, ptr %33, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds double, ptr %690, i64 %692
  %694 = load double, ptr %693, align 8, !tbaa !23
  %695 = load ptr, ptr %28, align 8, !tbaa !5
  %696 = load i32, ptr %33, align 4, !tbaa !9
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds double, ptr %695, i64 %697
  %699 = load double, ptr %698, align 8, !tbaa !23
  %700 = call double @llvm.fmuladd.f64(double %694, double %699, double %689)
  %701 = load ptr, ptr %30, align 8, !tbaa !5
  %702 = load i32, ptr %33, align 4, !tbaa !9
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds double, ptr %701, i64 %703
  %705 = load double, ptr %704, align 8, !tbaa !23
  %706 = load ptr, ptr %27, align 8, !tbaa !5
  %707 = load i32, ptr %33, align 4, !tbaa !9
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds double, ptr %706, i64 %708
  %710 = load double, ptr %709, align 8, !tbaa !23
  %711 = call double @llvm.fmuladd.f64(double %705, double %710, double %700)
  %712 = load ptr, ptr %22, align 8, !tbaa !5
  %713 = load i32, ptr %33, align 4, !tbaa !9
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds double, ptr %712, i64 %714
  store double %711, ptr %715, align 8, !tbaa !23
  %716 = load ptr, ptr %27, align 8, !tbaa !5
  %717 = load i32, ptr %33, align 4, !tbaa !9
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds double, ptr %716, i64 %718
  %720 = load double, ptr %719, align 8, !tbaa !23
  %721 = load ptr, ptr %31, align 8, !tbaa !5
  %722 = load i32, ptr %33, align 4, !tbaa !9
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds double, ptr %721, i64 %723
  %725 = load double, ptr %724, align 8, !tbaa !23
  %726 = load ptr, ptr %28, align 8, !tbaa !5
  %727 = load i32, ptr %33, align 4, !tbaa !9
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds double, ptr %726, i64 %728
  %730 = load double, ptr %729, align 8, !tbaa !23
  %731 = load ptr, ptr %32, align 8, !tbaa !5
  %732 = load i32, ptr %33, align 4, !tbaa !9
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds double, ptr %731, i64 %733
  %735 = load double, ptr %734, align 8, !tbaa !23
  %736 = fmul double %730, %735
  %737 = fneg double %736
  %738 = call double @llvm.fmuladd.f64(double %720, double %725, double %737)
  %739 = load ptr, ptr %31, align 8, !tbaa !5
  %740 = load i32, ptr %33, align 4, !tbaa !9
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds double, ptr %739, i64 %741
  %743 = load double, ptr %742, align 8, !tbaa !23
  %744 = load ptr, ptr %27, align 8, !tbaa !5
  %745 = load i32, ptr %33, align 4, !tbaa !9
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds double, ptr %744, i64 %746
  %748 = load double, ptr %747, align 8, !tbaa !23
  %749 = call double @llvm.fmuladd.f64(double %743, double %748, double %738)
  %750 = load ptr, ptr %32, align 8, !tbaa !5
  %751 = load i32, ptr %33, align 4, !tbaa !9
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds double, ptr %750, i64 %752
  %754 = load double, ptr %753, align 8, !tbaa !23
  %755 = load ptr, ptr %28, align 8, !tbaa !5
  %756 = load i32, ptr %33, align 4, !tbaa !9
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds double, ptr %755, i64 %757
  %759 = load double, ptr %758, align 8, !tbaa !23
  %760 = fneg double %754
  %761 = call double @llvm.fmuladd.f64(double %760, double %759, double %749)
  %762 = load ptr, ptr %23, align 8, !tbaa !5
  %763 = load i32, ptr %33, align 4, !tbaa !9
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds double, ptr %762, i64 %764
  store double %761, ptr %765, align 8, !tbaa !23
  %766 = load ptr, ptr %27, align 8, !tbaa !5
  %767 = load i32, ptr %33, align 4, !tbaa !9
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds double, ptr %766, i64 %768
  %770 = load double, ptr %769, align 8, !tbaa !23
  %771 = load ptr, ptr %32, align 8, !tbaa !5
  %772 = load i32, ptr %33, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds double, ptr %771, i64 %773
  %775 = load double, ptr %774, align 8, !tbaa !23
  %776 = load ptr, ptr %28, align 8, !tbaa !5
  %777 = load i32, ptr %33, align 4, !tbaa !9
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds double, ptr %776, i64 %778
  %780 = load double, ptr %779, align 8, !tbaa !23
  %781 = load ptr, ptr %31, align 8, !tbaa !5
  %782 = load i32, ptr %33, align 4, !tbaa !9
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds double, ptr %781, i64 %783
  %785 = load double, ptr %784, align 8, !tbaa !23
  %786 = fmul double %780, %785
  %787 = call double @llvm.fmuladd.f64(double %770, double %775, double %786)
  %788 = load ptr, ptr %31, align 8, !tbaa !5
  %789 = load i32, ptr %33, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds double, ptr %788, i64 %790
  %792 = load double, ptr %791, align 8, !tbaa !23
  %793 = load ptr, ptr %28, align 8, !tbaa !5
  %794 = load i32, ptr %33, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds double, ptr %793, i64 %795
  %797 = load double, ptr %796, align 8, !tbaa !23
  %798 = call double @llvm.fmuladd.f64(double %792, double %797, double %787)
  %799 = load ptr, ptr %32, align 8, !tbaa !5
  %800 = load i32, ptr %33, align 4, !tbaa !9
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds double, ptr %799, i64 %801
  %803 = load double, ptr %802, align 8, !tbaa !23
  %804 = load ptr, ptr %27, align 8, !tbaa !5
  %805 = load i32, ptr %33, align 4, !tbaa !9
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds double, ptr %804, i64 %806
  %808 = load double, ptr %807, align 8, !tbaa !23
  %809 = call double @llvm.fmuladd.f64(double %803, double %808, double %798)
  %810 = load ptr, ptr %24, align 8, !tbaa !5
  %811 = load i32, ptr %33, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds double, ptr %810, i64 %812
  store double %809, ptr %813, align 8, !tbaa !23
  %814 = load ptr, ptr %29, align 8, !tbaa !5
  %815 = load i32, ptr %33, align 4, !tbaa !9
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds double, ptr %814, i64 %816
  %818 = load double, ptr %817, align 8, !tbaa !23
  %819 = load ptr, ptr %31, align 8, !tbaa !5
  %820 = load i32, ptr %33, align 4, !tbaa !9
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds double, ptr %819, i64 %821
  %823 = load double, ptr %822, align 8, !tbaa !23
  %824 = load ptr, ptr %30, align 8, !tbaa !5
  %825 = load i32, ptr %33, align 4, !tbaa !9
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds double, ptr %824, i64 %826
  %828 = load double, ptr %827, align 8, !tbaa !23
  %829 = load ptr, ptr %32, align 8, !tbaa !5
  %830 = load i32, ptr %33, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds double, ptr %829, i64 %831
  %833 = load double, ptr %832, align 8, !tbaa !23
  %834 = fmul double %828, %833
  %835 = fneg double %834
  %836 = call double @llvm.fmuladd.f64(double %818, double %823, double %835)
  %837 = load ptr, ptr %31, align 8, !tbaa !5
  %838 = load i32, ptr %33, align 4, !tbaa !9
  %839 = sext i32 %838 to i64
  %840 = getelementptr inbounds double, ptr %837, i64 %839
  %841 = load double, ptr %840, align 8, !tbaa !23
  %842 = load ptr, ptr %29, align 8, !tbaa !5
  %843 = load i32, ptr %33, align 4, !tbaa !9
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds double, ptr %842, i64 %844
  %846 = load double, ptr %845, align 8, !tbaa !23
  %847 = call double @llvm.fmuladd.f64(double %841, double %846, double %836)
  %848 = load ptr, ptr %32, align 8, !tbaa !5
  %849 = load i32, ptr %33, align 4, !tbaa !9
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds double, ptr %848, i64 %850
  %852 = load double, ptr %851, align 8, !tbaa !23
  %853 = load ptr, ptr %30, align 8, !tbaa !5
  %854 = load i32, ptr %33, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds double, ptr %853, i64 %855
  %857 = load double, ptr %856, align 8, !tbaa !23
  %858 = fneg double %852
  %859 = call double @llvm.fmuladd.f64(double %858, double %857, double %847)
  %860 = load ptr, ptr %25, align 8, !tbaa !5
  %861 = load i32, ptr %33, align 4, !tbaa !9
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds double, ptr %860, i64 %862
  store double %859, ptr %863, align 8, !tbaa !23
  %864 = load ptr, ptr %29, align 8, !tbaa !5
  %865 = load i32, ptr %33, align 4, !tbaa !9
  %866 = sext i32 %865 to i64
  %867 = getelementptr inbounds double, ptr %864, i64 %866
  %868 = load double, ptr %867, align 8, !tbaa !23
  %869 = load ptr, ptr %32, align 8, !tbaa !5
  %870 = load i32, ptr %33, align 4, !tbaa !9
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds double, ptr %869, i64 %871
  %873 = load double, ptr %872, align 8, !tbaa !23
  %874 = load ptr, ptr %30, align 8, !tbaa !5
  %875 = load i32, ptr %33, align 4, !tbaa !9
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds double, ptr %874, i64 %876
  %878 = load double, ptr %877, align 8, !tbaa !23
  %879 = load ptr, ptr %31, align 8, !tbaa !5
  %880 = load i32, ptr %33, align 4, !tbaa !9
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds double, ptr %879, i64 %881
  %883 = load double, ptr %882, align 8, !tbaa !23
  %884 = fmul double %878, %883
  %885 = call double @llvm.fmuladd.f64(double %868, double %873, double %884)
  %886 = load ptr, ptr %31, align 8, !tbaa !5
  %887 = load i32, ptr %33, align 4, !tbaa !9
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds double, ptr %886, i64 %888
  %890 = load double, ptr %889, align 8, !tbaa !23
  %891 = load ptr, ptr %30, align 8, !tbaa !5
  %892 = load i32, ptr %33, align 4, !tbaa !9
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds double, ptr %891, i64 %893
  %895 = load double, ptr %894, align 8, !tbaa !23
  %896 = call double @llvm.fmuladd.f64(double %890, double %895, double %885)
  %897 = load ptr, ptr %32, align 8, !tbaa !5
  %898 = load i32, ptr %33, align 4, !tbaa !9
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds double, ptr %897, i64 %899
  %901 = load double, ptr %900, align 8, !tbaa !23
  %902 = load ptr, ptr %29, align 8, !tbaa !5
  %903 = load i32, ptr %33, align 4, !tbaa !9
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds double, ptr %902, i64 %904
  %906 = load double, ptr %905, align 8, !tbaa !23
  %907 = call double @llvm.fmuladd.f64(double %901, double %906, double %896)
  %908 = load ptr, ptr %26, align 8, !tbaa !5
  %909 = load i32, ptr %33, align 4, !tbaa !9
  %910 = sext i32 %909 to i64
  %911 = getelementptr inbounds double, ptr %908, i64 %910
  store double %907, ptr %911, align 8, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %912

912:                                              ; preds = %310
  %913 = load i32, ptr %33, align 4, !tbaa !9
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr %33, align 4, !tbaa !9
  br label %305, !llvm.loop !25

915:                                              ; preds = %309
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %916

916:                                              ; preds = %915
  %917 = load i32, ptr %13, align 4, !tbaa !9
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr %13, align 4, !tbaa !9
  br label %218, !llvm.loop !27

919:                                              ; preds = %223
  br label %4155

920:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  %921 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %921)
  %922 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.3)
          to label %923 unwind label %931

923:                                              ; preds = %920
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  br i1 %922, label %924, label %1308

924:                                              ; preds = %923
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %925

925:                                              ; preds = %1304, %924
  %926 = load i32, ptr %37, align 4, !tbaa !9
  %927 = load i32, ptr %7, align 4, !tbaa !9
  %928 = sdiv i32 %927, 6
  %929 = icmp slt i32 %926, %928
  br i1 %929, label %935, label %930

930:                                              ; preds = %925
  store i32 8, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %1307

931:                                              ; preds = %920
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %11, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  br label %4157

935:                                              ; preds = %925
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %936 = load i32, ptr %37, align 4, !tbaa !9
  %937 = mul nsw i32 6, %936
  %938 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %937)
  store ptr %938, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %939 = load i32, ptr %37, align 4, !tbaa !9
  %940 = mul nsw i32 6, %939
  %941 = add nsw i32 %940, 1
  %942 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %941)
  store ptr %942, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %943 = load i32, ptr %37, align 4, !tbaa !9
  %944 = mul nsw i32 6, %943
  %945 = add nsw i32 %944, 2
  %946 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %945)
  store ptr %946, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %947 = load i32, ptr %37, align 4, !tbaa !9
  %948 = mul nsw i32 6, %947
  %949 = add nsw i32 %948, 3
  %950 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %949)
  store ptr %950, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %951 = load i32, ptr %37, align 4, !tbaa !9
  %952 = mul nsw i32 6, %951
  %953 = add nsw i32 %952, 4
  %954 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %953)
  store ptr %954, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %955 = load i32, ptr %37, align 4, !tbaa !9
  %956 = mul nsw i32 6, %955
  %957 = add nsw i32 %956, 5
  %958 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %957)
  store ptr %958, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %959 = load ptr, ptr %6, align 8, !tbaa !5
  %960 = load i32, ptr %37, align 4, !tbaa !9
  %961 = mul nsw i32 6, %960
  %962 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %959, i32 noundef %961)
  store ptr %962, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %963 = load ptr, ptr %6, align 8, !tbaa !5
  %964 = load i32, ptr %37, align 4, !tbaa !9
  %965 = mul nsw i32 6, %964
  %966 = add nsw i32 %965, 1
  %967 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %963, i32 noundef %966)
  store ptr %967, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %968 = load ptr, ptr %6, align 8, !tbaa !5
  %969 = load i32, ptr %37, align 4, !tbaa !9
  %970 = mul nsw i32 6, %969
  %971 = add nsw i32 %970, 2
  %972 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %968, i32 noundef %971)
  store ptr %972, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %973 = load ptr, ptr %6, align 8, !tbaa !5
  %974 = load i32, ptr %37, align 4, !tbaa !9
  %975 = mul nsw i32 6, %974
  %976 = add nsw i32 %975, 3
  %977 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %973, i32 noundef %976)
  store ptr %977, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %978 = load ptr, ptr %6, align 8, !tbaa !5
  %979 = load i32, ptr %37, align 4, !tbaa !9
  %980 = mul nsw i32 6, %979
  %981 = add nsw i32 %980, 4
  %982 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %978, i32 noundef %981)
  store ptr %982, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %983 = load ptr, ptr %6, align 8, !tbaa !5
  %984 = load i32, ptr %37, align 4, !tbaa !9
  %985 = mul nsw i32 6, %984
  %986 = add nsw i32 %985, 5
  %987 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %983, i32 noundef %986)
  store ptr %987, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %988

988:                                              ; preds = %1300, %935
  %989 = load i32, ptr %50, align 4, !tbaa !9
  %990 = load i32, ptr %9, align 4, !tbaa !9
  %991 = icmp slt i32 %989, %990
  br i1 %991, label %993, label %992

992:                                              ; preds = %988
  store i32 11, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %1303

993:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %994 = load ptr, ptr %44, align 8, !tbaa !5
  %995 = load i32, ptr %50, align 4, !tbaa !9
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds double, ptr %994, i64 %996
  %998 = load double, ptr %997, align 8, !tbaa !23
  %999 = load ptr, ptr %44, align 8, !tbaa !5
  %1000 = load i32, ptr %50, align 4, !tbaa !9
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds double, ptr %999, i64 %1001
  %1003 = load double, ptr %1002, align 8, !tbaa !23
  %1004 = load ptr, ptr %46, align 8, !tbaa !5
  %1005 = load i32, ptr %50, align 4, !tbaa !9
  %1006 = sext i32 %1005 to i64
  %1007 = getelementptr inbounds double, ptr %1004, i64 %1006
  %1008 = load double, ptr %1007, align 8, !tbaa !23
  %1009 = load ptr, ptr %46, align 8, !tbaa !5
  %1010 = load i32, ptr %50, align 4, !tbaa !9
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds double, ptr %1009, i64 %1011
  %1013 = load double, ptr %1012, align 8, !tbaa !23
  %1014 = fmul double %1008, %1013
  %1015 = call double @llvm.fmuladd.f64(double %998, double %1003, double %1014)
  %1016 = load ptr, ptr %48, align 8, !tbaa !5
  %1017 = load i32, ptr %50, align 4, !tbaa !9
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds double, ptr %1016, i64 %1018
  %1020 = load double, ptr %1019, align 8, !tbaa !23
  %1021 = load ptr, ptr %48, align 8, !tbaa !5
  %1022 = load i32, ptr %50, align 4, !tbaa !9
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds double, ptr %1021, i64 %1023
  %1025 = load double, ptr %1024, align 8, !tbaa !23
  %1026 = call double @llvm.fmuladd.f64(double %1020, double %1025, double %1015)
  %1027 = load ptr, ptr %45, align 8, !tbaa !5
  %1028 = load i32, ptr %50, align 4, !tbaa !9
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds double, ptr %1027, i64 %1029
  %1031 = load double, ptr %1030, align 8, !tbaa !23
  %1032 = load ptr, ptr %45, align 8, !tbaa !5
  %1033 = load i32, ptr %50, align 4, !tbaa !9
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds double, ptr %1032, i64 %1034
  %1036 = load double, ptr %1035, align 8, !tbaa !23
  %1037 = load ptr, ptr %47, align 8, !tbaa !5
  %1038 = load i32, ptr %50, align 4, !tbaa !9
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds double, ptr %1037, i64 %1039
  %1041 = load double, ptr %1040, align 8, !tbaa !23
  %1042 = load ptr, ptr %47, align 8, !tbaa !5
  %1043 = load i32, ptr %50, align 4, !tbaa !9
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds double, ptr %1042, i64 %1044
  %1046 = load double, ptr %1045, align 8, !tbaa !23
  %1047 = fmul double %1041, %1046
  %1048 = call double @llvm.fmuladd.f64(double %1031, double %1036, double %1047)
  %1049 = load ptr, ptr %49, align 8, !tbaa !5
  %1050 = load i32, ptr %50, align 4, !tbaa !9
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds double, ptr %1049, i64 %1051
  %1053 = load double, ptr %1052, align 8, !tbaa !23
  %1054 = load ptr, ptr %49, align 8, !tbaa !5
  %1055 = load i32, ptr %50, align 4, !tbaa !9
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds double, ptr %1054, i64 %1056
  %1058 = load double, ptr %1057, align 8, !tbaa !23
  %1059 = call double @llvm.fmuladd.f64(double %1053, double %1058, double %1048)
  %1060 = fmul double 2.000000e+00, %1059
  %1061 = fneg double %1060
  %1062 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1026, double %1061)
  store double %1062, ptr %51, align 8, !tbaa !23
  %1063 = load ptr, ptr %44, align 8, !tbaa !5
  %1064 = load i32, ptr %50, align 4, !tbaa !9
  %1065 = sext i32 %1064 to i64
  %1066 = getelementptr inbounds double, ptr %1063, i64 %1065
  %1067 = load double, ptr %1066, align 8, !tbaa !23
  %1068 = load ptr, ptr %44, align 8, !tbaa !5
  %1069 = load i32, ptr %50, align 4, !tbaa !9
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds double, ptr %1068, i64 %1070
  %1072 = load double, ptr %1071, align 8, !tbaa !23
  %1073 = load ptr, ptr %45, align 8, !tbaa !5
  %1074 = load i32, ptr %50, align 4, !tbaa !9
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds double, ptr %1073, i64 %1075
  %1077 = load double, ptr %1076, align 8, !tbaa !23
  %1078 = load ptr, ptr %45, align 8, !tbaa !5
  %1079 = load i32, ptr %50, align 4, !tbaa !9
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds double, ptr %1078, i64 %1080
  %1082 = load double, ptr %1081, align 8, !tbaa !23
  %1083 = fmul double %1077, %1082
  %1084 = fneg double %1083
  %1085 = call double @llvm.fmuladd.f64(double %1067, double %1072, double %1084)
  %1086 = load double, ptr %51, align 8, !tbaa !23
  %1087 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %1085, double %1086)
  %1088 = load ptr, ptr %38, align 8, !tbaa !5
  %1089 = load i32, ptr %50, align 4, !tbaa !9
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds double, ptr %1088, i64 %1090
  store double %1087, ptr %1091, align 8, !tbaa !23
  %1092 = load ptr, ptr %46, align 8, !tbaa !5
  %1093 = load i32, ptr %50, align 4, !tbaa !9
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds double, ptr %1092, i64 %1094
  %1096 = load double, ptr %1095, align 8, !tbaa !23
  %1097 = load ptr, ptr %46, align 8, !tbaa !5
  %1098 = load i32, ptr %50, align 4, !tbaa !9
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds double, ptr %1097, i64 %1099
  %1101 = load double, ptr %1100, align 8, !tbaa !23
  %1102 = load ptr, ptr %47, align 8, !tbaa !5
  %1103 = load i32, ptr %50, align 4, !tbaa !9
  %1104 = sext i32 %1103 to i64
  %1105 = getelementptr inbounds double, ptr %1102, i64 %1104
  %1106 = load double, ptr %1105, align 8, !tbaa !23
  %1107 = load ptr, ptr %47, align 8, !tbaa !5
  %1108 = load i32, ptr %50, align 4, !tbaa !9
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds double, ptr %1107, i64 %1109
  %1111 = load double, ptr %1110, align 8, !tbaa !23
  %1112 = fmul double %1106, %1111
  %1113 = fneg double %1112
  %1114 = call double @llvm.fmuladd.f64(double %1096, double %1101, double %1113)
  %1115 = load double, ptr %51, align 8, !tbaa !23
  %1116 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %1114, double %1115)
  %1117 = load ptr, ptr %39, align 8, !tbaa !5
  %1118 = load i32, ptr %50, align 4, !tbaa !9
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds double, ptr %1117, i64 %1119
  store double %1116, ptr %1120, align 8, !tbaa !23
  %1121 = load ptr, ptr %48, align 8, !tbaa !5
  %1122 = load i32, ptr %50, align 4, !tbaa !9
  %1123 = sext i32 %1122 to i64
  %1124 = getelementptr inbounds double, ptr %1121, i64 %1123
  %1125 = load double, ptr %1124, align 8, !tbaa !23
  %1126 = load ptr, ptr %48, align 8, !tbaa !5
  %1127 = load i32, ptr %50, align 4, !tbaa !9
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds double, ptr %1126, i64 %1128
  %1130 = load double, ptr %1129, align 8, !tbaa !23
  %1131 = load ptr, ptr %49, align 8, !tbaa !5
  %1132 = load i32, ptr %50, align 4, !tbaa !9
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds double, ptr %1131, i64 %1133
  %1135 = load double, ptr %1134, align 8, !tbaa !23
  %1136 = load ptr, ptr %49, align 8, !tbaa !5
  %1137 = load i32, ptr %50, align 4, !tbaa !9
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds double, ptr %1136, i64 %1138
  %1140 = load double, ptr %1139, align 8, !tbaa !23
  %1141 = fmul double %1135, %1140
  %1142 = fneg double %1141
  %1143 = call double @llvm.fmuladd.f64(double %1125, double %1130, double %1142)
  %1144 = load double, ptr %51, align 8, !tbaa !23
  %1145 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %1143, double %1144)
  %1146 = load ptr, ptr %40, align 8, !tbaa !5
  %1147 = load i32, ptr %50, align 4, !tbaa !9
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds double, ptr %1146, i64 %1148
  store double %1145, ptr %1149, align 8, !tbaa !23
  %1150 = load ptr, ptr %44, align 8, !tbaa !5
  %1151 = load i32, ptr %50, align 4, !tbaa !9
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds double, ptr %1150, i64 %1152
  %1154 = load double, ptr %1153, align 8, !tbaa !23
  %1155 = load ptr, ptr %46, align 8, !tbaa !5
  %1156 = load i32, ptr %50, align 4, !tbaa !9
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds double, ptr %1155, i64 %1157
  %1159 = load double, ptr %1158, align 8, !tbaa !23
  %1160 = load ptr, ptr %45, align 8, !tbaa !5
  %1161 = load i32, ptr %50, align 4, !tbaa !9
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds double, ptr %1160, i64 %1162
  %1164 = load double, ptr %1163, align 8, !tbaa !23
  %1165 = load ptr, ptr %47, align 8, !tbaa !5
  %1166 = load i32, ptr %50, align 4, !tbaa !9
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds double, ptr %1165, i64 %1167
  %1169 = load double, ptr %1168, align 8, !tbaa !23
  %1170 = fmul double %1164, %1169
  %1171 = fneg double %1170
  %1172 = call double @llvm.fmuladd.f64(double %1154, double %1159, double %1171)
  %1173 = load ptr, ptr %46, align 8, !tbaa !5
  %1174 = load i32, ptr %50, align 4, !tbaa !9
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds double, ptr %1173, i64 %1175
  %1177 = load double, ptr %1176, align 8, !tbaa !23
  %1178 = load ptr, ptr %44, align 8, !tbaa !5
  %1179 = load i32, ptr %50, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds double, ptr %1178, i64 %1180
  %1182 = load double, ptr %1181, align 8, !tbaa !23
  %1183 = call double @llvm.fmuladd.f64(double %1177, double %1182, double %1172)
  %1184 = load ptr, ptr %47, align 8, !tbaa !5
  %1185 = load i32, ptr %50, align 4, !tbaa !9
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds double, ptr %1184, i64 %1186
  %1188 = load double, ptr %1187, align 8, !tbaa !23
  %1189 = load ptr, ptr %45, align 8, !tbaa !5
  %1190 = load i32, ptr %50, align 4, !tbaa !9
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds double, ptr %1189, i64 %1191
  %1193 = load double, ptr %1192, align 8, !tbaa !23
  %1194 = fneg double %1188
  %1195 = call double @llvm.fmuladd.f64(double %1194, double %1193, double %1183)
  %1196 = load ptr, ptr %41, align 8, !tbaa !5
  %1197 = load i32, ptr %50, align 4, !tbaa !9
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds double, ptr %1196, i64 %1198
  store double %1195, ptr %1199, align 8, !tbaa !23
  %1200 = load ptr, ptr %44, align 8, !tbaa !5
  %1201 = load i32, ptr %50, align 4, !tbaa !9
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds double, ptr %1200, i64 %1202
  %1204 = load double, ptr %1203, align 8, !tbaa !23
  %1205 = load ptr, ptr %48, align 8, !tbaa !5
  %1206 = load i32, ptr %50, align 4, !tbaa !9
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds double, ptr %1205, i64 %1207
  %1209 = load double, ptr %1208, align 8, !tbaa !23
  %1210 = load ptr, ptr %45, align 8, !tbaa !5
  %1211 = load i32, ptr %50, align 4, !tbaa !9
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds double, ptr %1210, i64 %1212
  %1214 = load double, ptr %1213, align 8, !tbaa !23
  %1215 = load ptr, ptr %49, align 8, !tbaa !5
  %1216 = load i32, ptr %50, align 4, !tbaa !9
  %1217 = sext i32 %1216 to i64
  %1218 = getelementptr inbounds double, ptr %1215, i64 %1217
  %1219 = load double, ptr %1218, align 8, !tbaa !23
  %1220 = fmul double %1214, %1219
  %1221 = fneg double %1220
  %1222 = call double @llvm.fmuladd.f64(double %1204, double %1209, double %1221)
  %1223 = load ptr, ptr %48, align 8, !tbaa !5
  %1224 = load i32, ptr %50, align 4, !tbaa !9
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds double, ptr %1223, i64 %1225
  %1227 = load double, ptr %1226, align 8, !tbaa !23
  %1228 = load ptr, ptr %44, align 8, !tbaa !5
  %1229 = load i32, ptr %50, align 4, !tbaa !9
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds double, ptr %1228, i64 %1230
  %1232 = load double, ptr %1231, align 8, !tbaa !23
  %1233 = call double @llvm.fmuladd.f64(double %1227, double %1232, double %1222)
  %1234 = load ptr, ptr %49, align 8, !tbaa !5
  %1235 = load i32, ptr %50, align 4, !tbaa !9
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds double, ptr %1234, i64 %1236
  %1238 = load double, ptr %1237, align 8, !tbaa !23
  %1239 = load ptr, ptr %45, align 8, !tbaa !5
  %1240 = load i32, ptr %50, align 4, !tbaa !9
  %1241 = sext i32 %1240 to i64
  %1242 = getelementptr inbounds double, ptr %1239, i64 %1241
  %1243 = load double, ptr %1242, align 8, !tbaa !23
  %1244 = fneg double %1238
  %1245 = call double @llvm.fmuladd.f64(double %1244, double %1243, double %1233)
  %1246 = load ptr, ptr %42, align 8, !tbaa !5
  %1247 = load i32, ptr %50, align 4, !tbaa !9
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds double, ptr %1246, i64 %1248
  store double %1245, ptr %1249, align 8, !tbaa !23
  %1250 = load ptr, ptr %46, align 8, !tbaa !5
  %1251 = load i32, ptr %50, align 4, !tbaa !9
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds double, ptr %1250, i64 %1252
  %1254 = load double, ptr %1253, align 8, !tbaa !23
  %1255 = load ptr, ptr %48, align 8, !tbaa !5
  %1256 = load i32, ptr %50, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds double, ptr %1255, i64 %1257
  %1259 = load double, ptr %1258, align 8, !tbaa !23
  %1260 = load ptr, ptr %47, align 8, !tbaa !5
  %1261 = load i32, ptr %50, align 4, !tbaa !9
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds double, ptr %1260, i64 %1262
  %1264 = load double, ptr %1263, align 8, !tbaa !23
  %1265 = load ptr, ptr %49, align 8, !tbaa !5
  %1266 = load i32, ptr %50, align 4, !tbaa !9
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds double, ptr %1265, i64 %1267
  %1269 = load double, ptr %1268, align 8, !tbaa !23
  %1270 = fmul double %1264, %1269
  %1271 = fneg double %1270
  %1272 = call double @llvm.fmuladd.f64(double %1254, double %1259, double %1271)
  %1273 = load ptr, ptr %48, align 8, !tbaa !5
  %1274 = load i32, ptr %50, align 4, !tbaa !9
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds double, ptr %1273, i64 %1275
  %1277 = load double, ptr %1276, align 8, !tbaa !23
  %1278 = load ptr, ptr %46, align 8, !tbaa !5
  %1279 = load i32, ptr %50, align 4, !tbaa !9
  %1280 = sext i32 %1279 to i64
  %1281 = getelementptr inbounds double, ptr %1278, i64 %1280
  %1282 = load double, ptr %1281, align 8, !tbaa !23
  %1283 = call double @llvm.fmuladd.f64(double %1277, double %1282, double %1272)
  %1284 = load ptr, ptr %49, align 8, !tbaa !5
  %1285 = load i32, ptr %50, align 4, !tbaa !9
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds double, ptr %1284, i64 %1286
  %1288 = load double, ptr %1287, align 8, !tbaa !23
  %1289 = load ptr, ptr %47, align 8, !tbaa !5
  %1290 = load i32, ptr %50, align 4, !tbaa !9
  %1291 = sext i32 %1290 to i64
  %1292 = getelementptr inbounds double, ptr %1289, i64 %1291
  %1293 = load double, ptr %1292, align 8, !tbaa !23
  %1294 = fneg double %1288
  %1295 = call double @llvm.fmuladd.f64(double %1294, double %1293, double %1283)
  %1296 = load ptr, ptr %43, align 8, !tbaa !5
  %1297 = load i32, ptr %50, align 4, !tbaa !9
  %1298 = sext i32 %1297 to i64
  %1299 = getelementptr inbounds double, ptr %1296, i64 %1298
  store double %1295, ptr %1299, align 8, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %1300

1300:                                             ; preds = %993
  %1301 = load i32, ptr %50, align 4, !tbaa !9
  %1302 = add nsw i32 %1301, 1
  store i32 %1302, ptr %50, align 4, !tbaa !9
  br label %988, !llvm.loop !28

1303:                                             ; preds = %992
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %1304

1304:                                             ; preds = %1303
  %1305 = load i32, ptr %37, align 4, !tbaa !9
  %1306 = add nsw i32 %1305, 1
  store i32 %1306, ptr %37, align 4, !tbaa !9
  br label %925, !llvm.loop !29

1307:                                             ; preds = %930
  br label %4154

1308:                                             ; preds = %923
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  %1309 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %1309)
  %1310 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.4)
          to label %1311 unwind label %1319

1311:                                             ; preds = %1308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  br i1 %1310, label %1312, label %2380

1312:                                             ; preds = %1311
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %1313

1313:                                             ; preds = %2376, %1312
  %1314 = load i32, ptr %53, align 4, !tbaa !9
  %1315 = load i32, ptr %7, align 4, !tbaa !9
  %1316 = sdiv i32 %1315, 6
  %1317 = icmp slt i32 %1314, %1316
  br i1 %1317, label %1323, label %1318

1318:                                             ; preds = %1313
  store i32 14, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %2379

1319:                                             ; preds = %1308
  %1320 = landingpad { ptr, i32 }
          cleanup
  %1321 = extractvalue { ptr, i32 } %1320, 0
  store ptr %1321, ptr %11, align 8
  %1322 = extractvalue { ptr, i32 } %1320, 1
  store i32 %1322, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  br label %4157

1323:                                             ; preds = %1313
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %1324 = load i32, ptr %53, align 4, !tbaa !9
  %1325 = mul nsw i32 6, %1324
  %1326 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %1325)
  store ptr %1326, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %1327 = load i32, ptr %53, align 4, !tbaa !9
  %1328 = mul nsw i32 6, %1327
  %1329 = add nsw i32 %1328, 1
  %1330 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %1329)
  store ptr %1330, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %1331 = load i32, ptr %53, align 4, !tbaa !9
  %1332 = mul nsw i32 6, %1331
  %1333 = add nsw i32 %1332, 2
  %1334 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %1333)
  store ptr %1334, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %1335 = load i32, ptr %53, align 4, !tbaa !9
  %1336 = mul nsw i32 6, %1335
  %1337 = add nsw i32 %1336, 3
  %1338 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %1337)
  store ptr %1338, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %1339 = load i32, ptr %53, align 4, !tbaa !9
  %1340 = mul nsw i32 6, %1339
  %1341 = add nsw i32 %1340, 4
  %1342 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %1341)
  store ptr %1342, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  %1343 = load i32, ptr %53, align 4, !tbaa !9
  %1344 = mul nsw i32 6, %1343
  %1345 = add nsw i32 %1344, 5
  %1346 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %1345)
  store ptr %1346, ptr %59, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  %1347 = load ptr, ptr %6, align 8, !tbaa !5
  %1348 = load i32, ptr %53, align 4, !tbaa !9
  %1349 = mul nsw i32 36, %1348
  %1350 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1347, i32 noundef %1349)
  store ptr %1350, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  %1351 = load ptr, ptr %6, align 8, !tbaa !5
  %1352 = load i32, ptr %53, align 4, !tbaa !9
  %1353 = mul nsw i32 36, %1352
  %1354 = add nsw i32 %1353, 1
  %1355 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1351, i32 noundef %1354)
  store ptr %1355, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  %1356 = load ptr, ptr %6, align 8, !tbaa !5
  %1357 = load i32, ptr %53, align 4, !tbaa !9
  %1358 = mul nsw i32 36, %1357
  %1359 = add nsw i32 %1358, 2
  %1360 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1356, i32 noundef %1359)
  store ptr %1360, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  %1361 = load ptr, ptr %6, align 8, !tbaa !5
  %1362 = load i32, ptr %53, align 4, !tbaa !9
  %1363 = mul nsw i32 36, %1362
  %1364 = add nsw i32 %1363, 3
  %1365 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1361, i32 noundef %1364)
  store ptr %1365, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %1366 = load ptr, ptr %6, align 8, !tbaa !5
  %1367 = load i32, ptr %53, align 4, !tbaa !9
  %1368 = mul nsw i32 36, %1367
  %1369 = add nsw i32 %1368, 4
  %1370 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1366, i32 noundef %1369)
  store ptr %1370, ptr %64, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %1371 = load ptr, ptr %6, align 8, !tbaa !5
  %1372 = load i32, ptr %53, align 4, !tbaa !9
  %1373 = mul nsw i32 36, %1372
  %1374 = add nsw i32 %1373, 5
  %1375 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1371, i32 noundef %1374)
  store ptr %1375, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %1376 = load ptr, ptr %6, align 8, !tbaa !5
  %1377 = load i32, ptr %53, align 4, !tbaa !9
  %1378 = mul nsw i32 36, %1377
  %1379 = add nsw i32 %1378, 6
  %1380 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1376, i32 noundef %1379)
  store ptr %1380, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  %1381 = load ptr, ptr %6, align 8, !tbaa !5
  %1382 = load i32, ptr %53, align 4, !tbaa !9
  %1383 = mul nsw i32 36, %1382
  %1384 = add nsw i32 %1383, 7
  %1385 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1381, i32 noundef %1384)
  store ptr %1385, ptr %67, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  %1386 = load ptr, ptr %6, align 8, !tbaa !5
  %1387 = load i32, ptr %53, align 4, !tbaa !9
  %1388 = mul nsw i32 36, %1387
  %1389 = add nsw i32 %1388, 8
  %1390 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1386, i32 noundef %1389)
  store ptr %1390, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  %1391 = load ptr, ptr %6, align 8, !tbaa !5
  %1392 = load i32, ptr %53, align 4, !tbaa !9
  %1393 = mul nsw i32 36, %1392
  %1394 = add nsw i32 %1393, 9
  %1395 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1391, i32 noundef %1394)
  store ptr %1395, ptr %69, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  %1396 = load ptr, ptr %6, align 8, !tbaa !5
  %1397 = load i32, ptr %53, align 4, !tbaa !9
  %1398 = mul nsw i32 36, %1397
  %1399 = add nsw i32 %1398, 10
  %1400 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1396, i32 noundef %1399)
  store ptr %1400, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  %1401 = load ptr, ptr %6, align 8, !tbaa !5
  %1402 = load i32, ptr %53, align 4, !tbaa !9
  %1403 = mul nsw i32 36, %1402
  %1404 = add nsw i32 %1403, 11
  %1405 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1401, i32 noundef %1404)
  store ptr %1405, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %1406 = load ptr, ptr %6, align 8, !tbaa !5
  %1407 = load i32, ptr %53, align 4, !tbaa !9
  %1408 = mul nsw i32 36, %1407
  %1409 = add nsw i32 %1408, 12
  %1410 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1406, i32 noundef %1409)
  store ptr %1410, ptr %72, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %1411 = load ptr, ptr %6, align 8, !tbaa !5
  %1412 = load i32, ptr %53, align 4, !tbaa !9
  %1413 = mul nsw i32 36, %1412
  %1414 = add nsw i32 %1413, 13
  %1415 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1411, i32 noundef %1414)
  store ptr %1415, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %1416 = load ptr, ptr %6, align 8, !tbaa !5
  %1417 = load i32, ptr %53, align 4, !tbaa !9
  %1418 = mul nsw i32 36, %1417
  %1419 = add nsw i32 %1418, 14
  %1420 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1416, i32 noundef %1419)
  store ptr %1420, ptr %74, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #7
  %1421 = load ptr, ptr %6, align 8, !tbaa !5
  %1422 = load i32, ptr %53, align 4, !tbaa !9
  %1423 = mul nsw i32 36, %1422
  %1424 = add nsw i32 %1423, 15
  %1425 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1421, i32 noundef %1424)
  store ptr %1425, ptr %75, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #7
  %1426 = load ptr, ptr %6, align 8, !tbaa !5
  %1427 = load i32, ptr %53, align 4, !tbaa !9
  %1428 = mul nsw i32 36, %1427
  %1429 = add nsw i32 %1428, 16
  %1430 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1426, i32 noundef %1429)
  store ptr %1430, ptr %76, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #7
  %1431 = load ptr, ptr %6, align 8, !tbaa !5
  %1432 = load i32, ptr %53, align 4, !tbaa !9
  %1433 = mul nsw i32 36, %1432
  %1434 = add nsw i32 %1433, 17
  %1435 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1431, i32 noundef %1434)
  store ptr %1435, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #7
  %1436 = load ptr, ptr %6, align 8, !tbaa !5
  %1437 = load i32, ptr %53, align 4, !tbaa !9
  %1438 = mul nsw i32 36, %1437
  %1439 = add nsw i32 %1438, 18
  %1440 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1436, i32 noundef %1439)
  store ptr %1440, ptr %78, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #7
  %1441 = load ptr, ptr %6, align 8, !tbaa !5
  %1442 = load i32, ptr %53, align 4, !tbaa !9
  %1443 = mul nsw i32 36, %1442
  %1444 = add nsw i32 %1443, 19
  %1445 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1441, i32 noundef %1444)
  store ptr %1445, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #7
  %1446 = load ptr, ptr %6, align 8, !tbaa !5
  %1447 = load i32, ptr %53, align 4, !tbaa !9
  %1448 = mul nsw i32 36, %1447
  %1449 = add nsw i32 %1448, 20
  %1450 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1446, i32 noundef %1449)
  store ptr %1450, ptr %80, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %1451 = load ptr, ptr %6, align 8, !tbaa !5
  %1452 = load i32, ptr %53, align 4, !tbaa !9
  %1453 = mul nsw i32 36, %1452
  %1454 = add nsw i32 %1453, 21
  %1455 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1451, i32 noundef %1454)
  store ptr %1455, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %1456 = load ptr, ptr %6, align 8, !tbaa !5
  %1457 = load i32, ptr %53, align 4, !tbaa !9
  %1458 = mul nsw i32 36, %1457
  %1459 = add nsw i32 %1458, 22
  %1460 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1456, i32 noundef %1459)
  store ptr %1460, ptr %82, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #7
  %1461 = load ptr, ptr %6, align 8, !tbaa !5
  %1462 = load i32, ptr %53, align 4, !tbaa !9
  %1463 = mul nsw i32 36, %1462
  %1464 = add nsw i32 %1463, 23
  %1465 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1461, i32 noundef %1464)
  store ptr %1465, ptr %83, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #7
  %1466 = load ptr, ptr %6, align 8, !tbaa !5
  %1467 = load i32, ptr %53, align 4, !tbaa !9
  %1468 = mul nsw i32 36, %1467
  %1469 = add nsw i32 %1468, 24
  %1470 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1466, i32 noundef %1469)
  store ptr %1470, ptr %84, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #7
  %1471 = load ptr, ptr %6, align 8, !tbaa !5
  %1472 = load i32, ptr %53, align 4, !tbaa !9
  %1473 = mul nsw i32 36, %1472
  %1474 = add nsw i32 %1473, 25
  %1475 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1471, i32 noundef %1474)
  store ptr %1475, ptr %85, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #7
  %1476 = load ptr, ptr %6, align 8, !tbaa !5
  %1477 = load i32, ptr %53, align 4, !tbaa !9
  %1478 = mul nsw i32 36, %1477
  %1479 = add nsw i32 %1478, 26
  %1480 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1476, i32 noundef %1479)
  store ptr %1480, ptr %86, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #7
  %1481 = load ptr, ptr %6, align 8, !tbaa !5
  %1482 = load i32, ptr %53, align 4, !tbaa !9
  %1483 = mul nsw i32 36, %1482
  %1484 = add nsw i32 %1483, 27
  %1485 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1481, i32 noundef %1484)
  store ptr %1485, ptr %87, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #7
  %1486 = load ptr, ptr %6, align 8, !tbaa !5
  %1487 = load i32, ptr %53, align 4, !tbaa !9
  %1488 = mul nsw i32 36, %1487
  %1489 = add nsw i32 %1488, 28
  %1490 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1486, i32 noundef %1489)
  store ptr %1490, ptr %88, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  %1491 = load ptr, ptr %6, align 8, !tbaa !5
  %1492 = load i32, ptr %53, align 4, !tbaa !9
  %1493 = mul nsw i32 36, %1492
  %1494 = add nsw i32 %1493, 29
  %1495 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1491, i32 noundef %1494)
  store ptr %1495, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %1496 = load ptr, ptr %6, align 8, !tbaa !5
  %1497 = load i32, ptr %53, align 4, !tbaa !9
  %1498 = mul nsw i32 36, %1497
  %1499 = add nsw i32 %1498, 30
  %1500 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1496, i32 noundef %1499)
  store ptr %1500, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #7
  %1501 = load ptr, ptr %6, align 8, !tbaa !5
  %1502 = load i32, ptr %53, align 4, !tbaa !9
  %1503 = mul nsw i32 36, %1502
  %1504 = add nsw i32 %1503, 31
  %1505 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1501, i32 noundef %1504)
  store ptr %1505, ptr %91, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #7
  %1506 = load ptr, ptr %6, align 8, !tbaa !5
  %1507 = load i32, ptr %53, align 4, !tbaa !9
  %1508 = mul nsw i32 36, %1507
  %1509 = add nsw i32 %1508, 32
  %1510 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1506, i32 noundef %1509)
  store ptr %1510, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  %1511 = load ptr, ptr %6, align 8, !tbaa !5
  %1512 = load i32, ptr %53, align 4, !tbaa !9
  %1513 = mul nsw i32 36, %1512
  %1514 = add nsw i32 %1513, 33
  %1515 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1511, i32 noundef %1514)
  store ptr %1515, ptr %93, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #7
  %1516 = load ptr, ptr %6, align 8, !tbaa !5
  %1517 = load i32, ptr %53, align 4, !tbaa !9
  %1518 = mul nsw i32 36, %1517
  %1519 = add nsw i32 %1518, 34
  %1520 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1516, i32 noundef %1519)
  store ptr %1520, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #7
  %1521 = load ptr, ptr %6, align 8, !tbaa !5
  %1522 = load i32, ptr %53, align 4, !tbaa !9
  %1523 = mul nsw i32 36, %1522
  %1524 = add nsw i32 %1523, 35
  %1525 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1521, i32 noundef %1524)
  store ptr %1525, ptr %95, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #7
  store i32 0, ptr %96, align 4, !tbaa !9
  br label %1526

1526:                                             ; preds = %2372, %1323
  %1527 = load i32, ptr %96, align 4, !tbaa !9
  %1528 = load i32, ptr %9, align 4, !tbaa !9
  %1529 = icmp slt i32 %1527, %1528
  br i1 %1529, label %1531, label %1530

1530:                                             ; preds = %1526
  store i32 17, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  br label %2375

1531:                                             ; preds = %1526
  %1532 = load ptr, ptr %72, align 8, !tbaa !5
  %1533 = load i32, ptr %96, align 4, !tbaa !9
  %1534 = sext i32 %1533 to i64
  %1535 = getelementptr inbounds double, ptr %1532, i64 %1534
  %1536 = load double, ptr %1535, align 8, !tbaa !23
  %1537 = load ptr, ptr %66, align 8, !tbaa !5
  %1538 = load i32, ptr %96, align 4, !tbaa !9
  %1539 = sext i32 %1538 to i64
  %1540 = getelementptr inbounds double, ptr %1537, i64 %1539
  %1541 = load double, ptr %1540, align 8, !tbaa !23
  %1542 = load ptr, ptr %73, align 8, !tbaa !5
  %1543 = load i32, ptr %96, align 4, !tbaa !9
  %1544 = sext i32 %1543 to i64
  %1545 = getelementptr inbounds double, ptr %1542, i64 %1544
  %1546 = load double, ptr %1545, align 8, !tbaa !23
  %1547 = load ptr, ptr %67, align 8, !tbaa !5
  %1548 = load i32, ptr %96, align 4, !tbaa !9
  %1549 = sext i32 %1548 to i64
  %1550 = getelementptr inbounds double, ptr %1547, i64 %1549
  %1551 = load double, ptr %1550, align 8, !tbaa !23
  %1552 = fmul double %1546, %1551
  %1553 = fneg double %1552
  %1554 = call double @llvm.fmuladd.f64(double %1536, double %1541, double %1553)
  %1555 = load ptr, ptr %78, align 8, !tbaa !5
  %1556 = load i32, ptr %96, align 4, !tbaa !9
  %1557 = sext i32 %1556 to i64
  %1558 = getelementptr inbounds double, ptr %1555, i64 %1557
  %1559 = load double, ptr %1558, align 8, !tbaa !23
  %1560 = load ptr, ptr %68, align 8, !tbaa !5
  %1561 = load i32, ptr %96, align 4, !tbaa !9
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds double, ptr %1560, i64 %1562
  %1564 = load double, ptr %1563, align 8, !tbaa !23
  %1565 = call double @llvm.fmuladd.f64(double %1559, double %1564, double %1554)
  %1566 = load ptr, ptr %79, align 8, !tbaa !5
  %1567 = load i32, ptr %96, align 4, !tbaa !9
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds double, ptr %1566, i64 %1568
  %1570 = load double, ptr %1569, align 8, !tbaa !23
  %1571 = load ptr, ptr %69, align 8, !tbaa !5
  %1572 = load i32, ptr %96, align 4, !tbaa !9
  %1573 = sext i32 %1572 to i64
  %1574 = getelementptr inbounds double, ptr %1571, i64 %1573
  %1575 = load double, ptr %1574, align 8, !tbaa !23
  %1576 = fneg double %1570
  %1577 = call double @llvm.fmuladd.f64(double %1576, double %1575, double %1565)
  %1578 = load ptr, ptr %80, align 8, !tbaa !5
  %1579 = load i32, ptr %96, align 4, !tbaa !9
  %1580 = sext i32 %1579 to i64
  %1581 = getelementptr inbounds double, ptr %1578, i64 %1580
  %1582 = load double, ptr %1581, align 8, !tbaa !23
  %1583 = load ptr, ptr %70, align 8, !tbaa !5
  %1584 = load i32, ptr %96, align 4, !tbaa !9
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds double, ptr %1583, i64 %1585
  %1587 = load double, ptr %1586, align 8, !tbaa !23
  %1588 = call double @llvm.fmuladd.f64(double %1582, double %1587, double %1577)
  %1589 = load ptr, ptr %81, align 8, !tbaa !5
  %1590 = load i32, ptr %96, align 4, !tbaa !9
  %1591 = sext i32 %1590 to i64
  %1592 = getelementptr inbounds double, ptr %1589, i64 %1591
  %1593 = load double, ptr %1592, align 8, !tbaa !23
  %1594 = load ptr, ptr %71, align 8, !tbaa !5
  %1595 = load i32, ptr %96, align 4, !tbaa !9
  %1596 = sext i32 %1595 to i64
  %1597 = getelementptr inbounds double, ptr %1594, i64 %1596
  %1598 = load double, ptr %1597, align 8, !tbaa !23
  %1599 = fneg double %1593
  %1600 = call double @llvm.fmuladd.f64(double %1599, double %1598, double %1588)
  %1601 = load ptr, ptr %84, align 8, !tbaa !5
  %1602 = load i32, ptr %96, align 4, !tbaa !9
  %1603 = sext i32 %1602 to i64
  %1604 = getelementptr inbounds double, ptr %1601, i64 %1603
  %1605 = load double, ptr %1604, align 8, !tbaa !23
  %1606 = load ptr, ptr %60, align 8, !tbaa !5
  %1607 = load i32, ptr %96, align 4, !tbaa !9
  %1608 = sext i32 %1607 to i64
  %1609 = getelementptr inbounds double, ptr %1606, i64 %1608
  %1610 = load double, ptr %1609, align 8, !tbaa !23
  %1611 = call double @llvm.fmuladd.f64(double %1605, double %1610, double %1600)
  %1612 = load ptr, ptr %85, align 8, !tbaa !5
  %1613 = load i32, ptr %96, align 4, !tbaa !9
  %1614 = sext i32 %1613 to i64
  %1615 = getelementptr inbounds double, ptr %1612, i64 %1614
  %1616 = load double, ptr %1615, align 8, !tbaa !23
  %1617 = load ptr, ptr %61, align 8, !tbaa !5
  %1618 = load i32, ptr %96, align 4, !tbaa !9
  %1619 = sext i32 %1618 to i64
  %1620 = getelementptr inbounds double, ptr %1617, i64 %1619
  %1621 = load double, ptr %1620, align 8, !tbaa !23
  %1622 = fneg double %1616
  %1623 = call double @llvm.fmuladd.f64(double %1622, double %1621, double %1611)
  %1624 = load ptr, ptr %90, align 8, !tbaa !5
  %1625 = load i32, ptr %96, align 4, !tbaa !9
  %1626 = sext i32 %1625 to i64
  %1627 = getelementptr inbounds double, ptr %1624, i64 %1626
  %1628 = load double, ptr %1627, align 8, !tbaa !23
  %1629 = load ptr, ptr %62, align 8, !tbaa !5
  %1630 = load i32, ptr %96, align 4, !tbaa !9
  %1631 = sext i32 %1630 to i64
  %1632 = getelementptr inbounds double, ptr %1629, i64 %1631
  %1633 = load double, ptr %1632, align 8, !tbaa !23
  %1634 = call double @llvm.fmuladd.f64(double %1628, double %1633, double %1623)
  %1635 = load ptr, ptr %91, align 8, !tbaa !5
  %1636 = load i32, ptr %96, align 4, !tbaa !9
  %1637 = sext i32 %1636 to i64
  %1638 = getelementptr inbounds double, ptr %1635, i64 %1637
  %1639 = load double, ptr %1638, align 8, !tbaa !23
  %1640 = load ptr, ptr %63, align 8, !tbaa !5
  %1641 = load i32, ptr %96, align 4, !tbaa !9
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds double, ptr %1640, i64 %1642
  %1644 = load double, ptr %1643, align 8, !tbaa !23
  %1645 = fneg double %1639
  %1646 = call double @llvm.fmuladd.f64(double %1645, double %1644, double %1634)
  %1647 = load ptr, ptr %92, align 8, !tbaa !5
  %1648 = load i32, ptr %96, align 4, !tbaa !9
  %1649 = sext i32 %1648 to i64
  %1650 = getelementptr inbounds double, ptr %1647, i64 %1649
  %1651 = load double, ptr %1650, align 8, !tbaa !23
  %1652 = load ptr, ptr %64, align 8, !tbaa !5
  %1653 = load i32, ptr %96, align 4, !tbaa !9
  %1654 = sext i32 %1653 to i64
  %1655 = getelementptr inbounds double, ptr %1652, i64 %1654
  %1656 = load double, ptr %1655, align 8, !tbaa !23
  %1657 = call double @llvm.fmuladd.f64(double %1651, double %1656, double %1646)
  %1658 = load ptr, ptr %93, align 8, !tbaa !5
  %1659 = load i32, ptr %96, align 4, !tbaa !9
  %1660 = sext i32 %1659 to i64
  %1661 = getelementptr inbounds double, ptr %1658, i64 %1660
  %1662 = load double, ptr %1661, align 8, !tbaa !23
  %1663 = load ptr, ptr %65, align 8, !tbaa !5
  %1664 = load i32, ptr %96, align 4, !tbaa !9
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds double, ptr %1663, i64 %1665
  %1667 = load double, ptr %1666, align 8, !tbaa !23
  %1668 = fneg double %1662
  %1669 = call double @llvm.fmuladd.f64(double %1668, double %1667, double %1657)
  %1670 = fmul double 2.000000e+00, %1669
  %1671 = load ptr, ptr %54, align 8, !tbaa !5
  %1672 = load i32, ptr %96, align 4, !tbaa !9
  %1673 = sext i32 %1672 to i64
  %1674 = getelementptr inbounds double, ptr %1671, i64 %1673
  store double %1670, ptr %1674, align 8, !tbaa !23
  %1675 = load ptr, ptr %78, align 8, !tbaa !5
  %1676 = load i32, ptr %96, align 4, !tbaa !9
  %1677 = sext i32 %1676 to i64
  %1678 = getelementptr inbounds double, ptr %1675, i64 %1677
  %1679 = load double, ptr %1678, align 8, !tbaa !23
  %1680 = load ptr, ptr %66, align 8, !tbaa !5
  %1681 = load i32, ptr %96, align 4, !tbaa !9
  %1682 = sext i32 %1681 to i64
  %1683 = getelementptr inbounds double, ptr %1680, i64 %1682
  %1684 = load double, ptr %1683, align 8, !tbaa !23
  %1685 = load ptr, ptr %79, align 8, !tbaa !5
  %1686 = load i32, ptr %96, align 4, !tbaa !9
  %1687 = sext i32 %1686 to i64
  %1688 = getelementptr inbounds double, ptr %1685, i64 %1687
  %1689 = load double, ptr %1688, align 8, !tbaa !23
  %1690 = load ptr, ptr %67, align 8, !tbaa !5
  %1691 = load i32, ptr %96, align 4, !tbaa !9
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds double, ptr %1690, i64 %1692
  %1694 = load double, ptr %1693, align 8, !tbaa !23
  %1695 = fmul double %1689, %1694
  %1696 = fneg double %1695
  %1697 = call double @llvm.fmuladd.f64(double %1679, double %1684, double %1696)
  %1698 = load ptr, ptr %74, align 8, !tbaa !5
  %1699 = load i32, ptr %96, align 4, !tbaa !9
  %1700 = sext i32 %1699 to i64
  %1701 = getelementptr inbounds double, ptr %1698, i64 %1700
  %1702 = load double, ptr %1701, align 8, !tbaa !23
  %1703 = load ptr, ptr %68, align 8, !tbaa !5
  %1704 = load i32, ptr %96, align 4, !tbaa !9
  %1705 = sext i32 %1704 to i64
  %1706 = getelementptr inbounds double, ptr %1703, i64 %1705
  %1707 = load double, ptr %1706, align 8, !tbaa !23
  %1708 = call double @llvm.fmuladd.f64(double %1702, double %1707, double %1697)
  %1709 = load ptr, ptr %75, align 8, !tbaa !5
  %1710 = load i32, ptr %96, align 4, !tbaa !9
  %1711 = sext i32 %1710 to i64
  %1712 = getelementptr inbounds double, ptr %1709, i64 %1711
  %1713 = load double, ptr %1712, align 8, !tbaa !23
  %1714 = load ptr, ptr %69, align 8, !tbaa !5
  %1715 = load i32, ptr %96, align 4, !tbaa !9
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds double, ptr %1714, i64 %1716
  %1718 = load double, ptr %1717, align 8, !tbaa !23
  %1719 = fneg double %1713
  %1720 = call double @llvm.fmuladd.f64(double %1719, double %1718, double %1708)
  %1721 = load ptr, ptr %82, align 8, !tbaa !5
  %1722 = load i32, ptr %96, align 4, !tbaa !9
  %1723 = sext i32 %1722 to i64
  %1724 = getelementptr inbounds double, ptr %1721, i64 %1723
  %1725 = load double, ptr %1724, align 8, !tbaa !23
  %1726 = load ptr, ptr %70, align 8, !tbaa !5
  %1727 = load i32, ptr %96, align 4, !tbaa !9
  %1728 = sext i32 %1727 to i64
  %1729 = getelementptr inbounds double, ptr %1726, i64 %1728
  %1730 = load double, ptr %1729, align 8, !tbaa !23
  %1731 = call double @llvm.fmuladd.f64(double %1725, double %1730, double %1720)
  %1732 = load ptr, ptr %83, align 8, !tbaa !5
  %1733 = load i32, ptr %96, align 4, !tbaa !9
  %1734 = sext i32 %1733 to i64
  %1735 = getelementptr inbounds double, ptr %1732, i64 %1734
  %1736 = load double, ptr %1735, align 8, !tbaa !23
  %1737 = load ptr, ptr %71, align 8, !tbaa !5
  %1738 = load i32, ptr %96, align 4, !tbaa !9
  %1739 = sext i32 %1738 to i64
  %1740 = getelementptr inbounds double, ptr %1737, i64 %1739
  %1741 = load double, ptr %1740, align 8, !tbaa !23
  %1742 = fneg double %1736
  %1743 = call double @llvm.fmuladd.f64(double %1742, double %1741, double %1731)
  %1744 = load ptr, ptr %90, align 8, !tbaa !5
  %1745 = load i32, ptr %96, align 4, !tbaa !9
  %1746 = sext i32 %1745 to i64
  %1747 = getelementptr inbounds double, ptr %1744, i64 %1746
  %1748 = load double, ptr %1747, align 8, !tbaa !23
  %1749 = load ptr, ptr %60, align 8, !tbaa !5
  %1750 = load i32, ptr %96, align 4, !tbaa !9
  %1751 = sext i32 %1750 to i64
  %1752 = getelementptr inbounds double, ptr %1749, i64 %1751
  %1753 = load double, ptr %1752, align 8, !tbaa !23
  %1754 = call double @llvm.fmuladd.f64(double %1748, double %1753, double %1743)
  %1755 = load ptr, ptr %91, align 8, !tbaa !5
  %1756 = load i32, ptr %96, align 4, !tbaa !9
  %1757 = sext i32 %1756 to i64
  %1758 = getelementptr inbounds double, ptr %1755, i64 %1757
  %1759 = load double, ptr %1758, align 8, !tbaa !23
  %1760 = load ptr, ptr %61, align 8, !tbaa !5
  %1761 = load i32, ptr %96, align 4, !tbaa !9
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds double, ptr %1760, i64 %1762
  %1764 = load double, ptr %1763, align 8, !tbaa !23
  %1765 = fneg double %1759
  %1766 = call double @llvm.fmuladd.f64(double %1765, double %1764, double %1754)
  %1767 = load ptr, ptr %86, align 8, !tbaa !5
  %1768 = load i32, ptr %96, align 4, !tbaa !9
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds double, ptr %1767, i64 %1769
  %1771 = load double, ptr %1770, align 8, !tbaa !23
  %1772 = load ptr, ptr %62, align 8, !tbaa !5
  %1773 = load i32, ptr %96, align 4, !tbaa !9
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds double, ptr %1772, i64 %1774
  %1776 = load double, ptr %1775, align 8, !tbaa !23
  %1777 = call double @llvm.fmuladd.f64(double %1771, double %1776, double %1766)
  %1778 = load ptr, ptr %87, align 8, !tbaa !5
  %1779 = load i32, ptr %96, align 4, !tbaa !9
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds double, ptr %1778, i64 %1780
  %1782 = load double, ptr %1781, align 8, !tbaa !23
  %1783 = load ptr, ptr %63, align 8, !tbaa !5
  %1784 = load i32, ptr %96, align 4, !tbaa !9
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds double, ptr %1783, i64 %1785
  %1787 = load double, ptr %1786, align 8, !tbaa !23
  %1788 = fneg double %1782
  %1789 = call double @llvm.fmuladd.f64(double %1788, double %1787, double %1777)
  %1790 = load ptr, ptr %94, align 8, !tbaa !5
  %1791 = load i32, ptr %96, align 4, !tbaa !9
  %1792 = sext i32 %1791 to i64
  %1793 = getelementptr inbounds double, ptr %1790, i64 %1792
  %1794 = load double, ptr %1793, align 8, !tbaa !23
  %1795 = load ptr, ptr %64, align 8, !tbaa !5
  %1796 = load i32, ptr %96, align 4, !tbaa !9
  %1797 = sext i32 %1796 to i64
  %1798 = getelementptr inbounds double, ptr %1795, i64 %1797
  %1799 = load double, ptr %1798, align 8, !tbaa !23
  %1800 = call double @llvm.fmuladd.f64(double %1794, double %1799, double %1789)
  %1801 = load ptr, ptr %95, align 8, !tbaa !5
  %1802 = load i32, ptr %96, align 4, !tbaa !9
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds double, ptr %1801, i64 %1803
  %1805 = load double, ptr %1804, align 8, !tbaa !23
  %1806 = load ptr, ptr %65, align 8, !tbaa !5
  %1807 = load i32, ptr %96, align 4, !tbaa !9
  %1808 = sext i32 %1807 to i64
  %1809 = getelementptr inbounds double, ptr %1806, i64 %1808
  %1810 = load double, ptr %1809, align 8, !tbaa !23
  %1811 = fneg double %1805
  %1812 = call double @llvm.fmuladd.f64(double %1811, double %1810, double %1800)
  %1813 = fmul double 2.000000e+00, %1812
  %1814 = load ptr, ptr %56, align 8, !tbaa !5
  %1815 = load i32, ptr %96, align 4, !tbaa !9
  %1816 = sext i32 %1815 to i64
  %1817 = getelementptr inbounds double, ptr %1814, i64 %1816
  store double %1813, ptr %1817, align 8, !tbaa !23
  %1818 = load ptr, ptr %80, align 8, !tbaa !5
  %1819 = load i32, ptr %96, align 4, !tbaa !9
  %1820 = sext i32 %1819 to i64
  %1821 = getelementptr inbounds double, ptr %1818, i64 %1820
  %1822 = load double, ptr %1821, align 8, !tbaa !23
  %1823 = load ptr, ptr %66, align 8, !tbaa !5
  %1824 = load i32, ptr %96, align 4, !tbaa !9
  %1825 = sext i32 %1824 to i64
  %1826 = getelementptr inbounds double, ptr %1823, i64 %1825
  %1827 = load double, ptr %1826, align 8, !tbaa !23
  %1828 = load ptr, ptr %81, align 8, !tbaa !5
  %1829 = load i32, ptr %96, align 4, !tbaa !9
  %1830 = sext i32 %1829 to i64
  %1831 = getelementptr inbounds double, ptr %1828, i64 %1830
  %1832 = load double, ptr %1831, align 8, !tbaa !23
  %1833 = load ptr, ptr %67, align 8, !tbaa !5
  %1834 = load i32, ptr %96, align 4, !tbaa !9
  %1835 = sext i32 %1834 to i64
  %1836 = getelementptr inbounds double, ptr %1833, i64 %1835
  %1837 = load double, ptr %1836, align 8, !tbaa !23
  %1838 = fmul double %1832, %1837
  %1839 = fneg double %1838
  %1840 = call double @llvm.fmuladd.f64(double %1822, double %1827, double %1839)
  %1841 = load ptr, ptr %82, align 8, !tbaa !5
  %1842 = load i32, ptr %96, align 4, !tbaa !9
  %1843 = sext i32 %1842 to i64
  %1844 = getelementptr inbounds double, ptr %1841, i64 %1843
  %1845 = load double, ptr %1844, align 8, !tbaa !23
  %1846 = load ptr, ptr %68, align 8, !tbaa !5
  %1847 = load i32, ptr %96, align 4, !tbaa !9
  %1848 = sext i32 %1847 to i64
  %1849 = getelementptr inbounds double, ptr %1846, i64 %1848
  %1850 = load double, ptr %1849, align 8, !tbaa !23
  %1851 = call double @llvm.fmuladd.f64(double %1845, double %1850, double %1840)
  %1852 = load ptr, ptr %83, align 8, !tbaa !5
  %1853 = load i32, ptr %96, align 4, !tbaa !9
  %1854 = sext i32 %1853 to i64
  %1855 = getelementptr inbounds double, ptr %1852, i64 %1854
  %1856 = load double, ptr %1855, align 8, !tbaa !23
  %1857 = load ptr, ptr %69, align 8, !tbaa !5
  %1858 = load i32, ptr %96, align 4, !tbaa !9
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds double, ptr %1857, i64 %1859
  %1861 = load double, ptr %1860, align 8, !tbaa !23
  %1862 = fneg double %1856
  %1863 = call double @llvm.fmuladd.f64(double %1862, double %1861, double %1851)
  %1864 = load ptr, ptr %76, align 8, !tbaa !5
  %1865 = load i32, ptr %96, align 4, !tbaa !9
  %1866 = sext i32 %1865 to i64
  %1867 = getelementptr inbounds double, ptr %1864, i64 %1866
  %1868 = load double, ptr %1867, align 8, !tbaa !23
  %1869 = load ptr, ptr %70, align 8, !tbaa !5
  %1870 = load i32, ptr %96, align 4, !tbaa !9
  %1871 = sext i32 %1870 to i64
  %1872 = getelementptr inbounds double, ptr %1869, i64 %1871
  %1873 = load double, ptr %1872, align 8, !tbaa !23
  %1874 = call double @llvm.fmuladd.f64(double %1868, double %1873, double %1863)
  %1875 = load ptr, ptr %77, align 8, !tbaa !5
  %1876 = load i32, ptr %96, align 4, !tbaa !9
  %1877 = sext i32 %1876 to i64
  %1878 = getelementptr inbounds double, ptr %1875, i64 %1877
  %1879 = load double, ptr %1878, align 8, !tbaa !23
  %1880 = load ptr, ptr %71, align 8, !tbaa !5
  %1881 = load i32, ptr %96, align 4, !tbaa !9
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds double, ptr %1880, i64 %1882
  %1884 = load double, ptr %1883, align 8, !tbaa !23
  %1885 = fneg double %1879
  %1886 = call double @llvm.fmuladd.f64(double %1885, double %1884, double %1874)
  %1887 = load ptr, ptr %92, align 8, !tbaa !5
  %1888 = load i32, ptr %96, align 4, !tbaa !9
  %1889 = sext i32 %1888 to i64
  %1890 = getelementptr inbounds double, ptr %1887, i64 %1889
  %1891 = load double, ptr %1890, align 8, !tbaa !23
  %1892 = load ptr, ptr %60, align 8, !tbaa !5
  %1893 = load i32, ptr %96, align 4, !tbaa !9
  %1894 = sext i32 %1893 to i64
  %1895 = getelementptr inbounds double, ptr %1892, i64 %1894
  %1896 = load double, ptr %1895, align 8, !tbaa !23
  %1897 = call double @llvm.fmuladd.f64(double %1891, double %1896, double %1886)
  %1898 = load ptr, ptr %93, align 8, !tbaa !5
  %1899 = load i32, ptr %96, align 4, !tbaa !9
  %1900 = sext i32 %1899 to i64
  %1901 = getelementptr inbounds double, ptr %1898, i64 %1900
  %1902 = load double, ptr %1901, align 8, !tbaa !23
  %1903 = load ptr, ptr %61, align 8, !tbaa !5
  %1904 = load i32, ptr %96, align 4, !tbaa !9
  %1905 = sext i32 %1904 to i64
  %1906 = getelementptr inbounds double, ptr %1903, i64 %1905
  %1907 = load double, ptr %1906, align 8, !tbaa !23
  %1908 = fneg double %1902
  %1909 = call double @llvm.fmuladd.f64(double %1908, double %1907, double %1897)
  %1910 = load ptr, ptr %94, align 8, !tbaa !5
  %1911 = load i32, ptr %96, align 4, !tbaa !9
  %1912 = sext i32 %1911 to i64
  %1913 = getelementptr inbounds double, ptr %1910, i64 %1912
  %1914 = load double, ptr %1913, align 8, !tbaa !23
  %1915 = load ptr, ptr %62, align 8, !tbaa !5
  %1916 = load i32, ptr %96, align 4, !tbaa !9
  %1917 = sext i32 %1916 to i64
  %1918 = getelementptr inbounds double, ptr %1915, i64 %1917
  %1919 = load double, ptr %1918, align 8, !tbaa !23
  %1920 = call double @llvm.fmuladd.f64(double %1914, double %1919, double %1909)
  %1921 = load ptr, ptr %95, align 8, !tbaa !5
  %1922 = load i32, ptr %96, align 4, !tbaa !9
  %1923 = sext i32 %1922 to i64
  %1924 = getelementptr inbounds double, ptr %1921, i64 %1923
  %1925 = load double, ptr %1924, align 8, !tbaa !23
  %1926 = load ptr, ptr %63, align 8, !tbaa !5
  %1927 = load i32, ptr %96, align 4, !tbaa !9
  %1928 = sext i32 %1927 to i64
  %1929 = getelementptr inbounds double, ptr %1926, i64 %1928
  %1930 = load double, ptr %1929, align 8, !tbaa !23
  %1931 = fneg double %1925
  %1932 = call double @llvm.fmuladd.f64(double %1931, double %1930, double %1920)
  %1933 = load ptr, ptr %88, align 8, !tbaa !5
  %1934 = load i32, ptr %96, align 4, !tbaa !9
  %1935 = sext i32 %1934 to i64
  %1936 = getelementptr inbounds double, ptr %1933, i64 %1935
  %1937 = load double, ptr %1936, align 8, !tbaa !23
  %1938 = load ptr, ptr %64, align 8, !tbaa !5
  %1939 = load i32, ptr %96, align 4, !tbaa !9
  %1940 = sext i32 %1939 to i64
  %1941 = getelementptr inbounds double, ptr %1938, i64 %1940
  %1942 = load double, ptr %1941, align 8, !tbaa !23
  %1943 = call double @llvm.fmuladd.f64(double %1937, double %1942, double %1932)
  %1944 = load ptr, ptr %89, align 8, !tbaa !5
  %1945 = load i32, ptr %96, align 4, !tbaa !9
  %1946 = sext i32 %1945 to i64
  %1947 = getelementptr inbounds double, ptr %1944, i64 %1946
  %1948 = load double, ptr %1947, align 8, !tbaa !23
  %1949 = load ptr, ptr %65, align 8, !tbaa !5
  %1950 = load i32, ptr %96, align 4, !tbaa !9
  %1951 = sext i32 %1950 to i64
  %1952 = getelementptr inbounds double, ptr %1949, i64 %1951
  %1953 = load double, ptr %1952, align 8, !tbaa !23
  %1954 = fneg double %1948
  %1955 = call double @llvm.fmuladd.f64(double %1954, double %1953, double %1943)
  %1956 = fmul double 2.000000e+00, %1955
  %1957 = load ptr, ptr %58, align 8, !tbaa !5
  %1958 = load i32, ptr %96, align 4, !tbaa !9
  %1959 = sext i32 %1958 to i64
  %1960 = getelementptr inbounds double, ptr %1957, i64 %1959
  store double %1956, ptr %1960, align 8, !tbaa !23
  %1961 = load ptr, ptr %73, align 8, !tbaa !5
  %1962 = load i32, ptr %96, align 4, !tbaa !9
  %1963 = sext i32 %1962 to i64
  %1964 = getelementptr inbounds double, ptr %1961, i64 %1963
  %1965 = load double, ptr %1964, align 8, !tbaa !23
  %1966 = load ptr, ptr %66, align 8, !tbaa !5
  %1967 = load i32, ptr %96, align 4, !tbaa !9
  %1968 = sext i32 %1967 to i64
  %1969 = getelementptr inbounds double, ptr %1966, i64 %1968
  %1970 = load double, ptr %1969, align 8, !tbaa !23
  %1971 = load ptr, ptr %72, align 8, !tbaa !5
  %1972 = load i32, ptr %96, align 4, !tbaa !9
  %1973 = sext i32 %1972 to i64
  %1974 = getelementptr inbounds double, ptr %1971, i64 %1973
  %1975 = load double, ptr %1974, align 8, !tbaa !23
  %1976 = load ptr, ptr %67, align 8, !tbaa !5
  %1977 = load i32, ptr %96, align 4, !tbaa !9
  %1978 = sext i32 %1977 to i64
  %1979 = getelementptr inbounds double, ptr %1976, i64 %1978
  %1980 = load double, ptr %1979, align 8, !tbaa !23
  %1981 = fmul double %1975, %1980
  %1982 = call double @llvm.fmuladd.f64(double %1965, double %1970, double %1981)
  %1983 = load ptr, ptr %79, align 8, !tbaa !5
  %1984 = load i32, ptr %96, align 4, !tbaa !9
  %1985 = sext i32 %1984 to i64
  %1986 = getelementptr inbounds double, ptr %1983, i64 %1985
  %1987 = load double, ptr %1986, align 8, !tbaa !23
  %1988 = load ptr, ptr %68, align 8, !tbaa !5
  %1989 = load i32, ptr %96, align 4, !tbaa !9
  %1990 = sext i32 %1989 to i64
  %1991 = getelementptr inbounds double, ptr %1988, i64 %1990
  %1992 = load double, ptr %1991, align 8, !tbaa !23
  %1993 = call double @llvm.fmuladd.f64(double %1987, double %1992, double %1982)
  %1994 = load ptr, ptr %78, align 8, !tbaa !5
  %1995 = load i32, ptr %96, align 4, !tbaa !9
  %1996 = sext i32 %1995 to i64
  %1997 = getelementptr inbounds double, ptr %1994, i64 %1996
  %1998 = load double, ptr %1997, align 8, !tbaa !23
  %1999 = load ptr, ptr %69, align 8, !tbaa !5
  %2000 = load i32, ptr %96, align 4, !tbaa !9
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds double, ptr %1999, i64 %2001
  %2003 = load double, ptr %2002, align 8, !tbaa !23
  %2004 = call double @llvm.fmuladd.f64(double %1998, double %2003, double %1993)
  %2005 = load ptr, ptr %81, align 8, !tbaa !5
  %2006 = load i32, ptr %96, align 4, !tbaa !9
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds double, ptr %2005, i64 %2007
  %2009 = load double, ptr %2008, align 8, !tbaa !23
  %2010 = load ptr, ptr %70, align 8, !tbaa !5
  %2011 = load i32, ptr %96, align 4, !tbaa !9
  %2012 = sext i32 %2011 to i64
  %2013 = getelementptr inbounds double, ptr %2010, i64 %2012
  %2014 = load double, ptr %2013, align 8, !tbaa !23
  %2015 = call double @llvm.fmuladd.f64(double %2009, double %2014, double %2004)
  %2016 = load ptr, ptr %80, align 8, !tbaa !5
  %2017 = load i32, ptr %96, align 4, !tbaa !9
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds double, ptr %2016, i64 %2018
  %2020 = load double, ptr %2019, align 8, !tbaa !23
  %2021 = load ptr, ptr %71, align 8, !tbaa !5
  %2022 = load i32, ptr %96, align 4, !tbaa !9
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds double, ptr %2021, i64 %2023
  %2025 = load double, ptr %2024, align 8, !tbaa !23
  %2026 = call double @llvm.fmuladd.f64(double %2020, double %2025, double %2015)
  %2027 = load ptr, ptr %85, align 8, !tbaa !5
  %2028 = load i32, ptr %96, align 4, !tbaa !9
  %2029 = sext i32 %2028 to i64
  %2030 = getelementptr inbounds double, ptr %2027, i64 %2029
  %2031 = load double, ptr %2030, align 8, !tbaa !23
  %2032 = load ptr, ptr %60, align 8, !tbaa !5
  %2033 = load i32, ptr %96, align 4, !tbaa !9
  %2034 = sext i32 %2033 to i64
  %2035 = getelementptr inbounds double, ptr %2032, i64 %2034
  %2036 = load double, ptr %2035, align 8, !tbaa !23
  %2037 = call double @llvm.fmuladd.f64(double %2031, double %2036, double %2026)
  %2038 = load ptr, ptr %84, align 8, !tbaa !5
  %2039 = load i32, ptr %96, align 4, !tbaa !9
  %2040 = sext i32 %2039 to i64
  %2041 = getelementptr inbounds double, ptr %2038, i64 %2040
  %2042 = load double, ptr %2041, align 8, !tbaa !23
  %2043 = load ptr, ptr %61, align 8, !tbaa !5
  %2044 = load i32, ptr %96, align 4, !tbaa !9
  %2045 = sext i32 %2044 to i64
  %2046 = getelementptr inbounds double, ptr %2043, i64 %2045
  %2047 = load double, ptr %2046, align 8, !tbaa !23
  %2048 = call double @llvm.fmuladd.f64(double %2042, double %2047, double %2037)
  %2049 = load ptr, ptr %91, align 8, !tbaa !5
  %2050 = load i32, ptr %96, align 4, !tbaa !9
  %2051 = sext i32 %2050 to i64
  %2052 = getelementptr inbounds double, ptr %2049, i64 %2051
  %2053 = load double, ptr %2052, align 8, !tbaa !23
  %2054 = load ptr, ptr %62, align 8, !tbaa !5
  %2055 = load i32, ptr %96, align 4, !tbaa !9
  %2056 = sext i32 %2055 to i64
  %2057 = getelementptr inbounds double, ptr %2054, i64 %2056
  %2058 = load double, ptr %2057, align 8, !tbaa !23
  %2059 = call double @llvm.fmuladd.f64(double %2053, double %2058, double %2048)
  %2060 = load ptr, ptr %90, align 8, !tbaa !5
  %2061 = load i32, ptr %96, align 4, !tbaa !9
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds double, ptr %2060, i64 %2062
  %2064 = load double, ptr %2063, align 8, !tbaa !23
  %2065 = load ptr, ptr %63, align 8, !tbaa !5
  %2066 = load i32, ptr %96, align 4, !tbaa !9
  %2067 = sext i32 %2066 to i64
  %2068 = getelementptr inbounds double, ptr %2065, i64 %2067
  %2069 = load double, ptr %2068, align 8, !tbaa !23
  %2070 = call double @llvm.fmuladd.f64(double %2064, double %2069, double %2059)
  %2071 = load ptr, ptr %93, align 8, !tbaa !5
  %2072 = load i32, ptr %96, align 4, !tbaa !9
  %2073 = sext i32 %2072 to i64
  %2074 = getelementptr inbounds double, ptr %2071, i64 %2073
  %2075 = load double, ptr %2074, align 8, !tbaa !23
  %2076 = load ptr, ptr %64, align 8, !tbaa !5
  %2077 = load i32, ptr %96, align 4, !tbaa !9
  %2078 = sext i32 %2077 to i64
  %2079 = getelementptr inbounds double, ptr %2076, i64 %2078
  %2080 = load double, ptr %2079, align 8, !tbaa !23
  %2081 = call double @llvm.fmuladd.f64(double %2075, double %2080, double %2070)
  %2082 = load ptr, ptr %92, align 8, !tbaa !5
  %2083 = load i32, ptr %96, align 4, !tbaa !9
  %2084 = sext i32 %2083 to i64
  %2085 = getelementptr inbounds double, ptr %2082, i64 %2084
  %2086 = load double, ptr %2085, align 8, !tbaa !23
  %2087 = load ptr, ptr %65, align 8, !tbaa !5
  %2088 = load i32, ptr %96, align 4, !tbaa !9
  %2089 = sext i32 %2088 to i64
  %2090 = getelementptr inbounds double, ptr %2087, i64 %2089
  %2091 = load double, ptr %2090, align 8, !tbaa !23
  %2092 = call double @llvm.fmuladd.f64(double %2086, double %2091, double %2081)
  %2093 = fmul double 2.000000e+00, %2092
  %2094 = load ptr, ptr %55, align 8, !tbaa !5
  %2095 = load i32, ptr %96, align 4, !tbaa !9
  %2096 = sext i32 %2095 to i64
  %2097 = getelementptr inbounds double, ptr %2094, i64 %2096
  store double %2093, ptr %2097, align 8, !tbaa !23
  %2098 = load ptr, ptr %79, align 8, !tbaa !5
  %2099 = load i32, ptr %96, align 4, !tbaa !9
  %2100 = sext i32 %2099 to i64
  %2101 = getelementptr inbounds double, ptr %2098, i64 %2100
  %2102 = load double, ptr %2101, align 8, !tbaa !23
  %2103 = load ptr, ptr %66, align 8, !tbaa !5
  %2104 = load i32, ptr %96, align 4, !tbaa !9
  %2105 = sext i32 %2104 to i64
  %2106 = getelementptr inbounds double, ptr %2103, i64 %2105
  %2107 = load double, ptr %2106, align 8, !tbaa !23
  %2108 = load ptr, ptr %78, align 8, !tbaa !5
  %2109 = load i32, ptr %96, align 4, !tbaa !9
  %2110 = sext i32 %2109 to i64
  %2111 = getelementptr inbounds double, ptr %2108, i64 %2110
  %2112 = load double, ptr %2111, align 8, !tbaa !23
  %2113 = load ptr, ptr %67, align 8, !tbaa !5
  %2114 = load i32, ptr %96, align 4, !tbaa !9
  %2115 = sext i32 %2114 to i64
  %2116 = getelementptr inbounds double, ptr %2113, i64 %2115
  %2117 = load double, ptr %2116, align 8, !tbaa !23
  %2118 = fmul double %2112, %2117
  %2119 = call double @llvm.fmuladd.f64(double %2102, double %2107, double %2118)
  %2120 = load ptr, ptr %75, align 8, !tbaa !5
  %2121 = load i32, ptr %96, align 4, !tbaa !9
  %2122 = sext i32 %2121 to i64
  %2123 = getelementptr inbounds double, ptr %2120, i64 %2122
  %2124 = load double, ptr %2123, align 8, !tbaa !23
  %2125 = load ptr, ptr %68, align 8, !tbaa !5
  %2126 = load i32, ptr %96, align 4, !tbaa !9
  %2127 = sext i32 %2126 to i64
  %2128 = getelementptr inbounds double, ptr %2125, i64 %2127
  %2129 = load double, ptr %2128, align 8, !tbaa !23
  %2130 = call double @llvm.fmuladd.f64(double %2124, double %2129, double %2119)
  %2131 = load ptr, ptr %74, align 8, !tbaa !5
  %2132 = load i32, ptr %96, align 4, !tbaa !9
  %2133 = sext i32 %2132 to i64
  %2134 = getelementptr inbounds double, ptr %2131, i64 %2133
  %2135 = load double, ptr %2134, align 8, !tbaa !23
  %2136 = load ptr, ptr %69, align 8, !tbaa !5
  %2137 = load i32, ptr %96, align 4, !tbaa !9
  %2138 = sext i32 %2137 to i64
  %2139 = getelementptr inbounds double, ptr %2136, i64 %2138
  %2140 = load double, ptr %2139, align 8, !tbaa !23
  %2141 = call double @llvm.fmuladd.f64(double %2135, double %2140, double %2130)
  %2142 = load ptr, ptr %83, align 8, !tbaa !5
  %2143 = load i32, ptr %96, align 4, !tbaa !9
  %2144 = sext i32 %2143 to i64
  %2145 = getelementptr inbounds double, ptr %2142, i64 %2144
  %2146 = load double, ptr %2145, align 8, !tbaa !23
  %2147 = load ptr, ptr %70, align 8, !tbaa !5
  %2148 = load i32, ptr %96, align 4, !tbaa !9
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds double, ptr %2147, i64 %2149
  %2151 = load double, ptr %2150, align 8, !tbaa !23
  %2152 = call double @llvm.fmuladd.f64(double %2146, double %2151, double %2141)
  %2153 = load ptr, ptr %82, align 8, !tbaa !5
  %2154 = load i32, ptr %96, align 4, !tbaa !9
  %2155 = sext i32 %2154 to i64
  %2156 = getelementptr inbounds double, ptr %2153, i64 %2155
  %2157 = load double, ptr %2156, align 8, !tbaa !23
  %2158 = load ptr, ptr %71, align 8, !tbaa !5
  %2159 = load i32, ptr %96, align 4, !tbaa !9
  %2160 = sext i32 %2159 to i64
  %2161 = getelementptr inbounds double, ptr %2158, i64 %2160
  %2162 = load double, ptr %2161, align 8, !tbaa !23
  %2163 = call double @llvm.fmuladd.f64(double %2157, double %2162, double %2152)
  %2164 = load ptr, ptr %91, align 8, !tbaa !5
  %2165 = load i32, ptr %96, align 4, !tbaa !9
  %2166 = sext i32 %2165 to i64
  %2167 = getelementptr inbounds double, ptr %2164, i64 %2166
  %2168 = load double, ptr %2167, align 8, !tbaa !23
  %2169 = load ptr, ptr %60, align 8, !tbaa !5
  %2170 = load i32, ptr %96, align 4, !tbaa !9
  %2171 = sext i32 %2170 to i64
  %2172 = getelementptr inbounds double, ptr %2169, i64 %2171
  %2173 = load double, ptr %2172, align 8, !tbaa !23
  %2174 = call double @llvm.fmuladd.f64(double %2168, double %2173, double %2163)
  %2175 = load ptr, ptr %90, align 8, !tbaa !5
  %2176 = load i32, ptr %96, align 4, !tbaa !9
  %2177 = sext i32 %2176 to i64
  %2178 = getelementptr inbounds double, ptr %2175, i64 %2177
  %2179 = load double, ptr %2178, align 8, !tbaa !23
  %2180 = load ptr, ptr %61, align 8, !tbaa !5
  %2181 = load i32, ptr %96, align 4, !tbaa !9
  %2182 = sext i32 %2181 to i64
  %2183 = getelementptr inbounds double, ptr %2180, i64 %2182
  %2184 = load double, ptr %2183, align 8, !tbaa !23
  %2185 = call double @llvm.fmuladd.f64(double %2179, double %2184, double %2174)
  %2186 = load ptr, ptr %87, align 8, !tbaa !5
  %2187 = load i32, ptr %96, align 4, !tbaa !9
  %2188 = sext i32 %2187 to i64
  %2189 = getelementptr inbounds double, ptr %2186, i64 %2188
  %2190 = load double, ptr %2189, align 8, !tbaa !23
  %2191 = load ptr, ptr %62, align 8, !tbaa !5
  %2192 = load i32, ptr %96, align 4, !tbaa !9
  %2193 = sext i32 %2192 to i64
  %2194 = getelementptr inbounds double, ptr %2191, i64 %2193
  %2195 = load double, ptr %2194, align 8, !tbaa !23
  %2196 = call double @llvm.fmuladd.f64(double %2190, double %2195, double %2185)
  %2197 = load ptr, ptr %86, align 8, !tbaa !5
  %2198 = load i32, ptr %96, align 4, !tbaa !9
  %2199 = sext i32 %2198 to i64
  %2200 = getelementptr inbounds double, ptr %2197, i64 %2199
  %2201 = load double, ptr %2200, align 8, !tbaa !23
  %2202 = load ptr, ptr %63, align 8, !tbaa !5
  %2203 = load i32, ptr %96, align 4, !tbaa !9
  %2204 = sext i32 %2203 to i64
  %2205 = getelementptr inbounds double, ptr %2202, i64 %2204
  %2206 = load double, ptr %2205, align 8, !tbaa !23
  %2207 = call double @llvm.fmuladd.f64(double %2201, double %2206, double %2196)
  %2208 = load ptr, ptr %95, align 8, !tbaa !5
  %2209 = load i32, ptr %96, align 4, !tbaa !9
  %2210 = sext i32 %2209 to i64
  %2211 = getelementptr inbounds double, ptr %2208, i64 %2210
  %2212 = load double, ptr %2211, align 8, !tbaa !23
  %2213 = load ptr, ptr %64, align 8, !tbaa !5
  %2214 = load i32, ptr %96, align 4, !tbaa !9
  %2215 = sext i32 %2214 to i64
  %2216 = getelementptr inbounds double, ptr %2213, i64 %2215
  %2217 = load double, ptr %2216, align 8, !tbaa !23
  %2218 = call double @llvm.fmuladd.f64(double %2212, double %2217, double %2207)
  %2219 = load ptr, ptr %94, align 8, !tbaa !5
  %2220 = load i32, ptr %96, align 4, !tbaa !9
  %2221 = sext i32 %2220 to i64
  %2222 = getelementptr inbounds double, ptr %2219, i64 %2221
  %2223 = load double, ptr %2222, align 8, !tbaa !23
  %2224 = load ptr, ptr %65, align 8, !tbaa !5
  %2225 = load i32, ptr %96, align 4, !tbaa !9
  %2226 = sext i32 %2225 to i64
  %2227 = getelementptr inbounds double, ptr %2224, i64 %2226
  %2228 = load double, ptr %2227, align 8, !tbaa !23
  %2229 = call double @llvm.fmuladd.f64(double %2223, double %2228, double %2218)
  %2230 = fmul double 2.000000e+00, %2229
  %2231 = load ptr, ptr %57, align 8, !tbaa !5
  %2232 = load i32, ptr %96, align 4, !tbaa !9
  %2233 = sext i32 %2232 to i64
  %2234 = getelementptr inbounds double, ptr %2231, i64 %2233
  store double %2230, ptr %2234, align 8, !tbaa !23
  %2235 = load ptr, ptr %81, align 8, !tbaa !5
  %2236 = load i32, ptr %96, align 4, !tbaa !9
  %2237 = sext i32 %2236 to i64
  %2238 = getelementptr inbounds double, ptr %2235, i64 %2237
  %2239 = load double, ptr %2238, align 8, !tbaa !23
  %2240 = load ptr, ptr %66, align 8, !tbaa !5
  %2241 = load i32, ptr %96, align 4, !tbaa !9
  %2242 = sext i32 %2241 to i64
  %2243 = getelementptr inbounds double, ptr %2240, i64 %2242
  %2244 = load double, ptr %2243, align 8, !tbaa !23
  %2245 = load ptr, ptr %80, align 8, !tbaa !5
  %2246 = load i32, ptr %96, align 4, !tbaa !9
  %2247 = sext i32 %2246 to i64
  %2248 = getelementptr inbounds double, ptr %2245, i64 %2247
  %2249 = load double, ptr %2248, align 8, !tbaa !23
  %2250 = load ptr, ptr %67, align 8, !tbaa !5
  %2251 = load i32, ptr %96, align 4, !tbaa !9
  %2252 = sext i32 %2251 to i64
  %2253 = getelementptr inbounds double, ptr %2250, i64 %2252
  %2254 = load double, ptr %2253, align 8, !tbaa !23
  %2255 = fmul double %2249, %2254
  %2256 = call double @llvm.fmuladd.f64(double %2239, double %2244, double %2255)
  %2257 = load ptr, ptr %83, align 8, !tbaa !5
  %2258 = load i32, ptr %96, align 4, !tbaa !9
  %2259 = sext i32 %2258 to i64
  %2260 = getelementptr inbounds double, ptr %2257, i64 %2259
  %2261 = load double, ptr %2260, align 8, !tbaa !23
  %2262 = load ptr, ptr %68, align 8, !tbaa !5
  %2263 = load i32, ptr %96, align 4, !tbaa !9
  %2264 = sext i32 %2263 to i64
  %2265 = getelementptr inbounds double, ptr %2262, i64 %2264
  %2266 = load double, ptr %2265, align 8, !tbaa !23
  %2267 = call double @llvm.fmuladd.f64(double %2261, double %2266, double %2256)
  %2268 = load ptr, ptr %82, align 8, !tbaa !5
  %2269 = load i32, ptr %96, align 4, !tbaa !9
  %2270 = sext i32 %2269 to i64
  %2271 = getelementptr inbounds double, ptr %2268, i64 %2270
  %2272 = load double, ptr %2271, align 8, !tbaa !23
  %2273 = load ptr, ptr %69, align 8, !tbaa !5
  %2274 = load i32, ptr %96, align 4, !tbaa !9
  %2275 = sext i32 %2274 to i64
  %2276 = getelementptr inbounds double, ptr %2273, i64 %2275
  %2277 = load double, ptr %2276, align 8, !tbaa !23
  %2278 = call double @llvm.fmuladd.f64(double %2272, double %2277, double %2267)
  %2279 = load ptr, ptr %77, align 8, !tbaa !5
  %2280 = load i32, ptr %96, align 4, !tbaa !9
  %2281 = sext i32 %2280 to i64
  %2282 = getelementptr inbounds double, ptr %2279, i64 %2281
  %2283 = load double, ptr %2282, align 8, !tbaa !23
  %2284 = load ptr, ptr %70, align 8, !tbaa !5
  %2285 = load i32, ptr %96, align 4, !tbaa !9
  %2286 = sext i32 %2285 to i64
  %2287 = getelementptr inbounds double, ptr %2284, i64 %2286
  %2288 = load double, ptr %2287, align 8, !tbaa !23
  %2289 = call double @llvm.fmuladd.f64(double %2283, double %2288, double %2278)
  %2290 = load ptr, ptr %76, align 8, !tbaa !5
  %2291 = load i32, ptr %96, align 4, !tbaa !9
  %2292 = sext i32 %2291 to i64
  %2293 = getelementptr inbounds double, ptr %2290, i64 %2292
  %2294 = load double, ptr %2293, align 8, !tbaa !23
  %2295 = load ptr, ptr %71, align 8, !tbaa !5
  %2296 = load i32, ptr %96, align 4, !tbaa !9
  %2297 = sext i32 %2296 to i64
  %2298 = getelementptr inbounds double, ptr %2295, i64 %2297
  %2299 = load double, ptr %2298, align 8, !tbaa !23
  %2300 = call double @llvm.fmuladd.f64(double %2294, double %2299, double %2289)
  %2301 = load ptr, ptr %93, align 8, !tbaa !5
  %2302 = load i32, ptr %96, align 4, !tbaa !9
  %2303 = sext i32 %2302 to i64
  %2304 = getelementptr inbounds double, ptr %2301, i64 %2303
  %2305 = load double, ptr %2304, align 8, !tbaa !23
  %2306 = load ptr, ptr %60, align 8, !tbaa !5
  %2307 = load i32, ptr %96, align 4, !tbaa !9
  %2308 = sext i32 %2307 to i64
  %2309 = getelementptr inbounds double, ptr %2306, i64 %2308
  %2310 = load double, ptr %2309, align 8, !tbaa !23
  %2311 = call double @llvm.fmuladd.f64(double %2305, double %2310, double %2300)
  %2312 = load ptr, ptr %92, align 8, !tbaa !5
  %2313 = load i32, ptr %96, align 4, !tbaa !9
  %2314 = sext i32 %2313 to i64
  %2315 = getelementptr inbounds double, ptr %2312, i64 %2314
  %2316 = load double, ptr %2315, align 8, !tbaa !23
  %2317 = load ptr, ptr %61, align 8, !tbaa !5
  %2318 = load i32, ptr %96, align 4, !tbaa !9
  %2319 = sext i32 %2318 to i64
  %2320 = getelementptr inbounds double, ptr %2317, i64 %2319
  %2321 = load double, ptr %2320, align 8, !tbaa !23
  %2322 = call double @llvm.fmuladd.f64(double %2316, double %2321, double %2311)
  %2323 = load ptr, ptr %95, align 8, !tbaa !5
  %2324 = load i32, ptr %96, align 4, !tbaa !9
  %2325 = sext i32 %2324 to i64
  %2326 = getelementptr inbounds double, ptr %2323, i64 %2325
  %2327 = load double, ptr %2326, align 8, !tbaa !23
  %2328 = load ptr, ptr %62, align 8, !tbaa !5
  %2329 = load i32, ptr %96, align 4, !tbaa !9
  %2330 = sext i32 %2329 to i64
  %2331 = getelementptr inbounds double, ptr %2328, i64 %2330
  %2332 = load double, ptr %2331, align 8, !tbaa !23
  %2333 = call double @llvm.fmuladd.f64(double %2327, double %2332, double %2322)
  %2334 = load ptr, ptr %94, align 8, !tbaa !5
  %2335 = load i32, ptr %96, align 4, !tbaa !9
  %2336 = sext i32 %2335 to i64
  %2337 = getelementptr inbounds double, ptr %2334, i64 %2336
  %2338 = load double, ptr %2337, align 8, !tbaa !23
  %2339 = load ptr, ptr %63, align 8, !tbaa !5
  %2340 = load i32, ptr %96, align 4, !tbaa !9
  %2341 = sext i32 %2340 to i64
  %2342 = getelementptr inbounds double, ptr %2339, i64 %2341
  %2343 = load double, ptr %2342, align 8, !tbaa !23
  %2344 = call double @llvm.fmuladd.f64(double %2338, double %2343, double %2333)
  %2345 = load ptr, ptr %89, align 8, !tbaa !5
  %2346 = load i32, ptr %96, align 4, !tbaa !9
  %2347 = sext i32 %2346 to i64
  %2348 = getelementptr inbounds double, ptr %2345, i64 %2347
  %2349 = load double, ptr %2348, align 8, !tbaa !23
  %2350 = load ptr, ptr %64, align 8, !tbaa !5
  %2351 = load i32, ptr %96, align 4, !tbaa !9
  %2352 = sext i32 %2351 to i64
  %2353 = getelementptr inbounds double, ptr %2350, i64 %2352
  %2354 = load double, ptr %2353, align 8, !tbaa !23
  %2355 = call double @llvm.fmuladd.f64(double %2349, double %2354, double %2344)
  %2356 = load ptr, ptr %88, align 8, !tbaa !5
  %2357 = load i32, ptr %96, align 4, !tbaa !9
  %2358 = sext i32 %2357 to i64
  %2359 = getelementptr inbounds double, ptr %2356, i64 %2358
  %2360 = load double, ptr %2359, align 8, !tbaa !23
  %2361 = load ptr, ptr %65, align 8, !tbaa !5
  %2362 = load i32, ptr %96, align 4, !tbaa !9
  %2363 = sext i32 %2362 to i64
  %2364 = getelementptr inbounds double, ptr %2361, i64 %2363
  %2365 = load double, ptr %2364, align 8, !tbaa !23
  %2366 = call double @llvm.fmuladd.f64(double %2360, double %2365, double %2355)
  %2367 = fmul double 2.000000e+00, %2366
  %2368 = load ptr, ptr %59, align 8, !tbaa !5
  %2369 = load i32, ptr %96, align 4, !tbaa !9
  %2370 = sext i32 %2369 to i64
  %2371 = getelementptr inbounds double, ptr %2368, i64 %2370
  store double %2367, ptr %2371, align 8, !tbaa !23
  br label %2372

2372:                                             ; preds = %1531
  %2373 = load i32, ptr %96, align 4, !tbaa !9
  %2374 = add nsw i32 %2373, 1
  store i32 %2374, ptr %96, align 4, !tbaa !9
  br label %1526, !llvm.loop !30

2375:                                             ; preds = %1530
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %2376

2376:                                             ; preds = %2375
  %2377 = load i32, ptr %53, align 4, !tbaa !9
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr %53, align 4, !tbaa !9
  br label %1313, !llvm.loop !31

2379:                                             ; preds = %1318
  br label %4153

2380:                                             ; preds = %1311
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #7
  %2381 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %2381)
  %2382 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.5)
          to label %2383 unwind label %2391

2383:                                             ; preds = %2380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #7
  br i1 %2382, label %2384, label %2687

2384:                                             ; preds = %2383
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #7
  store i32 0, ptr %98, align 4, !tbaa !9
  br label %2385

2385:                                             ; preds = %2683, %2384
  %2386 = load i32, ptr %98, align 4, !tbaa !9
  %2387 = load i32, ptr %7, align 4, !tbaa !9
  %2388 = sdiv i32 %2387, 6
  %2389 = icmp slt i32 %2386, %2388
  br i1 %2389, label %2395, label %2390

2390:                                             ; preds = %2385
  store i32 20, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  br label %2686

2391:                                             ; preds = %2380
  %2392 = landingpad { ptr, i32 }
          cleanup
  %2393 = extractvalue { ptr, i32 } %2392, 0
  store ptr %2393, ptr %11, align 8
  %2394 = extractvalue { ptr, i32 } %2392, 1
  store i32 %2394, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #7
  br label %4157

2395:                                             ; preds = %2385
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #7
  %2396 = load i32, ptr %98, align 4, !tbaa !9
  %2397 = mul nsw i32 6, %2396
  %2398 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2397)
  store ptr %2398, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #7
  %2399 = load i32, ptr %98, align 4, !tbaa !9
  %2400 = mul nsw i32 6, %2399
  %2401 = add nsw i32 %2400, 1
  %2402 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2401)
  store ptr %2402, ptr %100, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #7
  %2403 = load i32, ptr %98, align 4, !tbaa !9
  %2404 = mul nsw i32 6, %2403
  %2405 = add nsw i32 %2404, 2
  %2406 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2405)
  store ptr %2406, ptr %101, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #7
  %2407 = load i32, ptr %98, align 4, !tbaa !9
  %2408 = mul nsw i32 6, %2407
  %2409 = add nsw i32 %2408, 3
  %2410 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2409)
  store ptr %2410, ptr %102, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #7
  %2411 = load i32, ptr %98, align 4, !tbaa !9
  %2412 = mul nsw i32 6, %2411
  %2413 = add nsw i32 %2412, 4
  %2414 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2413)
  store ptr %2414, ptr %103, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #7
  %2415 = load i32, ptr %98, align 4, !tbaa !9
  %2416 = mul nsw i32 6, %2415
  %2417 = add nsw i32 %2416, 5
  %2418 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2417)
  store ptr %2418, ptr %104, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #7
  %2419 = load ptr, ptr %6, align 8, !tbaa !5
  %2420 = load i32, ptr %98, align 4, !tbaa !9
  %2421 = mul nsw i32 6, %2420
  %2422 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2419, i32 noundef %2421)
  store ptr %2422, ptr %105, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #7
  %2423 = load ptr, ptr %6, align 8, !tbaa !5
  %2424 = load i32, ptr %98, align 4, !tbaa !9
  %2425 = mul nsw i32 6, %2424
  %2426 = add nsw i32 %2425, 1
  %2427 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2423, i32 noundef %2426)
  store ptr %2427, ptr %106, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #7
  %2428 = load ptr, ptr %6, align 8, !tbaa !5
  %2429 = load i32, ptr %98, align 4, !tbaa !9
  %2430 = mul nsw i32 6, %2429
  %2431 = add nsw i32 %2430, 2
  %2432 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2428, i32 noundef %2431)
  store ptr %2432, ptr %107, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #7
  %2433 = load ptr, ptr %6, align 8, !tbaa !5
  %2434 = load i32, ptr %98, align 4, !tbaa !9
  %2435 = mul nsw i32 6, %2434
  %2436 = add nsw i32 %2435, 3
  %2437 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2433, i32 noundef %2436)
  store ptr %2437, ptr %108, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #7
  %2438 = load ptr, ptr %6, align 8, !tbaa !5
  %2439 = load i32, ptr %98, align 4, !tbaa !9
  %2440 = mul nsw i32 6, %2439
  %2441 = add nsw i32 %2440, 4
  %2442 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2438, i32 noundef %2441)
  store ptr %2442, ptr %109, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #7
  %2443 = load ptr, ptr %6, align 8, !tbaa !5
  %2444 = load i32, ptr %98, align 4, !tbaa !9
  %2445 = mul nsw i32 6, %2444
  %2446 = add nsw i32 %2445, 5
  %2447 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2443, i32 noundef %2446)
  store ptr %2447, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #7
  store i32 0, ptr %111, align 4, !tbaa !9
  br label %2448

2448:                                             ; preds = %2679, %2395
  %2449 = load i32, ptr %111, align 4, !tbaa !9
  %2450 = load i32, ptr %9, align 4, !tbaa !9
  %2451 = icmp slt i32 %2449, %2450
  br i1 %2451, label %2453, label %2452

2452:                                             ; preds = %2448
  store i32 23, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #7
  br label %2682

2453:                                             ; preds = %2448
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #7
  %2454 = load ptr, ptr %105, align 8, !tbaa !5
  %2455 = load i32, ptr %111, align 4, !tbaa !9
  %2456 = sext i32 %2455 to i64
  %2457 = getelementptr inbounds double, ptr %2454, i64 %2456
  %2458 = load double, ptr %2457, align 8, !tbaa !23
  %2459 = load ptr, ptr %106, align 8, !tbaa !5
  %2460 = load i32, ptr %111, align 4, !tbaa !9
  %2461 = sext i32 %2460 to i64
  %2462 = getelementptr inbounds double, ptr %2459, i64 %2461
  %2463 = load double, ptr %2462, align 8, !tbaa !23
  %2464 = load ptr, ptr %105, align 8, !tbaa !5
  %2465 = load i32, ptr %111, align 4, !tbaa !9
  %2466 = sext i32 %2465 to i64
  %2467 = getelementptr inbounds double, ptr %2464, i64 %2466
  %2468 = load double, ptr %2467, align 8, !tbaa !23
  %2469 = load ptr, ptr %106, align 8, !tbaa !5
  %2470 = load i32, ptr %111, align 4, !tbaa !9
  %2471 = sext i32 %2470 to i64
  %2472 = getelementptr inbounds double, ptr %2469, i64 %2471
  %2473 = load double, ptr %2472, align 8, !tbaa !23
  %2474 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2458, double noundef %2463, double noundef %2468, double noundef %2473)
  %2475 = load ptr, ptr %107, align 8, !tbaa !5
  %2476 = load i32, ptr %111, align 4, !tbaa !9
  %2477 = sext i32 %2476 to i64
  %2478 = getelementptr inbounds double, ptr %2475, i64 %2477
  %2479 = load double, ptr %2478, align 8, !tbaa !23
  %2480 = load ptr, ptr %108, align 8, !tbaa !5
  %2481 = load i32, ptr %111, align 4, !tbaa !9
  %2482 = sext i32 %2481 to i64
  %2483 = getelementptr inbounds double, ptr %2480, i64 %2482
  %2484 = load double, ptr %2483, align 8, !tbaa !23
  %2485 = load ptr, ptr %107, align 8, !tbaa !5
  %2486 = load i32, ptr %111, align 4, !tbaa !9
  %2487 = sext i32 %2486 to i64
  %2488 = getelementptr inbounds double, ptr %2485, i64 %2487
  %2489 = load double, ptr %2488, align 8, !tbaa !23
  %2490 = load ptr, ptr %108, align 8, !tbaa !5
  %2491 = load i32, ptr %111, align 4, !tbaa !9
  %2492 = sext i32 %2491 to i64
  %2493 = getelementptr inbounds double, ptr %2490, i64 %2492
  %2494 = load double, ptr %2493, align 8, !tbaa !23
  %2495 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2479, double noundef %2484, double noundef %2489, double noundef %2494)
  %2496 = fmul double 6.000000e+00, %2495
  %2497 = call double @llvm.fmuladd.f64(double 6.000000e+00, double %2474, double %2496)
  %2498 = load ptr, ptr %109, align 8, !tbaa !5
  %2499 = load i32, ptr %111, align 4, !tbaa !9
  %2500 = sext i32 %2499 to i64
  %2501 = getelementptr inbounds double, ptr %2498, i64 %2500
  %2502 = load double, ptr %2501, align 8, !tbaa !23
  %2503 = load ptr, ptr %110, align 8, !tbaa !5
  %2504 = load i32, ptr %111, align 4, !tbaa !9
  %2505 = sext i32 %2504 to i64
  %2506 = getelementptr inbounds double, ptr %2503, i64 %2505
  %2507 = load double, ptr %2506, align 8, !tbaa !23
  %2508 = load ptr, ptr %109, align 8, !tbaa !5
  %2509 = load i32, ptr %111, align 4, !tbaa !9
  %2510 = sext i32 %2509 to i64
  %2511 = getelementptr inbounds double, ptr %2508, i64 %2510
  %2512 = load double, ptr %2511, align 8, !tbaa !23
  %2513 = load ptr, ptr %110, align 8, !tbaa !5
  %2514 = load i32, ptr %111, align 4, !tbaa !9
  %2515 = sext i32 %2514 to i64
  %2516 = getelementptr inbounds double, ptr %2513, i64 %2515
  %2517 = load double, ptr %2516, align 8, !tbaa !23
  %2518 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2502, double noundef %2507, double noundef %2512, double noundef %2517)
  %2519 = call double @llvm.fmuladd.f64(double 6.000000e+00, double %2518, double %2497)
  store double %2519, ptr %112, align 8, !tbaa !23
  %2520 = load ptr, ptr %105, align 8, !tbaa !5
  %2521 = load i32, ptr %111, align 4, !tbaa !9
  %2522 = sext i32 %2521 to i64
  %2523 = getelementptr inbounds double, ptr %2520, i64 %2522
  %2524 = load double, ptr %2523, align 8, !tbaa !23
  %2525 = load ptr, ptr %106, align 8, !tbaa !5
  %2526 = load i32, ptr %111, align 4, !tbaa !9
  %2527 = sext i32 %2526 to i64
  %2528 = getelementptr inbounds double, ptr %2525, i64 %2527
  %2529 = load double, ptr %2528, align 8, !tbaa !23
  %2530 = load ptr, ptr %105, align 8, !tbaa !5
  %2531 = load i32, ptr %111, align 4, !tbaa !9
  %2532 = sext i32 %2531 to i64
  %2533 = getelementptr inbounds double, ptr %2530, i64 %2532
  %2534 = load double, ptr %2533, align 8, !tbaa !23
  %2535 = load ptr, ptr %106, align 8, !tbaa !5
  %2536 = load i32, ptr %111, align 4, !tbaa !9
  %2537 = sext i32 %2536 to i64
  %2538 = getelementptr inbounds double, ptr %2535, i64 %2537
  %2539 = load double, ptr %2538, align 8, !tbaa !23
  %2540 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2524, double noundef %2529, double noundef %2534, double noundef %2539)
  %2541 = load double, ptr %112, align 8, !tbaa !23
  %2542 = call double @llvm.fmuladd.f64(double 1.200000e+01, double %2540, double %2541)
  %2543 = load ptr, ptr %99, align 8, !tbaa !5
  %2544 = load i32, ptr %111, align 4, !tbaa !9
  %2545 = sext i32 %2544 to i64
  %2546 = getelementptr inbounds double, ptr %2543, i64 %2545
  store double %2542, ptr %2546, align 8, !tbaa !23
  %2547 = load ptr, ptr %107, align 8, !tbaa !5
  %2548 = load i32, ptr %111, align 4, !tbaa !9
  %2549 = sext i32 %2548 to i64
  %2550 = getelementptr inbounds double, ptr %2547, i64 %2549
  %2551 = load double, ptr %2550, align 8, !tbaa !23
  %2552 = load ptr, ptr %108, align 8, !tbaa !5
  %2553 = load i32, ptr %111, align 4, !tbaa !9
  %2554 = sext i32 %2553 to i64
  %2555 = getelementptr inbounds double, ptr %2552, i64 %2554
  %2556 = load double, ptr %2555, align 8, !tbaa !23
  %2557 = load ptr, ptr %107, align 8, !tbaa !5
  %2558 = load i32, ptr %111, align 4, !tbaa !9
  %2559 = sext i32 %2558 to i64
  %2560 = getelementptr inbounds double, ptr %2557, i64 %2559
  %2561 = load double, ptr %2560, align 8, !tbaa !23
  %2562 = load ptr, ptr %108, align 8, !tbaa !5
  %2563 = load i32, ptr %111, align 4, !tbaa !9
  %2564 = sext i32 %2563 to i64
  %2565 = getelementptr inbounds double, ptr %2562, i64 %2564
  %2566 = load double, ptr %2565, align 8, !tbaa !23
  %2567 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2551, double noundef %2556, double noundef %2561, double noundef %2566)
  %2568 = load double, ptr %112, align 8, !tbaa !23
  %2569 = call double @llvm.fmuladd.f64(double 1.200000e+01, double %2567, double %2568)
  %2570 = load ptr, ptr %100, align 8, !tbaa !5
  %2571 = load i32, ptr %111, align 4, !tbaa !9
  %2572 = sext i32 %2571 to i64
  %2573 = getelementptr inbounds double, ptr %2570, i64 %2572
  store double %2569, ptr %2573, align 8, !tbaa !23
  %2574 = load ptr, ptr %109, align 8, !tbaa !5
  %2575 = load i32, ptr %111, align 4, !tbaa !9
  %2576 = sext i32 %2575 to i64
  %2577 = getelementptr inbounds double, ptr %2574, i64 %2576
  %2578 = load double, ptr %2577, align 8, !tbaa !23
  %2579 = load ptr, ptr %110, align 8, !tbaa !5
  %2580 = load i32, ptr %111, align 4, !tbaa !9
  %2581 = sext i32 %2580 to i64
  %2582 = getelementptr inbounds double, ptr %2579, i64 %2581
  %2583 = load double, ptr %2582, align 8, !tbaa !23
  %2584 = load ptr, ptr %109, align 8, !tbaa !5
  %2585 = load i32, ptr %111, align 4, !tbaa !9
  %2586 = sext i32 %2585 to i64
  %2587 = getelementptr inbounds double, ptr %2584, i64 %2586
  %2588 = load double, ptr %2587, align 8, !tbaa !23
  %2589 = load ptr, ptr %110, align 8, !tbaa !5
  %2590 = load i32, ptr %111, align 4, !tbaa !9
  %2591 = sext i32 %2590 to i64
  %2592 = getelementptr inbounds double, ptr %2589, i64 %2591
  %2593 = load double, ptr %2592, align 8, !tbaa !23
  %2594 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2578, double noundef %2583, double noundef %2588, double noundef %2593)
  %2595 = load double, ptr %112, align 8, !tbaa !23
  %2596 = call double @llvm.fmuladd.f64(double 1.200000e+01, double %2594, double %2595)
  %2597 = load ptr, ptr %101, align 8, !tbaa !5
  %2598 = load i32, ptr %111, align 4, !tbaa !9
  %2599 = sext i32 %2598 to i64
  %2600 = getelementptr inbounds double, ptr %2597, i64 %2599
  store double %2596, ptr %2600, align 8, !tbaa !23
  %2601 = load ptr, ptr %105, align 8, !tbaa !5
  %2602 = load i32, ptr %111, align 4, !tbaa !9
  %2603 = sext i32 %2602 to i64
  %2604 = getelementptr inbounds double, ptr %2601, i64 %2603
  %2605 = load double, ptr %2604, align 8, !tbaa !23
  %2606 = load ptr, ptr %106, align 8, !tbaa !5
  %2607 = load i32, ptr %111, align 4, !tbaa !9
  %2608 = sext i32 %2607 to i64
  %2609 = getelementptr inbounds double, ptr %2606, i64 %2608
  %2610 = load double, ptr %2609, align 8, !tbaa !23
  %2611 = load ptr, ptr %107, align 8, !tbaa !5
  %2612 = load i32, ptr %111, align 4, !tbaa !9
  %2613 = sext i32 %2612 to i64
  %2614 = getelementptr inbounds double, ptr %2611, i64 %2613
  %2615 = load double, ptr %2614, align 8, !tbaa !23
  %2616 = load ptr, ptr %108, align 8, !tbaa !5
  %2617 = load i32, ptr %111, align 4, !tbaa !9
  %2618 = sext i32 %2617 to i64
  %2619 = getelementptr inbounds double, ptr %2616, i64 %2618
  %2620 = load double, ptr %2619, align 8, !tbaa !23
  %2621 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2605, double noundef %2610, double noundef %2615, double noundef %2620)
  %2622 = fmul double 1.200000e+01, %2621
  %2623 = load ptr, ptr %102, align 8, !tbaa !5
  %2624 = load i32, ptr %111, align 4, !tbaa !9
  %2625 = sext i32 %2624 to i64
  %2626 = getelementptr inbounds double, ptr %2623, i64 %2625
  store double %2622, ptr %2626, align 8, !tbaa !23
  %2627 = load ptr, ptr %105, align 8, !tbaa !5
  %2628 = load i32, ptr %111, align 4, !tbaa !9
  %2629 = sext i32 %2628 to i64
  %2630 = getelementptr inbounds double, ptr %2627, i64 %2629
  %2631 = load double, ptr %2630, align 8, !tbaa !23
  %2632 = load ptr, ptr %106, align 8, !tbaa !5
  %2633 = load i32, ptr %111, align 4, !tbaa !9
  %2634 = sext i32 %2633 to i64
  %2635 = getelementptr inbounds double, ptr %2632, i64 %2634
  %2636 = load double, ptr %2635, align 8, !tbaa !23
  %2637 = load ptr, ptr %109, align 8, !tbaa !5
  %2638 = load i32, ptr %111, align 4, !tbaa !9
  %2639 = sext i32 %2638 to i64
  %2640 = getelementptr inbounds double, ptr %2637, i64 %2639
  %2641 = load double, ptr %2640, align 8, !tbaa !23
  %2642 = load ptr, ptr %110, align 8, !tbaa !5
  %2643 = load i32, ptr %111, align 4, !tbaa !9
  %2644 = sext i32 %2643 to i64
  %2645 = getelementptr inbounds double, ptr %2642, i64 %2644
  %2646 = load double, ptr %2645, align 8, !tbaa !23
  %2647 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2631, double noundef %2636, double noundef %2641, double noundef %2646)
  %2648 = fmul double 1.200000e+01, %2647
  %2649 = load ptr, ptr %103, align 8, !tbaa !5
  %2650 = load i32, ptr %111, align 4, !tbaa !9
  %2651 = sext i32 %2650 to i64
  %2652 = getelementptr inbounds double, ptr %2649, i64 %2651
  store double %2648, ptr %2652, align 8, !tbaa !23
  %2653 = load ptr, ptr %107, align 8, !tbaa !5
  %2654 = load i32, ptr %111, align 4, !tbaa !9
  %2655 = sext i32 %2654 to i64
  %2656 = getelementptr inbounds double, ptr %2653, i64 %2655
  %2657 = load double, ptr %2656, align 8, !tbaa !23
  %2658 = load ptr, ptr %108, align 8, !tbaa !5
  %2659 = load i32, ptr %111, align 4, !tbaa !9
  %2660 = sext i32 %2659 to i64
  %2661 = getelementptr inbounds double, ptr %2658, i64 %2660
  %2662 = load double, ptr %2661, align 8, !tbaa !23
  %2663 = load ptr, ptr %109, align 8, !tbaa !5
  %2664 = load i32, ptr %111, align 4, !tbaa !9
  %2665 = sext i32 %2664 to i64
  %2666 = getelementptr inbounds double, ptr %2663, i64 %2665
  %2667 = load double, ptr %2666, align 8, !tbaa !23
  %2668 = load ptr, ptr %110, align 8, !tbaa !5
  %2669 = load i32, ptr %111, align 4, !tbaa !9
  %2670 = sext i32 %2669 to i64
  %2671 = getelementptr inbounds double, ptr %2668, i64 %2670
  %2672 = load double, ptr %2671, align 8, !tbaa !23
  %2673 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %2657, double noundef %2662, double noundef %2667, double noundef %2672)
  %2674 = fmul double 1.200000e+01, %2673
  %2675 = load ptr, ptr %104, align 8, !tbaa !5
  %2676 = load i32, ptr %111, align 4, !tbaa !9
  %2677 = sext i32 %2676 to i64
  %2678 = getelementptr inbounds double, ptr %2675, i64 %2677
  store double %2674, ptr %2678, align 8, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #7
  br label %2679

2679:                                             ; preds = %2453
  %2680 = load i32, ptr %111, align 4, !tbaa !9
  %2681 = add nsw i32 %2680, 1
  store i32 %2681, ptr %111, align 4, !tbaa !9
  br label %2448, !llvm.loop !32

2682:                                             ; preds = %2452
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #7
  br label %2683

2683:                                             ; preds = %2682
  %2684 = load i32, ptr %98, align 4, !tbaa !9
  %2685 = add nsw i32 %2684, 1
  store i32 %2685, ptr %98, align 4, !tbaa !9
  br label %2385, !llvm.loop !33

2686:                                             ; preds = %2390
  br label %4152

2687:                                             ; preds = %2383
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #7
  %2688 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 8 dereferenceable(32) %2688)
  %2689 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.6)
          to label %2690 unwind label %2698

2690:                                             ; preds = %2687
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  br i1 %2689, label %2691, label %3264

2691:                                             ; preds = %2690
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #7
  store i32 0, ptr %114, align 4, !tbaa !9
  br label %2692

2692:                                             ; preds = %3260, %2691
  %2693 = load i32, ptr %114, align 4, !tbaa !9
  %2694 = load i32, ptr %7, align 4, !tbaa !9
  %2695 = sdiv i32 %2694, 6
  %2696 = icmp slt i32 %2693, %2695
  br i1 %2696, label %2702, label %2697

2697:                                             ; preds = %2692
  store i32 26, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  br label %3263

2698:                                             ; preds = %2687
  %2699 = landingpad { ptr, i32 }
          cleanup
  %2700 = extractvalue { ptr, i32 } %2699, 0
  store ptr %2700, ptr %11, align 8
  %2701 = extractvalue { ptr, i32 } %2699, 1
  store i32 %2701, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  br label %4157

2702:                                             ; preds = %2692
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #7
  %2703 = load i32, ptr %114, align 4, !tbaa !9
  %2704 = mul nsw i32 6, %2703
  %2705 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2704)
  store ptr %2705, ptr %115, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #7
  %2706 = load i32, ptr %114, align 4, !tbaa !9
  %2707 = mul nsw i32 6, %2706
  %2708 = add nsw i32 %2707, 1
  %2709 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2708)
  store ptr %2709, ptr %116, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #7
  %2710 = load i32, ptr %114, align 4, !tbaa !9
  %2711 = mul nsw i32 6, %2710
  %2712 = add nsw i32 %2711, 2
  %2713 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2712)
  store ptr %2713, ptr %117, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #7
  %2714 = load i32, ptr %114, align 4, !tbaa !9
  %2715 = mul nsw i32 6, %2714
  %2716 = add nsw i32 %2715, 3
  %2717 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2716)
  store ptr %2717, ptr %118, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #7
  %2718 = load i32, ptr %114, align 4, !tbaa !9
  %2719 = mul nsw i32 6, %2718
  %2720 = add nsw i32 %2719, 4
  %2721 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2720)
  store ptr %2721, ptr %119, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #7
  %2722 = load i32, ptr %114, align 4, !tbaa !9
  %2723 = mul nsw i32 6, %2722
  %2724 = add nsw i32 %2723, 5
  %2725 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %2724)
  store ptr %2725, ptr %120, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #7
  %2726 = load ptr, ptr %6, align 8, !tbaa !5
  %2727 = load i32, ptr %114, align 4, !tbaa !9
  %2728 = mul nsw i32 18, %2727
  %2729 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2726, i32 noundef %2728)
  store ptr %2729, ptr %121, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #7
  %2730 = load ptr, ptr %6, align 8, !tbaa !5
  %2731 = load i32, ptr %114, align 4, !tbaa !9
  %2732 = mul nsw i32 18, %2731
  %2733 = add nsw i32 %2732, 1
  %2734 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2730, i32 noundef %2733)
  store ptr %2734, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #7
  %2735 = load ptr, ptr %6, align 8, !tbaa !5
  %2736 = load i32, ptr %114, align 4, !tbaa !9
  %2737 = mul nsw i32 18, %2736
  %2738 = add nsw i32 %2737, 2
  %2739 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2735, i32 noundef %2738)
  store ptr %2739, ptr %123, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #7
  %2740 = load ptr, ptr %6, align 8, !tbaa !5
  %2741 = load i32, ptr %114, align 4, !tbaa !9
  %2742 = mul nsw i32 18, %2741
  %2743 = add nsw i32 %2742, 3
  %2744 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2740, i32 noundef %2743)
  store ptr %2744, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #7
  %2745 = load ptr, ptr %6, align 8, !tbaa !5
  %2746 = load i32, ptr %114, align 4, !tbaa !9
  %2747 = mul nsw i32 18, %2746
  %2748 = add nsw i32 %2747, 4
  %2749 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2745, i32 noundef %2748)
  store ptr %2749, ptr %125, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #7
  %2750 = load ptr, ptr %6, align 8, !tbaa !5
  %2751 = load i32, ptr %114, align 4, !tbaa !9
  %2752 = mul nsw i32 18, %2751
  %2753 = add nsw i32 %2752, 5
  %2754 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2750, i32 noundef %2753)
  store ptr %2754, ptr %126, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #7
  %2755 = load ptr, ptr %6, align 8, !tbaa !5
  %2756 = load i32, ptr %114, align 4, !tbaa !9
  %2757 = mul nsw i32 18, %2756
  %2758 = add nsw i32 %2757, 6
  %2759 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2755, i32 noundef %2758)
  store ptr %2759, ptr %127, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #7
  %2760 = load ptr, ptr %6, align 8, !tbaa !5
  %2761 = load i32, ptr %114, align 4, !tbaa !9
  %2762 = mul nsw i32 18, %2761
  %2763 = add nsw i32 %2762, 7
  %2764 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2760, i32 noundef %2763)
  store ptr %2764, ptr %128, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #7
  %2765 = load ptr, ptr %6, align 8, !tbaa !5
  %2766 = load i32, ptr %114, align 4, !tbaa !9
  %2767 = mul nsw i32 18, %2766
  %2768 = add nsw i32 %2767, 8
  %2769 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2765, i32 noundef %2768)
  store ptr %2769, ptr %129, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #7
  %2770 = load ptr, ptr %6, align 8, !tbaa !5
  %2771 = load i32, ptr %114, align 4, !tbaa !9
  %2772 = mul nsw i32 18, %2771
  %2773 = add nsw i32 %2772, 9
  %2774 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2770, i32 noundef %2773)
  store ptr %2774, ptr %130, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #7
  %2775 = load ptr, ptr %6, align 8, !tbaa !5
  %2776 = load i32, ptr %114, align 4, !tbaa !9
  %2777 = mul nsw i32 18, %2776
  %2778 = add nsw i32 %2777, 10
  %2779 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2775, i32 noundef %2778)
  store ptr %2779, ptr %131, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #7
  %2780 = load ptr, ptr %6, align 8, !tbaa !5
  %2781 = load i32, ptr %114, align 4, !tbaa !9
  %2782 = mul nsw i32 18, %2781
  %2783 = add nsw i32 %2782, 11
  %2784 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2780, i32 noundef %2783)
  store ptr %2784, ptr %132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #7
  %2785 = load ptr, ptr %6, align 8, !tbaa !5
  %2786 = load i32, ptr %114, align 4, !tbaa !9
  %2787 = mul nsw i32 18, %2786
  %2788 = add nsw i32 %2787, 12
  %2789 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2785, i32 noundef %2788)
  store ptr %2789, ptr %133, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #7
  %2790 = load ptr, ptr %6, align 8, !tbaa !5
  %2791 = load i32, ptr %114, align 4, !tbaa !9
  %2792 = mul nsw i32 18, %2791
  %2793 = add nsw i32 %2792, 13
  %2794 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2790, i32 noundef %2793)
  store ptr %2794, ptr %134, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #7
  %2795 = load ptr, ptr %6, align 8, !tbaa !5
  %2796 = load i32, ptr %114, align 4, !tbaa !9
  %2797 = mul nsw i32 18, %2796
  %2798 = add nsw i32 %2797, 14
  %2799 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2795, i32 noundef %2798)
  store ptr %2799, ptr %135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #7
  %2800 = load ptr, ptr %6, align 8, !tbaa !5
  %2801 = load i32, ptr %114, align 4, !tbaa !9
  %2802 = mul nsw i32 18, %2801
  %2803 = add nsw i32 %2802, 15
  %2804 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2800, i32 noundef %2803)
  store ptr %2804, ptr %136, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #7
  %2805 = load ptr, ptr %6, align 8, !tbaa !5
  %2806 = load i32, ptr %114, align 4, !tbaa !9
  %2807 = mul nsw i32 18, %2806
  %2808 = add nsw i32 %2807, 16
  %2809 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2805, i32 noundef %2808)
  store ptr %2809, ptr %137, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #7
  %2810 = load ptr, ptr %6, align 8, !tbaa !5
  %2811 = load i32, ptr %114, align 4, !tbaa !9
  %2812 = mul nsw i32 18, %2811
  %2813 = add nsw i32 %2812, 17
  %2814 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %2810, i32 noundef %2813)
  store ptr %2814, ptr %138, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #7
  store i32 0, ptr %139, align 4, !tbaa !9
  br label %2815

2815:                                             ; preds = %3256, %2702
  %2816 = load i32, ptr %139, align 4, !tbaa !9
  %2817 = load i32, ptr %9, align 4, !tbaa !9
  %2818 = icmp slt i32 %2816, %2817
  br i1 %2818, label %2820, label %2819

2819:                                             ; preds = %2815
  store i32 29, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #7
  br label %3259

2820:                                             ; preds = %2815
  %2821 = load ptr, ptr %127, align 8, !tbaa !5
  %2822 = load i32, ptr %139, align 4, !tbaa !9
  %2823 = sext i32 %2822 to i64
  %2824 = getelementptr inbounds double, ptr %2821, i64 %2823
  %2825 = load double, ptr %2824, align 8, !tbaa !23
  %2826 = load ptr, ptr %121, align 8, !tbaa !5
  %2827 = load i32, ptr %139, align 4, !tbaa !9
  %2828 = sext i32 %2827 to i64
  %2829 = getelementptr inbounds double, ptr %2826, i64 %2828
  %2830 = load double, ptr %2829, align 8, !tbaa !23
  %2831 = load ptr, ptr %128, align 8, !tbaa !5
  %2832 = load i32, ptr %139, align 4, !tbaa !9
  %2833 = sext i32 %2832 to i64
  %2834 = getelementptr inbounds double, ptr %2831, i64 %2833
  %2835 = load double, ptr %2834, align 8, !tbaa !23
  %2836 = load ptr, ptr %122, align 8, !tbaa !5
  %2837 = load i32, ptr %139, align 4, !tbaa !9
  %2838 = sext i32 %2837 to i64
  %2839 = getelementptr inbounds double, ptr %2836, i64 %2838
  %2840 = load double, ptr %2839, align 8, !tbaa !23
  %2841 = fmul double %2835, %2840
  %2842 = fneg double %2841
  %2843 = call double @llvm.fmuladd.f64(double %2825, double %2830, double %2842)
  %2844 = load ptr, ptr %133, align 8, !tbaa !5
  %2845 = load i32, ptr %139, align 4, !tbaa !9
  %2846 = sext i32 %2845 to i64
  %2847 = getelementptr inbounds double, ptr %2844, i64 %2846
  %2848 = load double, ptr %2847, align 8, !tbaa !23
  %2849 = load ptr, ptr %123, align 8, !tbaa !5
  %2850 = load i32, ptr %139, align 4, !tbaa !9
  %2851 = sext i32 %2850 to i64
  %2852 = getelementptr inbounds double, ptr %2849, i64 %2851
  %2853 = load double, ptr %2852, align 8, !tbaa !23
  %2854 = call double @llvm.fmuladd.f64(double %2848, double %2853, double %2843)
  %2855 = load ptr, ptr %134, align 8, !tbaa !5
  %2856 = load i32, ptr %139, align 4, !tbaa !9
  %2857 = sext i32 %2856 to i64
  %2858 = getelementptr inbounds double, ptr %2855, i64 %2857
  %2859 = load double, ptr %2858, align 8, !tbaa !23
  %2860 = load ptr, ptr %124, align 8, !tbaa !5
  %2861 = load i32, ptr %139, align 4, !tbaa !9
  %2862 = sext i32 %2861 to i64
  %2863 = getelementptr inbounds double, ptr %2860, i64 %2862
  %2864 = load double, ptr %2863, align 8, !tbaa !23
  %2865 = fneg double %2859
  %2866 = call double @llvm.fmuladd.f64(double %2865, double %2864, double %2854)
  %2867 = load ptr, ptr %135, align 8, !tbaa !5
  %2868 = load i32, ptr %139, align 4, !tbaa !9
  %2869 = sext i32 %2868 to i64
  %2870 = getelementptr inbounds double, ptr %2867, i64 %2869
  %2871 = load double, ptr %2870, align 8, !tbaa !23
  %2872 = load ptr, ptr %125, align 8, !tbaa !5
  %2873 = load i32, ptr %139, align 4, !tbaa !9
  %2874 = sext i32 %2873 to i64
  %2875 = getelementptr inbounds double, ptr %2872, i64 %2874
  %2876 = load double, ptr %2875, align 8, !tbaa !23
  %2877 = call double @llvm.fmuladd.f64(double %2871, double %2876, double %2866)
  %2878 = load ptr, ptr %136, align 8, !tbaa !5
  %2879 = load i32, ptr %139, align 4, !tbaa !9
  %2880 = sext i32 %2879 to i64
  %2881 = getelementptr inbounds double, ptr %2878, i64 %2880
  %2882 = load double, ptr %2881, align 8, !tbaa !23
  %2883 = load ptr, ptr %126, align 8, !tbaa !5
  %2884 = load i32, ptr %139, align 4, !tbaa !9
  %2885 = sext i32 %2884 to i64
  %2886 = getelementptr inbounds double, ptr %2883, i64 %2885
  %2887 = load double, ptr %2886, align 8, !tbaa !23
  %2888 = fneg double %2882
  %2889 = call double @llvm.fmuladd.f64(double %2888, double %2887, double %2877)
  %2890 = fmul double 2.000000e+00, %2889
  %2891 = load ptr, ptr %115, align 8, !tbaa !5
  %2892 = load i32, ptr %139, align 4, !tbaa !9
  %2893 = sext i32 %2892 to i64
  %2894 = getelementptr inbounds double, ptr %2891, i64 %2893
  store double %2890, ptr %2894, align 8, !tbaa !23
  %2895 = load ptr, ptr %133, align 8, !tbaa !5
  %2896 = load i32, ptr %139, align 4, !tbaa !9
  %2897 = sext i32 %2896 to i64
  %2898 = getelementptr inbounds double, ptr %2895, i64 %2897
  %2899 = load double, ptr %2898, align 8, !tbaa !23
  %2900 = load ptr, ptr %121, align 8, !tbaa !5
  %2901 = load i32, ptr %139, align 4, !tbaa !9
  %2902 = sext i32 %2901 to i64
  %2903 = getelementptr inbounds double, ptr %2900, i64 %2902
  %2904 = load double, ptr %2903, align 8, !tbaa !23
  %2905 = load ptr, ptr %134, align 8, !tbaa !5
  %2906 = load i32, ptr %139, align 4, !tbaa !9
  %2907 = sext i32 %2906 to i64
  %2908 = getelementptr inbounds double, ptr %2905, i64 %2907
  %2909 = load double, ptr %2908, align 8, !tbaa !23
  %2910 = load ptr, ptr %122, align 8, !tbaa !5
  %2911 = load i32, ptr %139, align 4, !tbaa !9
  %2912 = sext i32 %2911 to i64
  %2913 = getelementptr inbounds double, ptr %2910, i64 %2912
  %2914 = load double, ptr %2913, align 8, !tbaa !23
  %2915 = fmul double %2909, %2914
  %2916 = fneg double %2915
  %2917 = call double @llvm.fmuladd.f64(double %2899, double %2904, double %2916)
  %2918 = load ptr, ptr %129, align 8, !tbaa !5
  %2919 = load i32, ptr %139, align 4, !tbaa !9
  %2920 = sext i32 %2919 to i64
  %2921 = getelementptr inbounds double, ptr %2918, i64 %2920
  %2922 = load double, ptr %2921, align 8, !tbaa !23
  %2923 = load ptr, ptr %123, align 8, !tbaa !5
  %2924 = load i32, ptr %139, align 4, !tbaa !9
  %2925 = sext i32 %2924 to i64
  %2926 = getelementptr inbounds double, ptr %2923, i64 %2925
  %2927 = load double, ptr %2926, align 8, !tbaa !23
  %2928 = call double @llvm.fmuladd.f64(double %2922, double %2927, double %2917)
  %2929 = load ptr, ptr %130, align 8, !tbaa !5
  %2930 = load i32, ptr %139, align 4, !tbaa !9
  %2931 = sext i32 %2930 to i64
  %2932 = getelementptr inbounds double, ptr %2929, i64 %2931
  %2933 = load double, ptr %2932, align 8, !tbaa !23
  %2934 = load ptr, ptr %124, align 8, !tbaa !5
  %2935 = load i32, ptr %139, align 4, !tbaa !9
  %2936 = sext i32 %2935 to i64
  %2937 = getelementptr inbounds double, ptr %2934, i64 %2936
  %2938 = load double, ptr %2937, align 8, !tbaa !23
  %2939 = fneg double %2933
  %2940 = call double @llvm.fmuladd.f64(double %2939, double %2938, double %2928)
  %2941 = load ptr, ptr %137, align 8, !tbaa !5
  %2942 = load i32, ptr %139, align 4, !tbaa !9
  %2943 = sext i32 %2942 to i64
  %2944 = getelementptr inbounds double, ptr %2941, i64 %2943
  %2945 = load double, ptr %2944, align 8, !tbaa !23
  %2946 = load ptr, ptr %125, align 8, !tbaa !5
  %2947 = load i32, ptr %139, align 4, !tbaa !9
  %2948 = sext i32 %2947 to i64
  %2949 = getelementptr inbounds double, ptr %2946, i64 %2948
  %2950 = load double, ptr %2949, align 8, !tbaa !23
  %2951 = call double @llvm.fmuladd.f64(double %2945, double %2950, double %2940)
  %2952 = load ptr, ptr %138, align 8, !tbaa !5
  %2953 = load i32, ptr %139, align 4, !tbaa !9
  %2954 = sext i32 %2953 to i64
  %2955 = getelementptr inbounds double, ptr %2952, i64 %2954
  %2956 = load double, ptr %2955, align 8, !tbaa !23
  %2957 = load ptr, ptr %126, align 8, !tbaa !5
  %2958 = load i32, ptr %139, align 4, !tbaa !9
  %2959 = sext i32 %2958 to i64
  %2960 = getelementptr inbounds double, ptr %2957, i64 %2959
  %2961 = load double, ptr %2960, align 8, !tbaa !23
  %2962 = fneg double %2956
  %2963 = call double @llvm.fmuladd.f64(double %2962, double %2961, double %2951)
  %2964 = fmul double 2.000000e+00, %2963
  %2965 = load ptr, ptr %117, align 8, !tbaa !5
  %2966 = load i32, ptr %139, align 4, !tbaa !9
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds double, ptr %2965, i64 %2967
  store double %2964, ptr %2968, align 8, !tbaa !23
  %2969 = load ptr, ptr %135, align 8, !tbaa !5
  %2970 = load i32, ptr %139, align 4, !tbaa !9
  %2971 = sext i32 %2970 to i64
  %2972 = getelementptr inbounds double, ptr %2969, i64 %2971
  %2973 = load double, ptr %2972, align 8, !tbaa !23
  %2974 = load ptr, ptr %121, align 8, !tbaa !5
  %2975 = load i32, ptr %139, align 4, !tbaa !9
  %2976 = sext i32 %2975 to i64
  %2977 = getelementptr inbounds double, ptr %2974, i64 %2976
  %2978 = load double, ptr %2977, align 8, !tbaa !23
  %2979 = load ptr, ptr %136, align 8, !tbaa !5
  %2980 = load i32, ptr %139, align 4, !tbaa !9
  %2981 = sext i32 %2980 to i64
  %2982 = getelementptr inbounds double, ptr %2979, i64 %2981
  %2983 = load double, ptr %2982, align 8, !tbaa !23
  %2984 = load ptr, ptr %122, align 8, !tbaa !5
  %2985 = load i32, ptr %139, align 4, !tbaa !9
  %2986 = sext i32 %2985 to i64
  %2987 = getelementptr inbounds double, ptr %2984, i64 %2986
  %2988 = load double, ptr %2987, align 8, !tbaa !23
  %2989 = fmul double %2983, %2988
  %2990 = fneg double %2989
  %2991 = call double @llvm.fmuladd.f64(double %2973, double %2978, double %2990)
  %2992 = load ptr, ptr %137, align 8, !tbaa !5
  %2993 = load i32, ptr %139, align 4, !tbaa !9
  %2994 = sext i32 %2993 to i64
  %2995 = getelementptr inbounds double, ptr %2992, i64 %2994
  %2996 = load double, ptr %2995, align 8, !tbaa !23
  %2997 = load ptr, ptr %123, align 8, !tbaa !5
  %2998 = load i32, ptr %139, align 4, !tbaa !9
  %2999 = sext i32 %2998 to i64
  %3000 = getelementptr inbounds double, ptr %2997, i64 %2999
  %3001 = load double, ptr %3000, align 8, !tbaa !23
  %3002 = call double @llvm.fmuladd.f64(double %2996, double %3001, double %2991)
  %3003 = load ptr, ptr %138, align 8, !tbaa !5
  %3004 = load i32, ptr %139, align 4, !tbaa !9
  %3005 = sext i32 %3004 to i64
  %3006 = getelementptr inbounds double, ptr %3003, i64 %3005
  %3007 = load double, ptr %3006, align 8, !tbaa !23
  %3008 = load ptr, ptr %124, align 8, !tbaa !5
  %3009 = load i32, ptr %139, align 4, !tbaa !9
  %3010 = sext i32 %3009 to i64
  %3011 = getelementptr inbounds double, ptr %3008, i64 %3010
  %3012 = load double, ptr %3011, align 8, !tbaa !23
  %3013 = fneg double %3007
  %3014 = call double @llvm.fmuladd.f64(double %3013, double %3012, double %3002)
  %3015 = load ptr, ptr %131, align 8, !tbaa !5
  %3016 = load i32, ptr %139, align 4, !tbaa !9
  %3017 = sext i32 %3016 to i64
  %3018 = getelementptr inbounds double, ptr %3015, i64 %3017
  %3019 = load double, ptr %3018, align 8, !tbaa !23
  %3020 = load ptr, ptr %125, align 8, !tbaa !5
  %3021 = load i32, ptr %139, align 4, !tbaa !9
  %3022 = sext i32 %3021 to i64
  %3023 = getelementptr inbounds double, ptr %3020, i64 %3022
  %3024 = load double, ptr %3023, align 8, !tbaa !23
  %3025 = call double @llvm.fmuladd.f64(double %3019, double %3024, double %3014)
  %3026 = load ptr, ptr %132, align 8, !tbaa !5
  %3027 = load i32, ptr %139, align 4, !tbaa !9
  %3028 = sext i32 %3027 to i64
  %3029 = getelementptr inbounds double, ptr %3026, i64 %3028
  %3030 = load double, ptr %3029, align 8, !tbaa !23
  %3031 = load ptr, ptr %126, align 8, !tbaa !5
  %3032 = load i32, ptr %139, align 4, !tbaa !9
  %3033 = sext i32 %3032 to i64
  %3034 = getelementptr inbounds double, ptr %3031, i64 %3033
  %3035 = load double, ptr %3034, align 8, !tbaa !23
  %3036 = fneg double %3030
  %3037 = call double @llvm.fmuladd.f64(double %3036, double %3035, double %3025)
  %3038 = fmul double 2.000000e+00, %3037
  %3039 = load ptr, ptr %119, align 8, !tbaa !5
  %3040 = load i32, ptr %139, align 4, !tbaa !9
  %3041 = sext i32 %3040 to i64
  %3042 = getelementptr inbounds double, ptr %3039, i64 %3041
  store double %3038, ptr %3042, align 8, !tbaa !23
  %3043 = load ptr, ptr %128, align 8, !tbaa !5
  %3044 = load i32, ptr %139, align 4, !tbaa !9
  %3045 = sext i32 %3044 to i64
  %3046 = getelementptr inbounds double, ptr %3043, i64 %3045
  %3047 = load double, ptr %3046, align 8, !tbaa !23
  %3048 = load ptr, ptr %121, align 8, !tbaa !5
  %3049 = load i32, ptr %139, align 4, !tbaa !9
  %3050 = sext i32 %3049 to i64
  %3051 = getelementptr inbounds double, ptr %3048, i64 %3050
  %3052 = load double, ptr %3051, align 8, !tbaa !23
  %3053 = load ptr, ptr %127, align 8, !tbaa !5
  %3054 = load i32, ptr %139, align 4, !tbaa !9
  %3055 = sext i32 %3054 to i64
  %3056 = getelementptr inbounds double, ptr %3053, i64 %3055
  %3057 = load double, ptr %3056, align 8, !tbaa !23
  %3058 = load ptr, ptr %122, align 8, !tbaa !5
  %3059 = load i32, ptr %139, align 4, !tbaa !9
  %3060 = sext i32 %3059 to i64
  %3061 = getelementptr inbounds double, ptr %3058, i64 %3060
  %3062 = load double, ptr %3061, align 8, !tbaa !23
  %3063 = fmul double %3057, %3062
  %3064 = call double @llvm.fmuladd.f64(double %3047, double %3052, double %3063)
  %3065 = load ptr, ptr %134, align 8, !tbaa !5
  %3066 = load i32, ptr %139, align 4, !tbaa !9
  %3067 = sext i32 %3066 to i64
  %3068 = getelementptr inbounds double, ptr %3065, i64 %3067
  %3069 = load double, ptr %3068, align 8, !tbaa !23
  %3070 = load ptr, ptr %123, align 8, !tbaa !5
  %3071 = load i32, ptr %139, align 4, !tbaa !9
  %3072 = sext i32 %3071 to i64
  %3073 = getelementptr inbounds double, ptr %3070, i64 %3072
  %3074 = load double, ptr %3073, align 8, !tbaa !23
  %3075 = call double @llvm.fmuladd.f64(double %3069, double %3074, double %3064)
  %3076 = load ptr, ptr %133, align 8, !tbaa !5
  %3077 = load i32, ptr %139, align 4, !tbaa !9
  %3078 = sext i32 %3077 to i64
  %3079 = getelementptr inbounds double, ptr %3076, i64 %3078
  %3080 = load double, ptr %3079, align 8, !tbaa !23
  %3081 = load ptr, ptr %124, align 8, !tbaa !5
  %3082 = load i32, ptr %139, align 4, !tbaa !9
  %3083 = sext i32 %3082 to i64
  %3084 = getelementptr inbounds double, ptr %3081, i64 %3083
  %3085 = load double, ptr %3084, align 8, !tbaa !23
  %3086 = call double @llvm.fmuladd.f64(double %3080, double %3085, double %3075)
  %3087 = load ptr, ptr %136, align 8, !tbaa !5
  %3088 = load i32, ptr %139, align 4, !tbaa !9
  %3089 = sext i32 %3088 to i64
  %3090 = getelementptr inbounds double, ptr %3087, i64 %3089
  %3091 = load double, ptr %3090, align 8, !tbaa !23
  %3092 = load ptr, ptr %125, align 8, !tbaa !5
  %3093 = load i32, ptr %139, align 4, !tbaa !9
  %3094 = sext i32 %3093 to i64
  %3095 = getelementptr inbounds double, ptr %3092, i64 %3094
  %3096 = load double, ptr %3095, align 8, !tbaa !23
  %3097 = call double @llvm.fmuladd.f64(double %3091, double %3096, double %3086)
  %3098 = load ptr, ptr %135, align 8, !tbaa !5
  %3099 = load i32, ptr %139, align 4, !tbaa !9
  %3100 = sext i32 %3099 to i64
  %3101 = getelementptr inbounds double, ptr %3098, i64 %3100
  %3102 = load double, ptr %3101, align 8, !tbaa !23
  %3103 = load ptr, ptr %126, align 8, !tbaa !5
  %3104 = load i32, ptr %139, align 4, !tbaa !9
  %3105 = sext i32 %3104 to i64
  %3106 = getelementptr inbounds double, ptr %3103, i64 %3105
  %3107 = load double, ptr %3106, align 8, !tbaa !23
  %3108 = call double @llvm.fmuladd.f64(double %3102, double %3107, double %3097)
  %3109 = fmul double 2.000000e+00, %3108
  %3110 = load ptr, ptr %116, align 8, !tbaa !5
  %3111 = load i32, ptr %139, align 4, !tbaa !9
  %3112 = sext i32 %3111 to i64
  %3113 = getelementptr inbounds double, ptr %3110, i64 %3112
  store double %3109, ptr %3113, align 8, !tbaa !23
  %3114 = load ptr, ptr %134, align 8, !tbaa !5
  %3115 = load i32, ptr %139, align 4, !tbaa !9
  %3116 = sext i32 %3115 to i64
  %3117 = getelementptr inbounds double, ptr %3114, i64 %3116
  %3118 = load double, ptr %3117, align 8, !tbaa !23
  %3119 = load ptr, ptr %121, align 8, !tbaa !5
  %3120 = load i32, ptr %139, align 4, !tbaa !9
  %3121 = sext i32 %3120 to i64
  %3122 = getelementptr inbounds double, ptr %3119, i64 %3121
  %3123 = load double, ptr %3122, align 8, !tbaa !23
  %3124 = load ptr, ptr %133, align 8, !tbaa !5
  %3125 = load i32, ptr %139, align 4, !tbaa !9
  %3126 = sext i32 %3125 to i64
  %3127 = getelementptr inbounds double, ptr %3124, i64 %3126
  %3128 = load double, ptr %3127, align 8, !tbaa !23
  %3129 = load ptr, ptr %122, align 8, !tbaa !5
  %3130 = load i32, ptr %139, align 4, !tbaa !9
  %3131 = sext i32 %3130 to i64
  %3132 = getelementptr inbounds double, ptr %3129, i64 %3131
  %3133 = load double, ptr %3132, align 8, !tbaa !23
  %3134 = fmul double %3128, %3133
  %3135 = call double @llvm.fmuladd.f64(double %3118, double %3123, double %3134)
  %3136 = load ptr, ptr %130, align 8, !tbaa !5
  %3137 = load i32, ptr %139, align 4, !tbaa !9
  %3138 = sext i32 %3137 to i64
  %3139 = getelementptr inbounds double, ptr %3136, i64 %3138
  %3140 = load double, ptr %3139, align 8, !tbaa !23
  %3141 = load ptr, ptr %123, align 8, !tbaa !5
  %3142 = load i32, ptr %139, align 4, !tbaa !9
  %3143 = sext i32 %3142 to i64
  %3144 = getelementptr inbounds double, ptr %3141, i64 %3143
  %3145 = load double, ptr %3144, align 8, !tbaa !23
  %3146 = call double @llvm.fmuladd.f64(double %3140, double %3145, double %3135)
  %3147 = load ptr, ptr %129, align 8, !tbaa !5
  %3148 = load i32, ptr %139, align 4, !tbaa !9
  %3149 = sext i32 %3148 to i64
  %3150 = getelementptr inbounds double, ptr %3147, i64 %3149
  %3151 = load double, ptr %3150, align 8, !tbaa !23
  %3152 = load ptr, ptr %124, align 8, !tbaa !5
  %3153 = load i32, ptr %139, align 4, !tbaa !9
  %3154 = sext i32 %3153 to i64
  %3155 = getelementptr inbounds double, ptr %3152, i64 %3154
  %3156 = load double, ptr %3155, align 8, !tbaa !23
  %3157 = call double @llvm.fmuladd.f64(double %3151, double %3156, double %3146)
  %3158 = load ptr, ptr %138, align 8, !tbaa !5
  %3159 = load i32, ptr %139, align 4, !tbaa !9
  %3160 = sext i32 %3159 to i64
  %3161 = getelementptr inbounds double, ptr %3158, i64 %3160
  %3162 = load double, ptr %3161, align 8, !tbaa !23
  %3163 = load ptr, ptr %125, align 8, !tbaa !5
  %3164 = load i32, ptr %139, align 4, !tbaa !9
  %3165 = sext i32 %3164 to i64
  %3166 = getelementptr inbounds double, ptr %3163, i64 %3165
  %3167 = load double, ptr %3166, align 8, !tbaa !23
  %3168 = call double @llvm.fmuladd.f64(double %3162, double %3167, double %3157)
  %3169 = load ptr, ptr %137, align 8, !tbaa !5
  %3170 = load i32, ptr %139, align 4, !tbaa !9
  %3171 = sext i32 %3170 to i64
  %3172 = getelementptr inbounds double, ptr %3169, i64 %3171
  %3173 = load double, ptr %3172, align 8, !tbaa !23
  %3174 = load ptr, ptr %126, align 8, !tbaa !5
  %3175 = load i32, ptr %139, align 4, !tbaa !9
  %3176 = sext i32 %3175 to i64
  %3177 = getelementptr inbounds double, ptr %3174, i64 %3176
  %3178 = load double, ptr %3177, align 8, !tbaa !23
  %3179 = call double @llvm.fmuladd.f64(double %3173, double %3178, double %3168)
  %3180 = fmul double 2.000000e+00, %3179
  %3181 = load ptr, ptr %118, align 8, !tbaa !5
  %3182 = load i32, ptr %139, align 4, !tbaa !9
  %3183 = sext i32 %3182 to i64
  %3184 = getelementptr inbounds double, ptr %3181, i64 %3183
  store double %3180, ptr %3184, align 8, !tbaa !23
  %3185 = load ptr, ptr %136, align 8, !tbaa !5
  %3186 = load i32, ptr %139, align 4, !tbaa !9
  %3187 = sext i32 %3186 to i64
  %3188 = getelementptr inbounds double, ptr %3185, i64 %3187
  %3189 = load double, ptr %3188, align 8, !tbaa !23
  %3190 = load ptr, ptr %121, align 8, !tbaa !5
  %3191 = load i32, ptr %139, align 4, !tbaa !9
  %3192 = sext i32 %3191 to i64
  %3193 = getelementptr inbounds double, ptr %3190, i64 %3192
  %3194 = load double, ptr %3193, align 8, !tbaa !23
  %3195 = load ptr, ptr %135, align 8, !tbaa !5
  %3196 = load i32, ptr %139, align 4, !tbaa !9
  %3197 = sext i32 %3196 to i64
  %3198 = getelementptr inbounds double, ptr %3195, i64 %3197
  %3199 = load double, ptr %3198, align 8, !tbaa !23
  %3200 = load ptr, ptr %122, align 8, !tbaa !5
  %3201 = load i32, ptr %139, align 4, !tbaa !9
  %3202 = sext i32 %3201 to i64
  %3203 = getelementptr inbounds double, ptr %3200, i64 %3202
  %3204 = load double, ptr %3203, align 8, !tbaa !23
  %3205 = fmul double %3199, %3204
  %3206 = call double @llvm.fmuladd.f64(double %3189, double %3194, double %3205)
  %3207 = load ptr, ptr %138, align 8, !tbaa !5
  %3208 = load i32, ptr %139, align 4, !tbaa !9
  %3209 = sext i32 %3208 to i64
  %3210 = getelementptr inbounds double, ptr %3207, i64 %3209
  %3211 = load double, ptr %3210, align 8, !tbaa !23
  %3212 = load ptr, ptr %123, align 8, !tbaa !5
  %3213 = load i32, ptr %139, align 4, !tbaa !9
  %3214 = sext i32 %3213 to i64
  %3215 = getelementptr inbounds double, ptr %3212, i64 %3214
  %3216 = load double, ptr %3215, align 8, !tbaa !23
  %3217 = call double @llvm.fmuladd.f64(double %3211, double %3216, double %3206)
  %3218 = load ptr, ptr %137, align 8, !tbaa !5
  %3219 = load i32, ptr %139, align 4, !tbaa !9
  %3220 = sext i32 %3219 to i64
  %3221 = getelementptr inbounds double, ptr %3218, i64 %3220
  %3222 = load double, ptr %3221, align 8, !tbaa !23
  %3223 = load ptr, ptr %124, align 8, !tbaa !5
  %3224 = load i32, ptr %139, align 4, !tbaa !9
  %3225 = sext i32 %3224 to i64
  %3226 = getelementptr inbounds double, ptr %3223, i64 %3225
  %3227 = load double, ptr %3226, align 8, !tbaa !23
  %3228 = call double @llvm.fmuladd.f64(double %3222, double %3227, double %3217)
  %3229 = load ptr, ptr %132, align 8, !tbaa !5
  %3230 = load i32, ptr %139, align 4, !tbaa !9
  %3231 = sext i32 %3230 to i64
  %3232 = getelementptr inbounds double, ptr %3229, i64 %3231
  %3233 = load double, ptr %3232, align 8, !tbaa !23
  %3234 = load ptr, ptr %125, align 8, !tbaa !5
  %3235 = load i32, ptr %139, align 4, !tbaa !9
  %3236 = sext i32 %3235 to i64
  %3237 = getelementptr inbounds double, ptr %3234, i64 %3236
  %3238 = load double, ptr %3237, align 8, !tbaa !23
  %3239 = call double @llvm.fmuladd.f64(double %3233, double %3238, double %3228)
  %3240 = load ptr, ptr %131, align 8, !tbaa !5
  %3241 = load i32, ptr %139, align 4, !tbaa !9
  %3242 = sext i32 %3241 to i64
  %3243 = getelementptr inbounds double, ptr %3240, i64 %3242
  %3244 = load double, ptr %3243, align 8, !tbaa !23
  %3245 = load ptr, ptr %126, align 8, !tbaa !5
  %3246 = load i32, ptr %139, align 4, !tbaa !9
  %3247 = sext i32 %3246 to i64
  %3248 = getelementptr inbounds double, ptr %3245, i64 %3247
  %3249 = load double, ptr %3248, align 8, !tbaa !23
  %3250 = call double @llvm.fmuladd.f64(double %3244, double %3249, double %3239)
  %3251 = fmul double 2.000000e+00, %3250
  %3252 = load ptr, ptr %120, align 8, !tbaa !5
  %3253 = load i32, ptr %139, align 4, !tbaa !9
  %3254 = sext i32 %3253 to i64
  %3255 = getelementptr inbounds double, ptr %3252, i64 %3254
  store double %3251, ptr %3255, align 8, !tbaa !23
  br label %3256

3256:                                             ; preds = %2820
  %3257 = load i32, ptr %139, align 4, !tbaa !9
  %3258 = add nsw i32 %3257, 1
  store i32 %3258, ptr %139, align 4, !tbaa !9
  br label %2815, !llvm.loop !34

3259:                                             ; preds = %2819
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #7
  br label %3260

3260:                                             ; preds = %3259
  %3261 = load i32, ptr %114, align 4, !tbaa !9
  %3262 = add nsw i32 %3261, 1
  store i32 %3262, ptr %114, align 4, !tbaa !9
  br label %2692, !llvm.loop !35

3263:                                             ; preds = %2697
  br label %4151

3264:                                             ; preds = %2690
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #7
  %3265 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %140, ptr noundef nonnull align 8 dereferenceable(32) %3265)
  %3266 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef @.str.7)
          to label %3267 unwind label %3275

3267:                                             ; preds = %3264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  br i1 %3266, label %3268, label %3509

3268:                                             ; preds = %3267
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #7
  store i32 0, ptr %141, align 4, !tbaa !9
  br label %3269

3269:                                             ; preds = %3505, %3268
  %3270 = load i32, ptr %141, align 4, !tbaa !9
  %3271 = load i32, ptr %7, align 4, !tbaa !9
  %3272 = sdiv i32 %3271, 2
  %3273 = icmp slt i32 %3270, %3272
  br i1 %3273, label %3279, label %3274

3274:                                             ; preds = %3269
  store i32 32, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #7
  br label %3508

3275:                                             ; preds = %3264
  %3276 = landingpad { ptr, i32 }
          cleanup
  %3277 = extractvalue { ptr, i32 } %3276, 0
  store ptr %3277, ptr %11, align 8
  %3278 = extractvalue { ptr, i32 } %3276, 1
  store i32 %3278, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  br label %4157

3279:                                             ; preds = %3269
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #7
  %3280 = load i32, ptr %141, align 4, !tbaa !9
  %3281 = mul nsw i32 2, %3280
  %3282 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3281)
  store ptr %3282, ptr %142, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #7
  %3283 = load i32, ptr %141, align 4, !tbaa !9
  %3284 = mul nsw i32 2, %3283
  %3285 = add nsw i32 %3284, 1
  %3286 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3285)
  store ptr %3286, ptr %143, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #7
  %3287 = load ptr, ptr %6, align 8, !tbaa !5
  %3288 = load i32, ptr %141, align 4, !tbaa !9
  %3289 = mul nsw i32 12, %3288
  %3290 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3287, i32 noundef %3289)
  store ptr %3290, ptr %144, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #7
  %3291 = load ptr, ptr %6, align 8, !tbaa !5
  %3292 = load i32, ptr %141, align 4, !tbaa !9
  %3293 = mul nsw i32 12, %3292
  %3294 = add nsw i32 %3293, 1
  %3295 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3291, i32 noundef %3294)
  store ptr %3295, ptr %145, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #7
  %3296 = load ptr, ptr %6, align 8, !tbaa !5
  %3297 = load i32, ptr %141, align 4, !tbaa !9
  %3298 = mul nsw i32 12, %3297
  %3299 = add nsw i32 %3298, 2
  %3300 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3296, i32 noundef %3299)
  store ptr %3300, ptr %146, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #7
  %3301 = load ptr, ptr %6, align 8, !tbaa !5
  %3302 = load i32, ptr %141, align 4, !tbaa !9
  %3303 = mul nsw i32 12, %3302
  %3304 = add nsw i32 %3303, 3
  %3305 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3301, i32 noundef %3304)
  store ptr %3305, ptr %147, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #7
  %3306 = load ptr, ptr %6, align 8, !tbaa !5
  %3307 = load i32, ptr %141, align 4, !tbaa !9
  %3308 = mul nsw i32 12, %3307
  %3309 = add nsw i32 %3308, 4
  %3310 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3306, i32 noundef %3309)
  store ptr %3310, ptr %148, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #7
  %3311 = load ptr, ptr %6, align 8, !tbaa !5
  %3312 = load i32, ptr %141, align 4, !tbaa !9
  %3313 = mul nsw i32 12, %3312
  %3314 = add nsw i32 %3313, 5
  %3315 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3311, i32 noundef %3314)
  store ptr %3315, ptr %149, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #7
  %3316 = load ptr, ptr %6, align 8, !tbaa !5
  %3317 = load i32, ptr %141, align 4, !tbaa !9
  %3318 = mul nsw i32 12, %3317
  %3319 = add nsw i32 %3318, 6
  %3320 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3316, i32 noundef %3319)
  store ptr %3320, ptr %150, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #7
  %3321 = load ptr, ptr %6, align 8, !tbaa !5
  %3322 = load i32, ptr %141, align 4, !tbaa !9
  %3323 = mul nsw i32 12, %3322
  %3324 = add nsw i32 %3323, 7
  %3325 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3321, i32 noundef %3324)
  store ptr %3325, ptr %151, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #7
  %3326 = load ptr, ptr %6, align 8, !tbaa !5
  %3327 = load i32, ptr %141, align 4, !tbaa !9
  %3328 = mul nsw i32 12, %3327
  %3329 = add nsw i32 %3328, 8
  %3330 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3326, i32 noundef %3329)
  store ptr %3330, ptr %152, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #7
  %3331 = load ptr, ptr %6, align 8, !tbaa !5
  %3332 = load i32, ptr %141, align 4, !tbaa !9
  %3333 = mul nsw i32 12, %3332
  %3334 = add nsw i32 %3333, 9
  %3335 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3331, i32 noundef %3334)
  store ptr %3335, ptr %153, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #7
  %3336 = load ptr, ptr %6, align 8, !tbaa !5
  %3337 = load i32, ptr %141, align 4, !tbaa !9
  %3338 = mul nsw i32 12, %3337
  %3339 = add nsw i32 %3338, 10
  %3340 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3336, i32 noundef %3339)
  store ptr %3340, ptr %154, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #7
  %3341 = load ptr, ptr %6, align 8, !tbaa !5
  %3342 = load i32, ptr %141, align 4, !tbaa !9
  %3343 = mul nsw i32 12, %3342
  %3344 = add nsw i32 %3343, 11
  %3345 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3341, i32 noundef %3344)
  store ptr %3345, ptr %155, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #7
  store i32 0, ptr %156, align 4, !tbaa !9
  br label %3346

3346:                                             ; preds = %3501, %3279
  %3347 = load i32, ptr %156, align 4, !tbaa !9
  %3348 = load i32, ptr %9, align 4, !tbaa !9
  %3349 = icmp slt i32 %3347, %3348
  br i1 %3349, label %3351, label %3350

3350:                                             ; preds = %3346
  store i32 35, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #7
  br label %3504

3351:                                             ; preds = %3346
  %3352 = load ptr, ptr %148, align 8, !tbaa !5
  %3353 = load i32, ptr %156, align 4, !tbaa !9
  %3354 = sext i32 %3353 to i64
  %3355 = getelementptr inbounds double, ptr %3352, i64 %3354
  %3356 = load double, ptr %3355, align 8, !tbaa !23
  %3357 = load ptr, ptr %150, align 8, !tbaa !5
  %3358 = load i32, ptr %156, align 4, !tbaa !9
  %3359 = sext i32 %3358 to i64
  %3360 = getelementptr inbounds double, ptr %3357, i64 %3359
  %3361 = load double, ptr %3360, align 8, !tbaa !23
  %3362 = load ptr, ptr %149, align 8, !tbaa !5
  %3363 = load i32, ptr %156, align 4, !tbaa !9
  %3364 = sext i32 %3363 to i64
  %3365 = getelementptr inbounds double, ptr %3362, i64 %3364
  %3366 = load double, ptr %3365, align 8, !tbaa !23
  %3367 = load ptr, ptr %151, align 8, !tbaa !5
  %3368 = load i32, ptr %156, align 4, !tbaa !9
  %3369 = sext i32 %3368 to i64
  %3370 = getelementptr inbounds double, ptr %3367, i64 %3369
  %3371 = load double, ptr %3370, align 8, !tbaa !23
  %3372 = fmul double %3366, %3371
  %3373 = fneg double %3372
  %3374 = call double @llvm.fmuladd.f64(double %3356, double %3361, double %3373)
  %3375 = load ptr, ptr %146, align 8, !tbaa !5
  %3376 = load i32, ptr %156, align 4, !tbaa !9
  %3377 = sext i32 %3376 to i64
  %3378 = getelementptr inbounds double, ptr %3375, i64 %3377
  %3379 = load double, ptr %3378, align 8, !tbaa !23
  %3380 = load ptr, ptr %152, align 8, !tbaa !5
  %3381 = load i32, ptr %156, align 4, !tbaa !9
  %3382 = sext i32 %3381 to i64
  %3383 = getelementptr inbounds double, ptr %3380, i64 %3382
  %3384 = load double, ptr %3383, align 8, !tbaa !23
  %3385 = load ptr, ptr %147, align 8, !tbaa !5
  %3386 = load i32, ptr %156, align 4, !tbaa !9
  %3387 = sext i32 %3386 to i64
  %3388 = getelementptr inbounds double, ptr %3385, i64 %3387
  %3389 = load double, ptr %3388, align 8, !tbaa !23
  %3390 = load ptr, ptr %153, align 8, !tbaa !5
  %3391 = load i32, ptr %156, align 4, !tbaa !9
  %3392 = sext i32 %3391 to i64
  %3393 = getelementptr inbounds double, ptr %3390, i64 %3392
  %3394 = load double, ptr %3393, align 8, !tbaa !23
  %3395 = fmul double %3389, %3394
  %3396 = fneg double %3395
  %3397 = call double @llvm.fmuladd.f64(double %3379, double %3384, double %3396)
  %3398 = fmul double 2.000000e+00, %3397
  %3399 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3374, double %3398)
  %3400 = load ptr, ptr %144, align 8, !tbaa !5
  %3401 = load i32, ptr %156, align 4, !tbaa !9
  %3402 = sext i32 %3401 to i64
  %3403 = getelementptr inbounds double, ptr %3400, i64 %3402
  %3404 = load double, ptr %3403, align 8, !tbaa !23
  %3405 = load ptr, ptr %154, align 8, !tbaa !5
  %3406 = load i32, ptr %156, align 4, !tbaa !9
  %3407 = sext i32 %3406 to i64
  %3408 = getelementptr inbounds double, ptr %3405, i64 %3407
  %3409 = load double, ptr %3408, align 8, !tbaa !23
  %3410 = load ptr, ptr %145, align 8, !tbaa !5
  %3411 = load i32, ptr %156, align 4, !tbaa !9
  %3412 = sext i32 %3411 to i64
  %3413 = getelementptr inbounds double, ptr %3410, i64 %3412
  %3414 = load double, ptr %3413, align 8, !tbaa !23
  %3415 = load ptr, ptr %155, align 8, !tbaa !5
  %3416 = load i32, ptr %156, align 4, !tbaa !9
  %3417 = sext i32 %3416 to i64
  %3418 = getelementptr inbounds double, ptr %3415, i64 %3417
  %3419 = load double, ptr %3418, align 8, !tbaa !23
  %3420 = fmul double %3414, %3419
  %3421 = fneg double %3420
  %3422 = call double @llvm.fmuladd.f64(double %3404, double %3409, double %3421)
  %3423 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3422, double %3399)
  %3424 = load ptr, ptr %142, align 8, !tbaa !5
  %3425 = load i32, ptr %156, align 4, !tbaa !9
  %3426 = sext i32 %3425 to i64
  %3427 = getelementptr inbounds double, ptr %3424, i64 %3426
  store double %3423, ptr %3427, align 8, !tbaa !23
  %3428 = load ptr, ptr %149, align 8, !tbaa !5
  %3429 = load i32, ptr %156, align 4, !tbaa !9
  %3430 = sext i32 %3429 to i64
  %3431 = getelementptr inbounds double, ptr %3428, i64 %3430
  %3432 = load double, ptr %3431, align 8, !tbaa !23
  %3433 = load ptr, ptr %150, align 8, !tbaa !5
  %3434 = load i32, ptr %156, align 4, !tbaa !9
  %3435 = sext i32 %3434 to i64
  %3436 = getelementptr inbounds double, ptr %3433, i64 %3435
  %3437 = load double, ptr %3436, align 8, !tbaa !23
  %3438 = load ptr, ptr %148, align 8, !tbaa !5
  %3439 = load i32, ptr %156, align 4, !tbaa !9
  %3440 = sext i32 %3439 to i64
  %3441 = getelementptr inbounds double, ptr %3438, i64 %3440
  %3442 = load double, ptr %3441, align 8, !tbaa !23
  %3443 = load ptr, ptr %151, align 8, !tbaa !5
  %3444 = load i32, ptr %156, align 4, !tbaa !9
  %3445 = sext i32 %3444 to i64
  %3446 = getelementptr inbounds double, ptr %3443, i64 %3445
  %3447 = load double, ptr %3446, align 8, !tbaa !23
  %3448 = fmul double %3442, %3447
  %3449 = call double @llvm.fmuladd.f64(double %3432, double %3437, double %3448)
  %3450 = load ptr, ptr %147, align 8, !tbaa !5
  %3451 = load i32, ptr %156, align 4, !tbaa !9
  %3452 = sext i32 %3451 to i64
  %3453 = getelementptr inbounds double, ptr %3450, i64 %3452
  %3454 = load double, ptr %3453, align 8, !tbaa !23
  %3455 = load ptr, ptr %152, align 8, !tbaa !5
  %3456 = load i32, ptr %156, align 4, !tbaa !9
  %3457 = sext i32 %3456 to i64
  %3458 = getelementptr inbounds double, ptr %3455, i64 %3457
  %3459 = load double, ptr %3458, align 8, !tbaa !23
  %3460 = load ptr, ptr %146, align 8, !tbaa !5
  %3461 = load i32, ptr %156, align 4, !tbaa !9
  %3462 = sext i32 %3461 to i64
  %3463 = getelementptr inbounds double, ptr %3460, i64 %3462
  %3464 = load double, ptr %3463, align 8, !tbaa !23
  %3465 = load ptr, ptr %153, align 8, !tbaa !5
  %3466 = load i32, ptr %156, align 4, !tbaa !9
  %3467 = sext i32 %3466 to i64
  %3468 = getelementptr inbounds double, ptr %3465, i64 %3467
  %3469 = load double, ptr %3468, align 8, !tbaa !23
  %3470 = fmul double %3464, %3469
  %3471 = call double @llvm.fmuladd.f64(double %3454, double %3459, double %3470)
  %3472 = fmul double 2.000000e+00, %3471
  %3473 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3449, double %3472)
  %3474 = load ptr, ptr %145, align 8, !tbaa !5
  %3475 = load i32, ptr %156, align 4, !tbaa !9
  %3476 = sext i32 %3475 to i64
  %3477 = getelementptr inbounds double, ptr %3474, i64 %3476
  %3478 = load double, ptr %3477, align 8, !tbaa !23
  %3479 = load ptr, ptr %154, align 8, !tbaa !5
  %3480 = load i32, ptr %156, align 4, !tbaa !9
  %3481 = sext i32 %3480 to i64
  %3482 = getelementptr inbounds double, ptr %3479, i64 %3481
  %3483 = load double, ptr %3482, align 8, !tbaa !23
  %3484 = load ptr, ptr %144, align 8, !tbaa !5
  %3485 = load i32, ptr %156, align 4, !tbaa !9
  %3486 = sext i32 %3485 to i64
  %3487 = getelementptr inbounds double, ptr %3484, i64 %3486
  %3488 = load double, ptr %3487, align 8, !tbaa !23
  %3489 = load ptr, ptr %155, align 8, !tbaa !5
  %3490 = load i32, ptr %156, align 4, !tbaa !9
  %3491 = sext i32 %3490 to i64
  %3492 = getelementptr inbounds double, ptr %3489, i64 %3491
  %3493 = load double, ptr %3492, align 8, !tbaa !23
  %3494 = fmul double %3488, %3493
  %3495 = call double @llvm.fmuladd.f64(double %3478, double %3483, double %3494)
  %3496 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3495, double %3473)
  %3497 = load ptr, ptr %143, align 8, !tbaa !5
  %3498 = load i32, ptr %156, align 4, !tbaa !9
  %3499 = sext i32 %3498 to i64
  %3500 = getelementptr inbounds double, ptr %3497, i64 %3499
  store double %3496, ptr %3500, align 8, !tbaa !23
  br label %3501

3501:                                             ; preds = %3351
  %3502 = load i32, ptr %156, align 4, !tbaa !9
  %3503 = add nsw i32 %3502, 1
  store i32 %3503, ptr %156, align 4, !tbaa !9
  br label %3346, !llvm.loop !36

3504:                                             ; preds = %3350
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #7
  br label %3505

3505:                                             ; preds = %3504
  %3506 = load i32, ptr %141, align 4, !tbaa !9
  %3507 = add nsw i32 %3506, 1
  store i32 %3507, ptr %141, align 4, !tbaa !9
  br label %3269, !llvm.loop !37

3508:                                             ; preds = %3274
  br label %4150

3509:                                             ; preds = %3267
  call void @llvm.lifetime.start.p0(i64 32, ptr %157) #7
  %3510 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 8 dereferenceable(32) %3510)
  %3511 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef @.str.8)
          to label %3512 unwind label %3520

3512:                                             ; preds = %3509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #7
  br i1 %3511, label %3513, label %3866

3513:                                             ; preds = %3512
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #7
  store i32 0, ptr %158, align 4, !tbaa !9
  br label %3514

3514:                                             ; preds = %3862, %3513
  %3515 = load i32, ptr %158, align 4, !tbaa !9
  %3516 = load i32, ptr %7, align 4, !tbaa !9
  %3517 = sdiv i32 %3516, 6
  %3518 = icmp slt i32 %3515, %3517
  br i1 %3518, label %3524, label %3519

3519:                                             ; preds = %3514
  store i32 38, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #7
  br label %3865

3520:                                             ; preds = %3509
  %3521 = landingpad { ptr, i32 }
          cleanup
  %3522 = extractvalue { ptr, i32 } %3521, 0
  store ptr %3522, ptr %11, align 8
  %3523 = extractvalue { ptr, i32 } %3521, 1
  store i32 %3523, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #7
  br label %4157

3524:                                             ; preds = %3514
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #7
  %3525 = load i32, ptr %158, align 4, !tbaa !9
  %3526 = mul nsw i32 6, %3525
  %3527 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3526)
  store ptr %3527, ptr %159, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #7
  %3528 = load i32, ptr %158, align 4, !tbaa !9
  %3529 = mul nsw i32 6, %3528
  %3530 = add nsw i32 %3529, 1
  %3531 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3530)
  store ptr %3531, ptr %160, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #7
  %3532 = load i32, ptr %158, align 4, !tbaa !9
  %3533 = mul nsw i32 6, %3532
  %3534 = add nsw i32 %3533, 2
  %3535 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3534)
  store ptr %3535, ptr %161, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #7
  %3536 = load i32, ptr %158, align 4, !tbaa !9
  %3537 = mul nsw i32 6, %3536
  %3538 = add nsw i32 %3537, 3
  %3539 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3538)
  store ptr %3539, ptr %162, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #7
  %3540 = load i32, ptr %158, align 4, !tbaa !9
  %3541 = mul nsw i32 6, %3540
  %3542 = add nsw i32 %3541, 4
  %3543 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3542)
  store ptr %3543, ptr %163, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #7
  %3544 = load i32, ptr %158, align 4, !tbaa !9
  %3545 = mul nsw i32 6, %3544
  %3546 = add nsw i32 %3545, 5
  %3547 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3546)
  store ptr %3547, ptr %164, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #7
  %3548 = load ptr, ptr %6, align 8, !tbaa !5
  %3549 = load i32, ptr %158, align 4, !tbaa !9
  %3550 = mul nsw i32 13, %3549
  %3551 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3548, i32 noundef %3550)
  store ptr %3551, ptr %165, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #7
  %3552 = load ptr, ptr %6, align 8, !tbaa !5
  %3553 = load i32, ptr %158, align 4, !tbaa !9
  %3554 = mul nsw i32 13, %3553
  %3555 = add nsw i32 %3554, 1
  %3556 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3552, i32 noundef %3555)
  store ptr %3556, ptr %166, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #7
  %3557 = load ptr, ptr %6, align 8, !tbaa !5
  %3558 = load i32, ptr %158, align 4, !tbaa !9
  %3559 = mul nsw i32 13, %3558
  %3560 = add nsw i32 %3559, 2
  %3561 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3557, i32 noundef %3560)
  store ptr %3561, ptr %167, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #7
  %3562 = load ptr, ptr %6, align 8, !tbaa !5
  %3563 = load i32, ptr %158, align 4, !tbaa !9
  %3564 = mul nsw i32 13, %3563
  %3565 = add nsw i32 %3564, 3
  %3566 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3562, i32 noundef %3565)
  store ptr %3566, ptr %168, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #7
  %3567 = load ptr, ptr %6, align 8, !tbaa !5
  %3568 = load i32, ptr %158, align 4, !tbaa !9
  %3569 = mul nsw i32 13, %3568
  %3570 = add nsw i32 %3569, 4
  %3571 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3567, i32 noundef %3570)
  store ptr %3571, ptr %169, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #7
  %3572 = load ptr, ptr %6, align 8, !tbaa !5
  %3573 = load i32, ptr %158, align 4, !tbaa !9
  %3574 = mul nsw i32 13, %3573
  %3575 = add nsw i32 %3574, 5
  %3576 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3572, i32 noundef %3575)
  store ptr %3576, ptr %170, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #7
  %3577 = load ptr, ptr %6, align 8, !tbaa !5
  %3578 = load i32, ptr %158, align 4, !tbaa !9
  %3579 = mul nsw i32 13, %3578
  %3580 = add nsw i32 %3579, 6
  %3581 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3577, i32 noundef %3580)
  store ptr %3581, ptr %171, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #7
  %3582 = load ptr, ptr %6, align 8, !tbaa !5
  %3583 = load i32, ptr %158, align 4, !tbaa !9
  %3584 = mul nsw i32 13, %3583
  %3585 = add nsw i32 %3584, 7
  %3586 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3582, i32 noundef %3585)
  store ptr %3586, ptr %172, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #7
  %3587 = load ptr, ptr %6, align 8, !tbaa !5
  %3588 = load i32, ptr %158, align 4, !tbaa !9
  %3589 = mul nsw i32 13, %3588
  %3590 = add nsw i32 %3589, 8
  %3591 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3587, i32 noundef %3590)
  store ptr %3591, ptr %173, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #7
  %3592 = load ptr, ptr %6, align 8, !tbaa !5
  %3593 = load i32, ptr %158, align 4, !tbaa !9
  %3594 = mul nsw i32 13, %3593
  %3595 = add nsw i32 %3594, 9
  %3596 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3592, i32 noundef %3595)
  store ptr %3596, ptr %174, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #7
  %3597 = load ptr, ptr %6, align 8, !tbaa !5
  %3598 = load i32, ptr %158, align 4, !tbaa !9
  %3599 = mul nsw i32 13, %3598
  %3600 = add nsw i32 %3599, 10
  %3601 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3597, i32 noundef %3600)
  store ptr %3601, ptr %175, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #7
  %3602 = load ptr, ptr %6, align 8, !tbaa !5
  %3603 = load i32, ptr %158, align 4, !tbaa !9
  %3604 = mul nsw i32 13, %3603
  %3605 = add nsw i32 %3604, 11
  %3606 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3602, i32 noundef %3605)
  store ptr %3606, ptr %176, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #7
  %3607 = load ptr, ptr %6, align 8, !tbaa !5
  %3608 = load i32, ptr %158, align 4, !tbaa !9
  %3609 = mul nsw i32 13, %3608
  %3610 = add nsw i32 %3609, 12
  %3611 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3607, i32 noundef %3610)
  store ptr %3611, ptr %177, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #7
  store i32 0, ptr %178, align 4, !tbaa !9
  br label %3612

3612:                                             ; preds = %3858, %3524
  %3613 = load i32, ptr %178, align 4, !tbaa !9
  %3614 = load i32, ptr %9, align 4, !tbaa !9
  %3615 = icmp slt i32 %3613, %3614
  br i1 %3615, label %3617, label %3616

3616:                                             ; preds = %3612
  store i32 41, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #7
  br label %3861

3617:                                             ; preds = %3612
  %3618 = load ptr, ptr %168, align 8, !tbaa !5
  %3619 = load i32, ptr %178, align 4, !tbaa !9
  %3620 = sext i32 %3619 to i64
  %3621 = getelementptr inbounds double, ptr %3618, i64 %3620
  %3622 = load double, ptr %3621, align 8, !tbaa !23
  %3623 = load ptr, ptr %169, align 8, !tbaa !5
  %3624 = load i32, ptr %178, align 4, !tbaa !9
  %3625 = sext i32 %3624 to i64
  %3626 = getelementptr inbounds double, ptr %3623, i64 %3625
  %3627 = load double, ptr %3626, align 8, !tbaa !23
  %3628 = fmul double %3622, %3627
  %3629 = load ptr, ptr %165, align 8, !tbaa !5
  %3630 = load i32, ptr %178, align 4, !tbaa !9
  %3631 = sext i32 %3630 to i64
  %3632 = getelementptr inbounds double, ptr %3629, i64 %3631
  %3633 = load double, ptr %3632, align 8, !tbaa !23
  %3634 = load ptr, ptr %175, align 8, !tbaa !5
  %3635 = load i32, ptr %178, align 4, !tbaa !9
  %3636 = sext i32 %3635 to i64
  %3637 = getelementptr inbounds double, ptr %3634, i64 %3636
  %3638 = load double, ptr %3637, align 8, !tbaa !23
  %3639 = fmul double %3633, %3638
  %3640 = fmul double 2.000000e+00, %3639
  %3641 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3628, double %3640)
  %3642 = load ptr, ptr %165, align 8, !tbaa !5
  %3643 = load i32, ptr %178, align 4, !tbaa !9
  %3644 = sext i32 %3643 to i64
  %3645 = getelementptr inbounds double, ptr %3642, i64 %3644
  %3646 = load double, ptr %3645, align 8, !tbaa !23
  %3647 = load ptr, ptr %175, align 8, !tbaa !5
  %3648 = load i32, ptr %178, align 4, !tbaa !9
  %3649 = sext i32 %3648 to i64
  %3650 = getelementptr inbounds double, ptr %3647, i64 %3649
  %3651 = load double, ptr %3650, align 8, !tbaa !23
  %3652 = fmul double %3646, %3651
  %3653 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3652, double %3641)
  %3654 = load ptr, ptr %159, align 8, !tbaa !5
  %3655 = load i32, ptr %178, align 4, !tbaa !9
  %3656 = sext i32 %3655 to i64
  %3657 = getelementptr inbounds double, ptr %3654, i64 %3656
  store double %3653, ptr %3657, align 8, !tbaa !23
  %3658 = load ptr, ptr %168, align 8, !tbaa !5
  %3659 = load i32, ptr %178, align 4, !tbaa !9
  %3660 = sext i32 %3659 to i64
  %3661 = getelementptr inbounds double, ptr %3658, i64 %3660
  %3662 = load double, ptr %3661, align 8, !tbaa !23
  %3663 = load ptr, ptr %170, align 8, !tbaa !5
  %3664 = load i32, ptr %178, align 4, !tbaa !9
  %3665 = sext i32 %3664 to i64
  %3666 = getelementptr inbounds double, ptr %3663, i64 %3665
  %3667 = load double, ptr %3666, align 8, !tbaa !23
  %3668 = fmul double %3662, %3667
  %3669 = load ptr, ptr %166, align 8, !tbaa !5
  %3670 = load i32, ptr %178, align 4, !tbaa !9
  %3671 = sext i32 %3670 to i64
  %3672 = getelementptr inbounds double, ptr %3669, i64 %3671
  %3673 = load double, ptr %3672, align 8, !tbaa !23
  %3674 = load ptr, ptr %176, align 8, !tbaa !5
  %3675 = load i32, ptr %178, align 4, !tbaa !9
  %3676 = sext i32 %3675 to i64
  %3677 = getelementptr inbounds double, ptr %3674, i64 %3676
  %3678 = load double, ptr %3677, align 8, !tbaa !23
  %3679 = fmul double %3673, %3678
  %3680 = fmul double 2.000000e+00, %3679
  %3681 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3668, double %3680)
  %3682 = load ptr, ptr %166, align 8, !tbaa !5
  %3683 = load i32, ptr %178, align 4, !tbaa !9
  %3684 = sext i32 %3683 to i64
  %3685 = getelementptr inbounds double, ptr %3682, i64 %3684
  %3686 = load double, ptr %3685, align 8, !tbaa !23
  %3687 = load ptr, ptr %176, align 8, !tbaa !5
  %3688 = load i32, ptr %178, align 4, !tbaa !9
  %3689 = sext i32 %3688 to i64
  %3690 = getelementptr inbounds double, ptr %3687, i64 %3689
  %3691 = load double, ptr %3690, align 8, !tbaa !23
  %3692 = fmul double %3686, %3691
  %3693 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3692, double %3681)
  %3694 = load ptr, ptr %160, align 8, !tbaa !5
  %3695 = load i32, ptr %178, align 4, !tbaa !9
  %3696 = sext i32 %3695 to i64
  %3697 = getelementptr inbounds double, ptr %3694, i64 %3696
  store double %3693, ptr %3697, align 8, !tbaa !23
  %3698 = load ptr, ptr %168, align 8, !tbaa !5
  %3699 = load i32, ptr %178, align 4, !tbaa !9
  %3700 = sext i32 %3699 to i64
  %3701 = getelementptr inbounds double, ptr %3698, i64 %3700
  %3702 = load double, ptr %3701, align 8, !tbaa !23
  %3703 = load ptr, ptr %171, align 8, !tbaa !5
  %3704 = load i32, ptr %178, align 4, !tbaa !9
  %3705 = sext i32 %3704 to i64
  %3706 = getelementptr inbounds double, ptr %3703, i64 %3705
  %3707 = load double, ptr %3706, align 8, !tbaa !23
  %3708 = fmul double %3702, %3707
  %3709 = load ptr, ptr %167, align 8, !tbaa !5
  %3710 = load i32, ptr %178, align 4, !tbaa !9
  %3711 = sext i32 %3710 to i64
  %3712 = getelementptr inbounds double, ptr %3709, i64 %3711
  %3713 = load double, ptr %3712, align 8, !tbaa !23
  %3714 = load ptr, ptr %177, align 8, !tbaa !5
  %3715 = load i32, ptr %178, align 4, !tbaa !9
  %3716 = sext i32 %3715 to i64
  %3717 = getelementptr inbounds double, ptr %3714, i64 %3716
  %3718 = load double, ptr %3717, align 8, !tbaa !23
  %3719 = fmul double %3713, %3718
  %3720 = fmul double 2.000000e+00, %3719
  %3721 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3708, double %3720)
  %3722 = load ptr, ptr %167, align 8, !tbaa !5
  %3723 = load i32, ptr %178, align 4, !tbaa !9
  %3724 = sext i32 %3723 to i64
  %3725 = getelementptr inbounds double, ptr %3722, i64 %3724
  %3726 = load double, ptr %3725, align 8, !tbaa !23
  %3727 = load ptr, ptr %177, align 8, !tbaa !5
  %3728 = load i32, ptr %178, align 4, !tbaa !9
  %3729 = sext i32 %3728 to i64
  %3730 = getelementptr inbounds double, ptr %3727, i64 %3729
  %3731 = load double, ptr %3730, align 8, !tbaa !23
  %3732 = fmul double %3726, %3731
  %3733 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3732, double %3721)
  %3734 = load ptr, ptr %161, align 8, !tbaa !5
  %3735 = load i32, ptr %178, align 4, !tbaa !9
  %3736 = sext i32 %3735 to i64
  %3737 = getelementptr inbounds double, ptr %3734, i64 %3736
  store double %3733, ptr %3737, align 8, !tbaa !23
  %3738 = load ptr, ptr %168, align 8, !tbaa !5
  %3739 = load i32, ptr %178, align 4, !tbaa !9
  %3740 = sext i32 %3739 to i64
  %3741 = getelementptr inbounds double, ptr %3738, i64 %3740
  %3742 = load double, ptr %3741, align 8, !tbaa !23
  %3743 = load ptr, ptr %172, align 8, !tbaa !5
  %3744 = load i32, ptr %178, align 4, !tbaa !9
  %3745 = sext i32 %3744 to i64
  %3746 = getelementptr inbounds double, ptr %3743, i64 %3745
  %3747 = load double, ptr %3746, align 8, !tbaa !23
  %3748 = fmul double %3742, %3747
  %3749 = load ptr, ptr %165, align 8, !tbaa !5
  %3750 = load i32, ptr %178, align 4, !tbaa !9
  %3751 = sext i32 %3750 to i64
  %3752 = getelementptr inbounds double, ptr %3749, i64 %3751
  %3753 = load double, ptr %3752, align 8, !tbaa !23
  %3754 = load ptr, ptr %176, align 8, !tbaa !5
  %3755 = load i32, ptr %178, align 4, !tbaa !9
  %3756 = sext i32 %3755 to i64
  %3757 = getelementptr inbounds double, ptr %3754, i64 %3756
  %3758 = load double, ptr %3757, align 8, !tbaa !23
  %3759 = fmul double %3753, %3758
  %3760 = fmul double 2.000000e+00, %3759
  %3761 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3748, double %3760)
  %3762 = load ptr, ptr %166, align 8, !tbaa !5
  %3763 = load i32, ptr %178, align 4, !tbaa !9
  %3764 = sext i32 %3763 to i64
  %3765 = getelementptr inbounds double, ptr %3762, i64 %3764
  %3766 = load double, ptr %3765, align 8, !tbaa !23
  %3767 = load ptr, ptr %175, align 8, !tbaa !5
  %3768 = load i32, ptr %178, align 4, !tbaa !9
  %3769 = sext i32 %3768 to i64
  %3770 = getelementptr inbounds double, ptr %3767, i64 %3769
  %3771 = load double, ptr %3770, align 8, !tbaa !23
  %3772 = fmul double %3766, %3771
  %3773 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3772, double %3761)
  %3774 = load ptr, ptr %162, align 8, !tbaa !5
  %3775 = load i32, ptr %178, align 4, !tbaa !9
  %3776 = sext i32 %3775 to i64
  %3777 = getelementptr inbounds double, ptr %3774, i64 %3776
  store double %3773, ptr %3777, align 8, !tbaa !23
  %3778 = load ptr, ptr %168, align 8, !tbaa !5
  %3779 = load i32, ptr %178, align 4, !tbaa !9
  %3780 = sext i32 %3779 to i64
  %3781 = getelementptr inbounds double, ptr %3778, i64 %3780
  %3782 = load double, ptr %3781, align 8, !tbaa !23
  %3783 = load ptr, ptr %173, align 8, !tbaa !5
  %3784 = load i32, ptr %178, align 4, !tbaa !9
  %3785 = sext i32 %3784 to i64
  %3786 = getelementptr inbounds double, ptr %3783, i64 %3785
  %3787 = load double, ptr %3786, align 8, !tbaa !23
  %3788 = fmul double %3782, %3787
  %3789 = load ptr, ptr %165, align 8, !tbaa !5
  %3790 = load i32, ptr %178, align 4, !tbaa !9
  %3791 = sext i32 %3790 to i64
  %3792 = getelementptr inbounds double, ptr %3789, i64 %3791
  %3793 = load double, ptr %3792, align 8, !tbaa !23
  %3794 = load ptr, ptr %177, align 8, !tbaa !5
  %3795 = load i32, ptr %178, align 4, !tbaa !9
  %3796 = sext i32 %3795 to i64
  %3797 = getelementptr inbounds double, ptr %3794, i64 %3796
  %3798 = load double, ptr %3797, align 8, !tbaa !23
  %3799 = fmul double %3793, %3798
  %3800 = fmul double 2.000000e+00, %3799
  %3801 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3788, double %3800)
  %3802 = load ptr, ptr %167, align 8, !tbaa !5
  %3803 = load i32, ptr %178, align 4, !tbaa !9
  %3804 = sext i32 %3803 to i64
  %3805 = getelementptr inbounds double, ptr %3802, i64 %3804
  %3806 = load double, ptr %3805, align 8, !tbaa !23
  %3807 = load ptr, ptr %175, align 8, !tbaa !5
  %3808 = load i32, ptr %178, align 4, !tbaa !9
  %3809 = sext i32 %3808 to i64
  %3810 = getelementptr inbounds double, ptr %3807, i64 %3809
  %3811 = load double, ptr %3810, align 8, !tbaa !23
  %3812 = fmul double %3806, %3811
  %3813 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3812, double %3801)
  %3814 = load ptr, ptr %163, align 8, !tbaa !5
  %3815 = load i32, ptr %178, align 4, !tbaa !9
  %3816 = sext i32 %3815 to i64
  %3817 = getelementptr inbounds double, ptr %3814, i64 %3816
  store double %3813, ptr %3817, align 8, !tbaa !23
  %3818 = load ptr, ptr %168, align 8, !tbaa !5
  %3819 = load i32, ptr %178, align 4, !tbaa !9
  %3820 = sext i32 %3819 to i64
  %3821 = getelementptr inbounds double, ptr %3818, i64 %3820
  %3822 = load double, ptr %3821, align 8, !tbaa !23
  %3823 = load ptr, ptr %174, align 8, !tbaa !5
  %3824 = load i32, ptr %178, align 4, !tbaa !9
  %3825 = sext i32 %3824 to i64
  %3826 = getelementptr inbounds double, ptr %3823, i64 %3825
  %3827 = load double, ptr %3826, align 8, !tbaa !23
  %3828 = fmul double %3822, %3827
  %3829 = load ptr, ptr %166, align 8, !tbaa !5
  %3830 = load i32, ptr %178, align 4, !tbaa !9
  %3831 = sext i32 %3830 to i64
  %3832 = getelementptr inbounds double, ptr %3829, i64 %3831
  %3833 = load double, ptr %3832, align 8, !tbaa !23
  %3834 = load ptr, ptr %177, align 8, !tbaa !5
  %3835 = load i32, ptr %178, align 4, !tbaa !9
  %3836 = sext i32 %3835 to i64
  %3837 = getelementptr inbounds double, ptr %3834, i64 %3836
  %3838 = load double, ptr %3837, align 8, !tbaa !23
  %3839 = fmul double %3833, %3838
  %3840 = fmul double 2.000000e+00, %3839
  %3841 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3828, double %3840)
  %3842 = load ptr, ptr %167, align 8, !tbaa !5
  %3843 = load i32, ptr %178, align 4, !tbaa !9
  %3844 = sext i32 %3843 to i64
  %3845 = getelementptr inbounds double, ptr %3842, i64 %3844
  %3846 = load double, ptr %3845, align 8, !tbaa !23
  %3847 = load ptr, ptr %176, align 8, !tbaa !5
  %3848 = load i32, ptr %178, align 4, !tbaa !9
  %3849 = sext i32 %3848 to i64
  %3850 = getelementptr inbounds double, ptr %3847, i64 %3849
  %3851 = load double, ptr %3850, align 8, !tbaa !23
  %3852 = fmul double %3846, %3851
  %3853 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3852, double %3841)
  %3854 = load ptr, ptr %164, align 8, !tbaa !5
  %3855 = load i32, ptr %178, align 4, !tbaa !9
  %3856 = sext i32 %3855 to i64
  %3857 = getelementptr inbounds double, ptr %3854, i64 %3856
  store double %3853, ptr %3857, align 8, !tbaa !23
  br label %3858

3858:                                             ; preds = %3617
  %3859 = load i32, ptr %178, align 4, !tbaa !9
  %3860 = add nsw i32 %3859, 1
  store i32 %3860, ptr %178, align 4, !tbaa !9
  br label %3612, !llvm.loop !38

3861:                                             ; preds = %3616
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #7
  br label %3862

3862:                                             ; preds = %3861
  %3863 = load i32, ptr %158, align 4, !tbaa !9
  %3864 = add nsw i32 %3863, 1
  store i32 %3864, ptr %158, align 4, !tbaa !9
  br label %3514, !llvm.loop !39

3865:                                             ; preds = %3519
  br label %4149

3866:                                             ; preds = %3512
  call void @llvm.lifetime.start.p0(i64 32, ptr %179) #7
  %3867 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %179, ptr noundef nonnull align 8 dereferenceable(32) %3867)
  %3868 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef @.str.9)
          to label %3869 unwind label %3877

3869:                                             ; preds = %3866
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #7
  br i1 %3868, label %3870, label %3977

3870:                                             ; preds = %3869
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #7
  store i32 0, ptr %180, align 4, !tbaa !9
  br label %3871

3871:                                             ; preds = %3973, %3870
  %3872 = load i32, ptr %180, align 4, !tbaa !9
  %3873 = load i32, ptr %7, align 4, !tbaa !9
  %3874 = sdiv i32 %3873, 2
  %3875 = icmp slt i32 %3872, %3874
  br i1 %3875, label %3881, label %3876

3876:                                             ; preds = %3871
  store i32 44, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #7
  br label %3976

3877:                                             ; preds = %3866
  %3878 = landingpad { ptr, i32 }
          cleanup
  %3879 = extractvalue { ptr, i32 } %3878, 0
  store ptr %3879, ptr %11, align 8
  %3880 = extractvalue { ptr, i32 } %3878, 1
  store i32 %3880, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #7
  br label %4157

3881:                                             ; preds = %3871
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #7
  %3882 = load i32, ptr %180, align 4, !tbaa !9
  %3883 = mul nsw i32 2, %3882
  %3884 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3883)
  store ptr %3884, ptr %181, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #7
  %3885 = load i32, ptr %180, align 4, !tbaa !9
  %3886 = mul nsw i32 2, %3885
  %3887 = add nsw i32 %3886, 1
  %3888 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3887)
  store ptr %3888, ptr %182, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #7
  %3889 = load ptr, ptr %6, align 8, !tbaa !5
  %3890 = load i32, ptr %180, align 4, !tbaa !9
  %3891 = mul nsw i32 4, %3890
  %3892 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3889, i32 noundef %3891)
  store ptr %3892, ptr %183, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #7
  %3893 = load ptr, ptr %6, align 8, !tbaa !5
  %3894 = load i32, ptr %180, align 4, !tbaa !9
  %3895 = mul nsw i32 4, %3894
  %3896 = add nsw i32 %3895, 1
  %3897 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3893, i32 noundef %3896)
  store ptr %3897, ptr %184, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #7
  %3898 = load ptr, ptr %6, align 8, !tbaa !5
  %3899 = load i32, ptr %180, align 4, !tbaa !9
  %3900 = mul nsw i32 4, %3899
  %3901 = add nsw i32 %3900, 2
  %3902 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3898, i32 noundef %3901)
  store ptr %3902, ptr %185, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #7
  %3903 = load ptr, ptr %6, align 8, !tbaa !5
  %3904 = load i32, ptr %180, align 4, !tbaa !9
  %3905 = mul nsw i32 4, %3904
  %3906 = add nsw i32 %3905, 3
  %3907 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %3903, i32 noundef %3906)
  store ptr %3907, ptr %186, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #7
  store i32 0, ptr %187, align 4, !tbaa !9
  br label %3908

3908:                                             ; preds = %3969, %3881
  %3909 = load i32, ptr %187, align 4, !tbaa !9
  %3910 = load i32, ptr %9, align 4, !tbaa !9
  %3911 = icmp slt i32 %3909, %3910
  br i1 %3911, label %3913, label %3912

3912:                                             ; preds = %3908
  store i32 47, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #7
  br label %3972

3913:                                             ; preds = %3908
  %3914 = load ptr, ptr %183, align 8, !tbaa !5
  %3915 = load i32, ptr %187, align 4, !tbaa !9
  %3916 = sext i32 %3915 to i64
  %3917 = getelementptr inbounds double, ptr %3914, i64 %3916
  %3918 = load double, ptr %3917, align 8, !tbaa !23
  %3919 = load ptr, ptr %185, align 8, !tbaa !5
  %3920 = load i32, ptr %187, align 4, !tbaa !9
  %3921 = sext i32 %3920 to i64
  %3922 = getelementptr inbounds double, ptr %3919, i64 %3921
  %3923 = load double, ptr %3922, align 8, !tbaa !23
  %3924 = load ptr, ptr %184, align 8, !tbaa !5
  %3925 = load i32, ptr %187, align 4, !tbaa !9
  %3926 = sext i32 %3925 to i64
  %3927 = getelementptr inbounds double, ptr %3924, i64 %3926
  %3928 = load double, ptr %3927, align 8, !tbaa !23
  %3929 = load ptr, ptr %186, align 8, !tbaa !5
  %3930 = load i32, ptr %187, align 4, !tbaa !9
  %3931 = sext i32 %3930 to i64
  %3932 = getelementptr inbounds double, ptr %3929, i64 %3931
  %3933 = load double, ptr %3932, align 8, !tbaa !23
  %3934 = fmul double %3928, %3933
  %3935 = fneg double %3934
  %3936 = call double @llvm.fmuladd.f64(double %3918, double %3923, double %3935)
  %3937 = fmul double 2.000000e+00, %3936
  %3938 = load ptr, ptr %181, align 8, !tbaa !5
  %3939 = load i32, ptr %187, align 4, !tbaa !9
  %3940 = sext i32 %3939 to i64
  %3941 = getelementptr inbounds double, ptr %3938, i64 %3940
  store double %3937, ptr %3941, align 8, !tbaa !23
  %3942 = load ptr, ptr %183, align 8, !tbaa !5
  %3943 = load i32, ptr %187, align 4, !tbaa !9
  %3944 = sext i32 %3943 to i64
  %3945 = getelementptr inbounds double, ptr %3942, i64 %3944
  %3946 = load double, ptr %3945, align 8, !tbaa !23
  %3947 = load ptr, ptr %186, align 8, !tbaa !5
  %3948 = load i32, ptr %187, align 4, !tbaa !9
  %3949 = sext i32 %3948 to i64
  %3950 = getelementptr inbounds double, ptr %3947, i64 %3949
  %3951 = load double, ptr %3950, align 8, !tbaa !23
  %3952 = load ptr, ptr %184, align 8, !tbaa !5
  %3953 = load i32, ptr %187, align 4, !tbaa !9
  %3954 = sext i32 %3953 to i64
  %3955 = getelementptr inbounds double, ptr %3952, i64 %3954
  %3956 = load double, ptr %3955, align 8, !tbaa !23
  %3957 = load ptr, ptr %185, align 8, !tbaa !5
  %3958 = load i32, ptr %187, align 4, !tbaa !9
  %3959 = sext i32 %3958 to i64
  %3960 = getelementptr inbounds double, ptr %3957, i64 %3959
  %3961 = load double, ptr %3960, align 8, !tbaa !23
  %3962 = fmul double %3956, %3961
  %3963 = call double @llvm.fmuladd.f64(double %3946, double %3951, double %3962)
  %3964 = fmul double 2.000000e+00, %3963
  %3965 = load ptr, ptr %182, align 8, !tbaa !5
  %3966 = load i32, ptr %187, align 4, !tbaa !9
  %3967 = sext i32 %3966 to i64
  %3968 = getelementptr inbounds double, ptr %3965, i64 %3967
  store double %3964, ptr %3968, align 8, !tbaa !23
  br label %3969

3969:                                             ; preds = %3913
  %3970 = load i32, ptr %187, align 4, !tbaa !9
  %3971 = add nsw i32 %3970, 1
  store i32 %3971, ptr %187, align 4, !tbaa !9
  br label %3908, !llvm.loop !40

3972:                                             ; preds = %3912
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #7
  br label %3973

3973:                                             ; preds = %3972
  %3974 = load i32, ptr %180, align 4, !tbaa !9
  %3975 = add nsw i32 %3974, 1
  store i32 %3975, ptr %180, align 4, !tbaa !9
  br label %3871, !llvm.loop !41

3976:                                             ; preds = %3876
  br label %4148

3977:                                             ; preds = %3869
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #7
  %3978 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %188, ptr noundef nonnull align 8 dereferenceable(32) %3978)
  %3979 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.10)
          to label %3980 unwind label %3988

3980:                                             ; preds = %3977
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #7
  br i1 %3979, label %3981, label %4110

3981:                                             ; preds = %3980
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #7
  store i32 0, ptr %189, align 4, !tbaa !9
  br label %3982

3982:                                             ; preds = %4106, %3981
  %3983 = load i32, ptr %189, align 4, !tbaa !9
  %3984 = load i32, ptr %7, align 4, !tbaa !9
  %3985 = sdiv i32 %3984, 4
  %3986 = icmp slt i32 %3983, %3985
  br i1 %3986, label %3992, label %3987

3987:                                             ; preds = %3982
  store i32 50, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #7
  br label %4109

3988:                                             ; preds = %3977
  %3989 = landingpad { ptr, i32 }
          cleanup
  %3990 = extractvalue { ptr, i32 } %3989, 0
  store ptr %3990, ptr %11, align 8
  %3991 = extractvalue { ptr, i32 } %3989, 1
  store i32 %3991, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #7
  br label %4157

3992:                                             ; preds = %3982
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #7
  %3993 = load i32, ptr %189, align 4, !tbaa !9
  %3994 = mul nsw i32 4, %3993
  %3995 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3994)
  store ptr %3995, ptr %190, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #7
  %3996 = load i32, ptr %189, align 4, !tbaa !9
  %3997 = mul nsw i32 4, %3996
  %3998 = add nsw i32 %3997, 1
  %3999 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %3998)
  store ptr %3999, ptr %191, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #7
  %4000 = load i32, ptr %189, align 4, !tbaa !9
  %4001 = mul nsw i32 4, %4000
  %4002 = add nsw i32 %4001, 2
  %4003 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %4002)
  store ptr %4003, ptr %192, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #7
  %4004 = load i32, ptr %189, align 4, !tbaa !9
  %4005 = mul nsw i32 4, %4004
  %4006 = add nsw i32 %4005, 3
  %4007 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %207, i32 noundef %4006)
  store ptr %4007, ptr %193, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #7
  %4008 = load ptr, ptr %6, align 8, !tbaa !5
  %4009 = load i32, ptr %189, align 4, !tbaa !9
  %4010 = mul nsw i32 5, %4009
  %4011 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %4008, i32 noundef %4010)
  store ptr %4011, ptr %194, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #7
  %4012 = load ptr, ptr %6, align 8, !tbaa !5
  %4013 = load i32, ptr %189, align 4, !tbaa !9
  %4014 = mul nsw i32 5, %4013
  %4015 = add nsw i32 %4014, 1
  %4016 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %4012, i32 noundef %4015)
  store ptr %4016, ptr %195, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #7
  %4017 = load ptr, ptr %6, align 8, !tbaa !5
  %4018 = load i32, ptr %189, align 4, !tbaa !9
  %4019 = mul nsw i32 5, %4018
  %4020 = add nsw i32 %4019, 2
  %4021 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %4017, i32 noundef %4020)
  store ptr %4021, ptr %196, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #7
  %4022 = load ptr, ptr %6, align 8, !tbaa !5
  %4023 = load i32, ptr %189, align 4, !tbaa !9
  %4024 = mul nsw i32 5, %4023
  %4025 = add nsw i32 %4024, 3
  %4026 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %4022, i32 noundef %4025)
  store ptr %4026, ptr %197, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #7
  %4027 = load ptr, ptr %6, align 8, !tbaa !5
  %4028 = load i32, ptr %189, align 4, !tbaa !9
  %4029 = mul nsw i32 5, %4028
  %4030 = add nsw i32 %4029, 4
  %4031 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %4027, i32 noundef %4030)
  store ptr %4031, ptr %198, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #7
  store i32 0, ptr %199, align 4, !tbaa !9
  br label %4032

4032:                                             ; preds = %4102, %3992
  %4033 = load i32, ptr %199, align 4, !tbaa !9
  %4034 = load i32, ptr %9, align 4, !tbaa !9
  %4035 = icmp slt i32 %4033, %4034
  br i1 %4035, label %4037, label %4036

4036:                                             ; preds = %4032
  store i32 53, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #7
  br label %4105

4037:                                             ; preds = %4032
  %4038 = load ptr, ptr %194, align 8, !tbaa !5
  %4039 = load i32, ptr %199, align 4, !tbaa !9
  %4040 = sext i32 %4039 to i64
  %4041 = getelementptr inbounds double, ptr %4038, i64 %4040
  %4042 = load double, ptr %4041, align 8, !tbaa !23
  %4043 = load ptr, ptr %197, align 8, !tbaa !5
  %4044 = load i32, ptr %199, align 4, !tbaa !9
  %4045 = sext i32 %4044 to i64
  %4046 = getelementptr inbounds double, ptr %4043, i64 %4045
  %4047 = load double, ptr %4046, align 8, !tbaa !23
  %4048 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %4042, double noundef 0.000000e+00, double noundef %4047, double noundef 0.000000e+00)
  %4049 = fmul double 2.000000e+00, %4048
  %4050 = load ptr, ptr %190, align 8, !tbaa !5
  %4051 = load i32, ptr %199, align 4, !tbaa !9
  %4052 = sext i32 %4051 to i64
  %4053 = getelementptr inbounds double, ptr %4050, i64 %4052
  store double %4049, ptr %4053, align 8, !tbaa !23
  %4054 = load ptr, ptr %195, align 8, !tbaa !5
  %4055 = load i32, ptr %199, align 4, !tbaa !9
  %4056 = sext i32 %4055 to i64
  %4057 = getelementptr inbounds double, ptr %4054, i64 %4056
  %4058 = load double, ptr %4057, align 8, !tbaa !23
  %4059 = load ptr, ptr %197, align 8, !tbaa !5
  %4060 = load i32, ptr %199, align 4, !tbaa !9
  %4061 = sext i32 %4060 to i64
  %4062 = getelementptr inbounds double, ptr %4059, i64 %4061
  %4063 = load double, ptr %4062, align 8, !tbaa !23
  %4064 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %4058, double noundef 0.000000e+00, double noundef %4063, double noundef 0.000000e+00)
  %4065 = fmul double 2.000000e+00, %4064
  %4066 = load ptr, ptr %191, align 8, !tbaa !5
  %4067 = load i32, ptr %199, align 4, !tbaa !9
  %4068 = sext i32 %4067 to i64
  %4069 = getelementptr inbounds double, ptr %4066, i64 %4068
  store double %4065, ptr %4069, align 8, !tbaa !23
  %4070 = load ptr, ptr %196, align 8, !tbaa !5
  %4071 = load i32, ptr %199, align 4, !tbaa !9
  %4072 = sext i32 %4071 to i64
  %4073 = getelementptr inbounds double, ptr %4070, i64 %4072
  %4074 = load double, ptr %4073, align 8, !tbaa !23
  %4075 = load ptr, ptr %197, align 8, !tbaa !5
  %4076 = load i32, ptr %199, align 4, !tbaa !9
  %4077 = sext i32 %4076 to i64
  %4078 = getelementptr inbounds double, ptr %4075, i64 %4077
  %4079 = load double, ptr %4078, align 8, !tbaa !23
  %4080 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %4074, double noundef 0.000000e+00, double noundef %4079, double noundef 0.000000e+00)
  %4081 = fmul double 2.000000e+00, %4080
  %4082 = load ptr, ptr %192, align 8, !tbaa !5
  %4083 = load i32, ptr %199, align 4, !tbaa !9
  %4084 = sext i32 %4083 to i64
  %4085 = getelementptr inbounds double, ptr %4082, i64 %4084
  store double %4081, ptr %4085, align 8, !tbaa !23
  %4086 = load ptr, ptr %197, align 8, !tbaa !5
  %4087 = load i32, ptr %199, align 4, !tbaa !9
  %4088 = sext i32 %4087 to i64
  %4089 = getelementptr inbounds double, ptr %4086, i64 %4088
  %4090 = load double, ptr %4089, align 8, !tbaa !23
  %4091 = load ptr, ptr %198, align 8, !tbaa !5
  %4092 = load i32, ptr %199, align 4, !tbaa !9
  %4093 = sext i32 %4092 to i64
  %4094 = getelementptr inbounds double, ptr %4091, i64 %4093
  %4095 = load double, ptr %4094, align 8, !tbaa !23
  %4096 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %207, double noundef %4090, double noundef 0.000000e+00, double noundef %4095, double noundef 0.000000e+00)
  %4097 = fmul double 2.000000e+00, %4096
  %4098 = load ptr, ptr %193, align 8, !tbaa !5
  %4099 = load i32, ptr %199, align 4, !tbaa !9
  %4100 = sext i32 %4099 to i64
  %4101 = getelementptr inbounds double, ptr %4098, i64 %4100
  store double %4097, ptr %4101, align 8, !tbaa !23
  br label %4102

4102:                                             ; preds = %4037
  %4103 = load i32, ptr %199, align 4, !tbaa !9
  %4104 = add nsw i32 %4103, 1
  store i32 %4104, ptr %199, align 4, !tbaa !9
  br label %4032, !llvm.loop !42

4105:                                             ; preds = %4036
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #7
  br label %4106

4106:                                             ; preds = %4105
  %4107 = load i32, ptr %189, align 4, !tbaa !9
  %4108 = add nsw i32 %4107, 1
  store i32 %4108, ptr %189, align 4, !tbaa !9
  br label %3982, !llvm.loop !43

4109:                                             ; preds = %3987
  br label %4147

4110:                                             ; preds = %3980
  call void @llvm.lifetime.start.p0(i64 32, ptr %200) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %202) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %203)
          to label %4111 unwind label %4118

4111:                                             ; preds = %4110
  call void @llvm.lifetime.start.p0(i64 32, ptr %204) #7
  %4112 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %204, ptr noundef nonnull align 8 dereferenceable(32) %4112)
          to label %4113 unwind label %4122

4113:                                             ; preds = %4111
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %201, ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull align 8 dereferenceable(32) %204)
          to label %4114 unwind label %4126

4114:                                             ; preds = %4113
  call void @llvm.lifetime.start.p0(i64 32, ptr %205) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %206) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %4115 unwind label %4130

4115:                                             ; preds = %4114
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %200, ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef nonnull align 8 dereferenceable(32) %205)
          to label %4116 unwind label %4134

4116:                                             ; preds = %4115
  invoke void @_ZN6errors17assertMsgCriticalEbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(32) %200)
          to label %4117 unwind label %4138

4117:                                             ; preds = %4116
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #7
  br label %4147

4118:                                             ; preds = %4110
  %4119 = landingpad { ptr, i32 }
          cleanup
  %4120 = extractvalue { ptr, i32 } %4119, 0
  store ptr %4120, ptr %11, align 8
  %4121 = extractvalue { ptr, i32 } %4119, 1
  store i32 %4121, ptr %12, align 4
  br label %4146

4122:                                             ; preds = %4111
  %4123 = landingpad { ptr, i32 }
          cleanup
  %4124 = extractvalue { ptr, i32 } %4123, 0
  store ptr %4124, ptr %11, align 8
  %4125 = extractvalue { ptr, i32 } %4123, 1
  store i32 %4125, ptr %12, align 4
  br label %4145

4126:                                             ; preds = %4113
  %4127 = landingpad { ptr, i32 }
          cleanup
  %4128 = extractvalue { ptr, i32 } %4127, 0
  store ptr %4128, ptr %11, align 8
  %4129 = extractvalue { ptr, i32 } %4127, 1
  store i32 %4129, ptr %12, align 4
  br label %4144

4130:                                             ; preds = %4114
  %4131 = landingpad { ptr, i32 }
          cleanup
  %4132 = extractvalue { ptr, i32 } %4131, 0
  store ptr %4132, ptr %11, align 8
  %4133 = extractvalue { ptr, i32 } %4131, 1
  store i32 %4133, ptr %12, align 4
  br label %4143

4134:                                             ; preds = %4115
  %4135 = landingpad { ptr, i32 }
          cleanup
  %4136 = extractvalue { ptr, i32 } %4135, 0
  store ptr %4136, ptr %11, align 8
  %4137 = extractvalue { ptr, i32 } %4135, 1
  store i32 %4137, ptr %12, align 4
  br label %4142

4138:                                             ; preds = %4116
  %4139 = landingpad { ptr, i32 }
          cleanup
  %4140 = extractvalue { ptr, i32 } %4139, 0
  store ptr %4140, ptr %11, align 8
  %4141 = extractvalue { ptr, i32 } %4139, 1
  store i32 %4141, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #7
  br label %4142

4142:                                             ; preds = %4138, %4134
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %4143

4143:                                             ; preds = %4142, %4130
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #7
  br label %4144

4144:                                             ; preds = %4143, %4126
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %4145

4145:                                             ; preds = %4144, %4122
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #7
  br label %4146

4146:                                             ; preds = %4145, %4118
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #7
  br label %4157

4147:                                             ; preds = %4117, %4109
  br label %4148

4148:                                             ; preds = %4147, %3976
  br label %4149

4149:                                             ; preds = %4148, %3865
  br label %4150

4150:                                             ; preds = %4149, %3508
  br label %4151

4151:                                             ; preds = %4150, %3263
  br label %4152

4152:                                             ; preds = %4151, %2686
  br label %4153

4153:                                             ; preds = %4152, %2379
  br label %4154

4154:                                             ; preds = %4153, %1307
  br label %4155

4155:                                             ; preds = %4154, %919
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %4156

4156:                                             ; preds = %4155, %211
  ret void

4157:                                             ; preds = %4146, %3988, %3877, %3520, %3275, %2698, %2391, %1319, %931, %224
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %4158

4158:                                             ; preds = %4157
  %4159 = load ptr, ptr %11, align 8
  %4160 = load i32, ptr %12, align 4
  %4161 = insertvalue { ptr, i32 } poison, ptr %4159, 0
  %4162 = insertvalue { ptr, i32 } %4161, i32 %4160, 1
  resume { ptr, i32 } %4162
}

declare void @_ZN6errors17assertMsgCriticalEbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32)) #2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

declare void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

declare noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112), double noundef, double noundef, double noundef, double noundef) #5 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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, !13, i64 0}
!12 = !{!"_ZTS16CDensityGridQuad", !13, i64 0, !10, i64 4, !14, i64 8}
!13 = !{!"_ZTS7dengrid", !7, i64 0}
!14 = !{!"_ZTS18CDensityGridData2D", !15, i64 0, !19, i64 24, !19, i64 48, !19, i64 72, !10, i64 96}
!15 = !{!"_ZTSSt6vectorIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSSt6vectorIiSaIiEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!24, !24, i64 0}
!24 = !{!"double", !7, i64 0}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = distinct !{!27, !26}
!28 = distinct !{!28, !26}
!29 = distinct !{!29, !26}
!30 = distinct !{!30, !26}
!31 = distinct !{!31, !26}
!32 = distinct !{!32, !26}
!33 = distinct !{!33, !26}
!34 = distinct !{!34, !26}
!35 = distinct !{!35, !26}
!36 = distinct !{!36, !26}
!37 = distinct !{!37, !26}
!38 = distinct !{!38, !26}
!39 = distinct !{!39, !26}
!40 = distinct !{!40, !26}
!41 = distinct !{!41, !26}
!42 = distinct !{!42, !26}
!43 = distinct !{!43, !26}


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

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

@.str = external hidden unnamed_addr constant [18 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [25 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK16CDensityGridQuad21getNumberOfGridPointsEv(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16CDensityGridQuad17DensityProdForLDAERK12CDensityGridiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %0, ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(32) %3) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.5", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.5", align 1
  %21 = load i32, ptr %0, align 8, !tbaa !5
  %.not = icmp eq i32 %21, 0
  br i1 %.not, label %22, label %.loopexit

22:                                               ; preds = %4
  %23 = tail call noundef i32 @_ZNK16CDensityGridQuad21getNumberOfGridPointsEv(ptr noundef nonnull align 8 dereferenceable(112) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %24 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.2)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  br i1 %24, label %.preheader, label %190

.preheader:                                       ; preds = %22
  %25 = sdiv i32 %2, 12
  %26 = icmp sgt i32 %2, 11
  br i1 %26, label %.lr.ph1478, label %.loopexit

.lr.ph1478:                                       ; preds = %.preheader
  %27 = icmp sgt i32 %23, 0
  %wide.trip.count1534 = zext nneg i32 %23 to i64
  br label %28

28:                                               ; preds = %.lr.ph1478, %._crit_edge1476
  %.013901477 = phi i32 [ 0, %.lr.ph1478 ], [ %65, %._crit_edge1476 ]
  %29 = mul nuw nsw i32 %.013901477, 12
  %30 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %29)
  %31 = or disjoint i32 %29, 1
  %32 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %31)
  %33 = or disjoint i32 %29, 2
  %34 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %33)
  %35 = or disjoint i32 %29, 3
  %36 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %35)
  %37 = add nuw nsw i32 %29, 4
  %38 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %37)
  %39 = add nuw nsw i32 %29, 5
  %40 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %39)
  %41 = add nuw nsw i32 %29, 6
  %42 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %41)
  %43 = add nuw nsw i32 %29, 7
  %44 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %43)
  %45 = add nuw nsw i32 %29, 8
  %46 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %45)
  %47 = add nuw nsw i32 %29, 9
  %48 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %47)
  %49 = add nuw nsw i32 %29, 10
  %50 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %49)
  %51 = add nuw nsw i32 %29, 11
  %52 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %51)
  %53 = mul nuw nsw i32 %.013901477, 6
  %54 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %53)
  %55 = or disjoint i32 %53, 1
  %56 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %55)
  %57 = add nuw nsw i32 %53, 2
  %58 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %57)
  %59 = add nuw nsw i32 %53, 3
  %60 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %59)
  %61 = add nuw nsw i32 %53, 4
  %62 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %61)
  %63 = add nuw nsw i32 %53, 5
  %64 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %63)
  br i1 %27, label %.lr.ph1475, label %._crit_edge1476

._crit_edge1476:                                  ; preds = %.lr.ph1475, %28
  %65 = add nuw nsw i32 %.013901477, 1
  %exitcond1536.not = icmp eq i32 %65, %25
  br i1 %exitcond1536.not, label %.loopexit, label %28, !llvm.loop !21

.lr.ph1475:                                       ; preds = %28, %.lr.ph1475
  %indvars.iv1531 = phi i64 [ %indvars.iv.next1532, %.lr.ph1475 ], [ 0, %28 ]
  %66 = getelementptr inbounds double, ptr %54, i64 %indvars.iv1531
  %67 = load double, ptr %66, align 8, !tbaa !23
  %68 = getelementptr inbounds double, ptr %58, i64 %indvars.iv1531
  %69 = load double, ptr %68, align 8, !tbaa !23
  %70 = fmul double %69, %69
  %71 = call double @llvm.fmuladd.f64(double %67, double %67, double %70)
  %72 = getelementptr inbounds double, ptr %62, i64 %indvars.iv1531
  %73 = load double, ptr %72, align 8, !tbaa !23
  %74 = call double @llvm.fmuladd.f64(double %73, double %73, double %71)
  %75 = getelementptr inbounds double, ptr %56, i64 %indvars.iv1531
  %76 = load double, ptr %75, align 8, !tbaa !23
  %77 = getelementptr inbounds double, ptr %60, i64 %indvars.iv1531
  %78 = load double, ptr %77, align 8, !tbaa !23
  %79 = fmul double %78, %78
  %80 = call double @llvm.fmuladd.f64(double %76, double %76, double %79)
  %81 = getelementptr inbounds double, ptr %64, i64 %indvars.iv1531
  %82 = load double, ptr %81, align 8, !tbaa !23
  %83 = call double @llvm.fmuladd.f64(double %82, double %82, double %80)
  %84 = fmul double %83, -2.000000e+00
  %85 = call double @llvm.fmuladd.f64(double %74, double 2.000000e+00, double %84)
  %86 = fmul double %69, %78
  %87 = call double @llvm.fmuladd.f64(double %67, double %76, double %86)
  %88 = call double @llvm.fmuladd.f64(double %73, double %82, double %87)
  %89 = call double @llvm.fmuladd.f64(double %76, double %67, double %88)
  %90 = call double @llvm.fmuladd.f64(double %78, double %69, double %89)
  %91 = call double @llvm.fmuladd.f64(double %82, double %73, double %90)
  %92 = fmul double %91, 2.000000e+00
  %93 = fneg double %76
  %94 = fmul double %76, %93
  %95 = call double @llvm.fmuladd.f64(double %67, double %67, double %94)
  %96 = call double @llvm.fmuladd.f64(double %95, double 4.000000e+00, double %85)
  %97 = getelementptr inbounds double, ptr %30, i64 %indvars.iv1531
  store double %96, ptr %97, align 8, !tbaa !23
  %98 = load double, ptr %66, align 8, !tbaa !23
  %99 = load double, ptr %75, align 8, !tbaa !23
  %100 = fmul double %98, %99
  %101 = call double @llvm.fmuladd.f64(double %98, double %99, double %100)
  %102 = call double @llvm.fmuladd.f64(double %101, double 4.000000e+00, double %92)
  %103 = getelementptr inbounds double, ptr %32, i64 %indvars.iv1531
  store double %102, ptr %103, align 8, !tbaa !23
  %104 = load double, ptr %68, align 8, !tbaa !23
  %105 = load double, ptr %77, align 8, !tbaa !23
  %106 = fneg double %105
  %107 = fmul double %105, %106
  %108 = call double @llvm.fmuladd.f64(double %104, double %104, double %107)
  %109 = call double @llvm.fmuladd.f64(double %108, double 4.000000e+00, double %85)
  %110 = getelementptr inbounds double, ptr %34, i64 %indvars.iv1531
  store double %109, ptr %110, align 8, !tbaa !23
  %111 = load double, ptr %68, align 8, !tbaa !23
  %112 = load double, ptr %77, align 8, !tbaa !23
  %113 = fmul double %111, %112
  %114 = call double @llvm.fmuladd.f64(double %111, double %112, double %113)
  %115 = call double @llvm.fmuladd.f64(double %114, double 4.000000e+00, double %92)
  %116 = getelementptr inbounds double, ptr %36, i64 %indvars.iv1531
  store double %115, ptr %116, align 8, !tbaa !23
  %117 = load double, ptr %72, align 8, !tbaa !23
  %118 = load double, ptr %81, align 8, !tbaa !23
  %119 = fneg double %118
  %120 = fmul double %118, %119
  %121 = call double @llvm.fmuladd.f64(double %117, double %117, double %120)
  %122 = call double @llvm.fmuladd.f64(double %121, double 4.000000e+00, double %85)
  %123 = getelementptr inbounds double, ptr %38, i64 %indvars.iv1531
  store double %122, ptr %123, align 8, !tbaa !23
  %124 = load double, ptr %72, align 8, !tbaa !23
  %125 = load double, ptr %81, align 8, !tbaa !23
  %126 = fmul double %124, %125
  %127 = call double @llvm.fmuladd.f64(double %124, double %125, double %126)
  %128 = call double @llvm.fmuladd.f64(double %127, double 4.000000e+00, double %92)
  %129 = getelementptr inbounds double, ptr %40, i64 %indvars.iv1531
  store double %128, ptr %129, align 8, !tbaa !23
  %130 = load double, ptr %66, align 8, !tbaa !23
  %131 = load double, ptr %68, align 8, !tbaa !23
  %132 = load double, ptr %75, align 8, !tbaa !23
  %133 = load double, ptr %77, align 8, !tbaa !23
  %134 = fneg double %132
  %135 = fmul double %133, %134
  %136 = call double @llvm.fmuladd.f64(double %130, double %131, double %135)
  %137 = call double @llvm.fmuladd.f64(double %131, double %130, double %136)
  %138 = fneg double %133
  %139 = call double @llvm.fmuladd.f64(double %138, double %132, double %137)
  %140 = getelementptr inbounds double, ptr %42, i64 %indvars.iv1531
  store double %139, ptr %140, align 8, !tbaa !23
  %141 = load double, ptr %66, align 8, !tbaa !23
  %142 = load double, ptr %77, align 8, !tbaa !23
  %143 = load double, ptr %75, align 8, !tbaa !23
  %144 = load double, ptr %68, align 8, !tbaa !23
  %145 = fmul double %143, %144
  %146 = call double @llvm.fmuladd.f64(double %141, double %142, double %145)
  %147 = call double @llvm.fmuladd.f64(double %144, double %143, double %146)
  %148 = call double @llvm.fmuladd.f64(double %142, double %141, double %147)
  %149 = getelementptr inbounds double, ptr %44, i64 %indvars.iv1531
  store double %148, ptr %149, align 8, !tbaa !23
  %150 = load double, ptr %66, align 8, !tbaa !23
  %151 = load double, ptr %72, align 8, !tbaa !23
  %152 = load double, ptr %75, align 8, !tbaa !23
  %153 = load double, ptr %81, align 8, !tbaa !23
  %154 = fneg double %152
  %155 = fmul double %153, %154
  %156 = call double @llvm.fmuladd.f64(double %150, double %151, double %155)
  %157 = call double @llvm.fmuladd.f64(double %151, double %150, double %156)
  %158 = fneg double %153
  %159 = call double @llvm.fmuladd.f64(double %158, double %152, double %157)
  %160 = getelementptr inbounds double, ptr %46, i64 %indvars.iv1531
  store double %159, ptr %160, align 8, !tbaa !23
  %161 = load double, ptr %66, align 8, !tbaa !23
  %162 = load double, ptr %81, align 8, !tbaa !23
  %163 = load double, ptr %75, align 8, !tbaa !23
  %164 = load double, ptr %72, align 8, !tbaa !23
  %165 = fmul double %163, %164
  %166 = call double @llvm.fmuladd.f64(double %161, double %162, double %165)
  %167 = call double @llvm.fmuladd.f64(double %164, double %163, double %166)
  %168 = call double @llvm.fmuladd.f64(double %162, double %161, double %167)
  %169 = getelementptr inbounds double, ptr %48, i64 %indvars.iv1531
  store double %168, ptr %169, align 8, !tbaa !23
  %170 = load double, ptr %68, align 8, !tbaa !23
  %171 = load double, ptr %72, align 8, !tbaa !23
  %172 = load double, ptr %77, align 8, !tbaa !23
  %173 = load double, ptr %81, align 8, !tbaa !23
  %174 = fneg double %172
  %175 = fmul double %173, %174
  %176 = call double @llvm.fmuladd.f64(double %170, double %171, double %175)
  %177 = call double @llvm.fmuladd.f64(double %171, double %170, double %176)
  %178 = fneg double %173
  %179 = call double @llvm.fmuladd.f64(double %178, double %172, double %177)
  %180 = getelementptr inbounds double, ptr %50, i64 %indvars.iv1531
  store double %179, ptr %180, align 8, !tbaa !23
  %181 = load double, ptr %68, align 8, !tbaa !23
  %182 = load double, ptr %81, align 8, !tbaa !23
  %183 = load double, ptr %77, align 8, !tbaa !23
  %184 = load double, ptr %72, align 8, !tbaa !23
  %185 = fmul double %183, %184
  %186 = call double @llvm.fmuladd.f64(double %181, double %182, double %185)
  %187 = call double @llvm.fmuladd.f64(double %184, double %183, double %186)
  %188 = call double @llvm.fmuladd.f64(double %182, double %181, double %187)
  %189 = getelementptr inbounds double, ptr %52, i64 %indvars.iv1531
  store double %188, ptr %189, align 8, !tbaa !23
  %indvars.iv.next1532 = add nuw nsw i64 %indvars.iv1531, 1
  %exitcond1535.not = icmp eq i64 %indvars.iv.next1532, %wide.trip.count1534
  br i1 %exitcond1535.not, label %._crit_edge1476, label %.lr.ph1475, !llvm.loop !25

190:                                              ; preds = %22
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %191 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.3)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br i1 %191, label %.preheader1412, label %435

.preheader1412:                                   ; preds = %190
  %192 = sdiv i32 %2, 6
  %193 = icmp sgt i32 %2, 5
  br i1 %193, label %.lr.ph1472, label %.loopexit

.lr.ph1472:                                       ; preds = %.preheader1412
  %194 = icmp sgt i32 %23, 0
  %wide.trip.count1528 = zext i32 %23 to i64
  %195 = shl nuw nsw i64 %wide.trip.count1528, 3
  %min.iters.check2994 = icmp ult i32 %23, 8
  %n.vec2997 = and i64 %wide.trip.count1528, 2147483646
  %cmp.n3024 = icmp eq i64 %n.vec2997, %wide.trip.count1528
  br label %196

196:                                              ; preds = %.lr.ph1472, %._crit_edge1470
  %.013921471 = phi i32 [ 0, %.lr.ph1472 ], [ %362, %._crit_edge1470 ]
  %197 = mul nuw nsw i32 %.013921471, 6
  %198 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %197)
  %199 = or disjoint i32 %197, 1
  %200 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %199)
  %201 = add nuw nsw i32 %197, 2
  %202 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %201)
  %203 = add nuw nsw i32 %197, 3
  %204 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %203)
  %205 = add nuw nsw i32 %197, 4
  %206 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %205)
  %207 = add nuw nsw i32 %197, 5
  %208 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %207)
  %209 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %197)
  %210 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %199)
  %211 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %201)
  %212 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %203)
  %213 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %205)
  %214 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %207)
  br i1 %194, label %.lr.ph1469.preheader, label %._crit_edge1470

.lr.ph1469.preheader:                             ; preds = %196
  br i1 %min.iters.check2994, label %.lr.ph1469.preheader3071, label %vector.memcheck2776

.lr.ph1469.preheader3071:                         ; preds = %middle.block2992, %vector.memcheck2776, %.lr.ph1469.preheader
  %indvars.iv1525.ph = phi i64 [ 0, %vector.memcheck2776 ], [ 0, %.lr.ph1469.preheader ], [ %n.vec2997, %middle.block2992 ]
  br label %.lr.ph1469

vector.memcheck2776:                              ; preds = %.lr.ph1469.preheader
  %scevgep2777 = getelementptr i8, ptr %198, i64 %195
  %scevgep2778 = getelementptr i8, ptr %200, i64 %195
  %scevgep2779 = getelementptr i8, ptr %202, i64 %195
  %scevgep2780 = getelementptr i8, ptr %204, i64 %195
  %scevgep2781 = getelementptr i8, ptr %206, i64 %195
  %scevgep2782 = getelementptr i8, ptr %208, i64 %195
  %scevgep2783 = getelementptr i8, ptr %209, i64 %195
  %scevgep2784 = getelementptr i8, ptr %211, i64 %195
  %scevgep2785 = getelementptr i8, ptr %213, i64 %195
  %scevgep2786 = getelementptr i8, ptr %210, i64 %195
  %scevgep2787 = getelementptr i8, ptr %212, i64 %195
  %scevgep2788 = getelementptr i8, ptr %214, i64 %195
  %215 = insertelement <8 x ptr> poison, ptr %198, i64 0
  %216 = shufflevector <8 x ptr> %215, <8 x ptr> poison, <8 x i32> zeroinitializer
  %217 = insertelement <8 x ptr> poison, ptr %scevgep2778, i64 0
  %218 = insertelement <8 x ptr> %217, ptr %scevgep2779, i64 1
  %219 = insertelement <8 x ptr> %218, ptr %scevgep2780, i64 2
  %220 = insertelement <8 x ptr> %219, ptr %scevgep2781, i64 3
  %221 = insertelement <8 x ptr> %220, ptr %scevgep2782, i64 4
  %222 = insertelement <8 x ptr> %221, ptr %scevgep2783, i64 5
  %223 = insertelement <8 x ptr> %222, ptr %scevgep2784, i64 6
  %224 = insertelement <8 x ptr> %223, ptr %scevgep2785, i64 7
  %225 = icmp ult <8 x ptr> %216, %224
  %226 = insertelement <8 x ptr> poison, ptr %200, i64 0
  %227 = insertelement <8 x ptr> %226, ptr %202, i64 1
  %228 = insertelement <8 x ptr> %227, ptr %204, i64 2
  %229 = insertelement <8 x ptr> %228, ptr %206, i64 3
  %230 = insertelement <8 x ptr> %229, ptr %208, i64 4
  %231 = insertelement <8 x ptr> %230, ptr %209, i64 5
  %232 = insertelement <8 x ptr> %231, ptr %211, i64 6
  %233 = insertelement <8 x ptr> %232, ptr %213, i64 7
  %234 = insertelement <8 x ptr> poison, ptr %scevgep2777, i64 0
  %235 = shufflevector <8 x ptr> %234, <8 x ptr> poison, <8 x i32> zeroinitializer
  %236 = icmp ult <8 x ptr> %233, %235
  %237 = and <8 x i1> %225, %236
  %238 = insertelement <8 x ptr> %215, ptr %200, i64 1
  %239 = shufflevector <8 x ptr> %238, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1>
  %240 = insertelement <8 x ptr> poison, ptr %scevgep2786, i64 0
  %241 = insertelement <8 x ptr> %240, ptr %scevgep2787, i64 1
  %242 = insertelement <8 x ptr> %241, ptr %scevgep2788, i64 2
  %243 = insertelement <8 x ptr> %242, ptr %scevgep2779, i64 3
  %244 = insertelement <8 x ptr> %243, ptr %scevgep2780, i64 4
  %245 = insertelement <8 x ptr> %244, ptr %scevgep2781, i64 5
  %246 = insertelement <8 x ptr> %245, ptr %scevgep2782, i64 6
  %247 = insertelement <8 x ptr> %246, ptr %scevgep2783, i64 7
  %248 = icmp ult <8 x ptr> %239, %247
  %249 = insertelement <8 x ptr> poison, ptr %210, i64 0
  %250 = insertelement <8 x ptr> %249, ptr %212, i64 1
  %251 = insertelement <8 x ptr> %250, ptr %214, i64 2
  %252 = insertelement <8 x ptr> %251, ptr %202, i64 3
  %253 = insertelement <8 x ptr> %252, ptr %204, i64 4
  %254 = insertelement <8 x ptr> %253, ptr %206, i64 5
  %255 = insertelement <8 x ptr> %254, ptr %208, i64 6
  %256 = insertelement <8 x ptr> %255, ptr %209, i64 7
  %257 = insertelement <8 x ptr> %234, ptr %scevgep2778, i64 1
  %258 = shufflevector <8 x ptr> %257, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1>
  %259 = icmp ult <8 x ptr> %256, %258
  %260 = and <8 x i1> %248, %259
  %261 = shufflevector <8 x ptr> %227, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1>
  %262 = insertelement <8 x ptr> poison, ptr %scevgep2784, i64 0
  %263 = insertelement <8 x ptr> %262, ptr %scevgep2785, i64 1
  %264 = insertelement <8 x ptr> %263, ptr %scevgep2786, i64 2
  %265 = insertelement <8 x ptr> %264, ptr %scevgep2787, i64 3
  %266 = insertelement <8 x ptr> %265, ptr %scevgep2788, i64 4
  %267 = insertelement <8 x ptr> %266, ptr %scevgep2780, i64 5
  %268 = insertelement <8 x ptr> %267, ptr %scevgep2781, i64 6
  %269 = insertelement <8 x ptr> %268, ptr %scevgep2782, i64 7
  %270 = icmp ult <8 x ptr> %261, %269
  %271 = insertelement <8 x ptr> poison, ptr %211, i64 0
  %272 = insertelement <8 x ptr> %271, ptr %213, i64 1
  %273 = insertelement <8 x ptr> %272, ptr %210, i64 2
  %274 = insertelement <8 x ptr> %273, ptr %212, i64 3
  %275 = insertelement <8 x ptr> %274, ptr %214, i64 4
  %276 = insertelement <8 x ptr> %275, ptr %204, i64 5
  %277 = insertelement <8 x ptr> %276, ptr %206, i64 6
  %278 = insertelement <8 x ptr> %277, ptr %208, i64 7
  %279 = shufflevector <8 x ptr> %218, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1>
  %280 = icmp ult <8 x ptr> %278, %279
  %281 = and <8 x i1> %270, %280
  %282 = insertelement <8 x ptr> poison, ptr %202, i64 0
  %283 = insertelement <8 x ptr> %282, ptr %204, i64 1
  %284 = shufflevector <8 x ptr> %283, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1>
  %285 = insertelement <8 x ptr> poison, ptr %scevgep2783, i64 0
  %286 = insertelement <8 x ptr> %285, ptr %scevgep2784, i64 1
  %287 = insertelement <8 x ptr> %286, ptr %scevgep2785, i64 2
  %288 = insertelement <8 x ptr> %287, ptr %scevgep2786, i64 3
  %289 = insertelement <8 x ptr> %288, ptr %scevgep2787, i64 4
  %290 = insertelement <8 x ptr> %289, ptr %scevgep2788, i64 5
  %291 = insertelement <8 x ptr> %290, ptr %scevgep2781, i64 6
  %292 = insertelement <8 x ptr> %291, ptr %scevgep2782, i64 7
  %293 = icmp ult <8 x ptr> %284, %292
  %294 = insertelement <8 x ptr> poison, ptr %209, i64 0
  %295 = insertelement <8 x ptr> %294, ptr %211, i64 1
  %296 = insertelement <8 x ptr> %295, ptr %213, i64 2
  %297 = insertelement <8 x ptr> %296, ptr %210, i64 3
  %298 = insertelement <8 x ptr> %297, ptr %212, i64 4
  %299 = insertelement <8 x ptr> %298, ptr %214, i64 5
  %300 = insertelement <8 x ptr> %299, ptr %206, i64 6
  %301 = insertelement <8 x ptr> %300, ptr %208, i64 7
  %302 = insertelement <8 x ptr> poison, ptr %scevgep2779, i64 0
  %303 = insertelement <8 x ptr> %302, ptr %scevgep2780, i64 1
  %304 = shufflevector <8 x ptr> %303, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1>
  %305 = icmp ult <8 x ptr> %301, %304
  %306 = and <8 x i1> %293, %305
  %bound02916 = icmp ult ptr %204, %scevgep2783
  %bound12917 = icmp ult ptr %209, %scevgep2780
  %found.conflict2918 = and i1 %bound02916, %bound12917
  %bound02920 = icmp ult ptr %204, %scevgep2784
  %bound12921 = icmp ult ptr %211, %scevgep2780
  %found.conflict2922 = and i1 %bound02920, %bound12921
  %bound02924 = icmp ult ptr %204, %scevgep2785
  %bound12925 = icmp ult ptr %213, %scevgep2780
  %found.conflict2926 = and i1 %bound02924, %bound12925
  %bound02928 = icmp ult ptr %204, %scevgep2786
  %bound12929 = icmp ult ptr %210, %scevgep2780
  %found.conflict2930 = and i1 %bound02928, %bound12929
  %bound02932 = icmp ult ptr %204, %scevgep2787
  %bound12933 = icmp ult ptr %212, %scevgep2780
  %found.conflict2934 = and i1 %bound02932, %bound12933
  %bound02936 = icmp ult ptr %204, %scevgep2788
  %bound12937 = icmp ult ptr %214, %scevgep2780
  %found.conflict2938 = and i1 %bound02936, %bound12937
  %bound02940 = icmp ult ptr %206, %scevgep2782
  %bound12941 = icmp ult ptr %208, %scevgep2781
  %found.conflict2942 = and i1 %bound02940, %bound12941
  %bound02944 = icmp ult ptr %206, %scevgep2783
  %bound12945 = icmp ult ptr %209, %scevgep2781
  %found.conflict2946 = and i1 %bound02944, %bound12945
  %bound02948 = icmp ult ptr %206, %scevgep2784
  %bound12949 = icmp ult ptr %211, %scevgep2781
  %found.conflict2950 = and i1 %bound02948, %bound12949
  %bound02952 = icmp ult ptr %206, %scevgep2785
  %bound12953 = icmp ult ptr %213, %scevgep2781
  %found.conflict2954 = and i1 %bound02952, %bound12953
  %bound02956 = icmp ult ptr %206, %scevgep2786
  %bound12957 = icmp ult ptr %210, %scevgep2781
  %found.conflict2958 = and i1 %bound02956, %bound12957
  %bound02960 = icmp ult ptr %206, %scevgep2787
  %bound12961 = icmp ult ptr %212, %scevgep2781
  %found.conflict2962 = and i1 %bound02960, %bound12961
  %bound02964 = icmp ult ptr %206, %scevgep2788
  %bound12965 = icmp ult ptr %214, %scevgep2781
  %found.conflict2966 = and i1 %bound02964, %bound12965
  %bound02968 = icmp ult ptr %208, %scevgep2783
  %bound12969 = icmp ult ptr %209, %scevgep2782
  %found.conflict2970 = and i1 %bound02968, %bound12969
  %bound02972 = icmp ult ptr %208, %scevgep2784
  %bound12973 = icmp ult ptr %211, %scevgep2782
  %found.conflict2974 = and i1 %bound02972, %bound12973
  %bound02976 = icmp ult ptr %208, %scevgep2785
  %bound12977 = icmp ult ptr %213, %scevgep2782
  %found.conflict2978 = and i1 %bound02976, %bound12977
  %bound02980 = icmp ult ptr %208, %scevgep2786
  %bound12981 = icmp ult ptr %210, %scevgep2782
  %found.conflict2982 = and i1 %bound02980, %bound12981
  %bound02984 = icmp ult ptr %208, %scevgep2787
  %bound12985 = icmp ult ptr %212, %scevgep2782
  %found.conflict2986 = and i1 %bound02984, %bound12985
  %bound02988 = icmp ult ptr %208, %scevgep2788
  %bound12989 = icmp ult ptr %214, %scevgep2782
  %found.conflict2990 = and i1 %bound02988, %bound12989
  %307 = or <8 x i1> %237, %260
  %308 = or <8 x i1> %307, %281
  %309 = or <8 x i1> %308, %306
  %310 = bitcast <8 x i1> %309 to i8
  %op.rdx3026 = icmp ne i8 %310, 0
  %op.rdx3027 = or i1 %op.rdx3026, %found.conflict2918
  %op.rdx3028 = or i1 %found.conflict2922, %found.conflict2926
  %op.rdx3029 = or i1 %found.conflict2930, %found.conflict2934
  %op.rdx3030 = or i1 %found.conflict2938, %found.conflict2942
  %op.rdx3031 = or i1 %found.conflict2946, %found.conflict2950
  %op.rdx3032 = or i1 %found.conflict2954, %found.conflict2958
  %op.rdx3033 = or i1 %found.conflict2962, %found.conflict2966
  %op.rdx3034 = or i1 %found.conflict2970, %found.conflict2974
  %op.rdx3035 = or i1 %found.conflict2978, %found.conflict2982
  %op.rdx3036 = or i1 %found.conflict2986, %found.conflict2990
  %op.rdx3037 = or i1 %op.rdx3027, %op.rdx3028
  %op.rdx3038 = or i1 %op.rdx3029, %op.rdx3030
  %op.rdx3039 = or i1 %op.rdx3031, %op.rdx3032
  %op.rdx3040 = or i1 %op.rdx3033, %op.rdx3034
  %op.rdx3041 = or i1 %op.rdx3035, %op.rdx3036
  %op.rdx3042 = or i1 %op.rdx3037, %op.rdx3038
  %op.rdx3043 = or i1 %op.rdx3039, %op.rdx3040
  %op.rdx3044 = or i1 %op.rdx3042, %op.rdx3043
  %op.rdx3045 = or i1 %op.rdx3044, %op.rdx3041
  br i1 %op.rdx3045, label %.lr.ph1469.preheader3071, label %vector.body2999

vector.body2999:                                  ; preds = %vector.memcheck2776, %vector.body2999
  %index3000 = phi i64 [ %index.next3023, %vector.body2999 ], [ 0, %vector.memcheck2776 ]
  %311 = getelementptr inbounds double, ptr %209, i64 %index3000
  %wide.load3001 = load <2 x double>, ptr %311, align 8, !tbaa !23, !alias.scope !26
  %312 = getelementptr inbounds double, ptr %211, i64 %index3000
  %wide.load3002 = load <2 x double>, ptr %312, align 8, !tbaa !23, !alias.scope !29
  %313 = fmul <2 x double> %wide.load3002, %wide.load3002
  %314 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3001, <2 x double> %wide.load3001, <2 x double> %313)
  %315 = getelementptr inbounds double, ptr %213, i64 %index3000
  %wide.load3003 = load <2 x double>, ptr %315, align 8, !tbaa !23, !alias.scope !31
  %316 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3003, <2 x double> %wide.load3003, <2 x double> %314)
  %317 = getelementptr inbounds double, ptr %210, i64 %index3000
  %wide.load3004 = load <2 x double>, ptr %317, align 8, !tbaa !23, !alias.scope !33
  %318 = getelementptr inbounds double, ptr %212, i64 %index3000
  %wide.load3005 = load <2 x double>, ptr %318, align 8, !tbaa !23, !alias.scope !35
  %319 = fmul <2 x double> %wide.load3005, %wide.load3005
  %320 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3004, <2 x double> %wide.load3004, <2 x double> %319)
  %321 = getelementptr inbounds double, ptr %214, i64 %index3000
  %wide.load3006 = load <2 x double>, ptr %321, align 8, !tbaa !23, !alias.scope !37
  %322 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3006, <2 x double> %wide.load3006, <2 x double> %320)
  %323 = fmul <2 x double> %322, <double -2.000000e+00, double -2.000000e+00>
  %324 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %316, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %323)
  %325 = fneg <2 x double> %wide.load3004
  %326 = fmul <2 x double> %wide.load3004, %325
  %327 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3001, <2 x double> %wide.load3001, <2 x double> %326)
  %328 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %327, <2 x double> <double 4.000000e+00, double 4.000000e+00>, <2 x double> %324)
  %329 = getelementptr inbounds double, ptr %198, i64 %index3000
  store <2 x double> %328, ptr %329, align 8, !tbaa !23, !alias.scope !39, !noalias !41
  %wide.load3007 = load <2 x double>, ptr %312, align 8, !tbaa !23, !alias.scope !29
  %wide.load3008 = load <2 x double>, ptr %318, align 8, !tbaa !23, !alias.scope !35
  %330 = fneg <2 x double> %wide.load3008
  %331 = fmul <2 x double> %wide.load3008, %330
  %332 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3007, <2 x double> %wide.load3007, <2 x double> %331)
  %333 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %332, <2 x double> <double 4.000000e+00, double 4.000000e+00>, <2 x double> %324)
  %334 = getelementptr inbounds double, ptr %200, i64 %index3000
  store <2 x double> %333, ptr %334, align 8, !tbaa !23, !alias.scope !47, !noalias !48
  %wide.load3009 = load <2 x double>, ptr %315, align 8, !tbaa !23, !alias.scope !31
  %wide.load3010 = load <2 x double>, ptr %321, align 8, !tbaa !23, !alias.scope !37
  %335 = fneg <2 x double> %wide.load3010
  %336 = fmul <2 x double> %wide.load3010, %335
  %337 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3009, <2 x double> %wide.load3009, <2 x double> %336)
  %338 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %337, <2 x double> <double 4.000000e+00, double 4.000000e+00>, <2 x double> %324)
  %339 = getelementptr inbounds double, ptr %202, i64 %index3000
  store <2 x double> %338, ptr %339, align 8, !tbaa !23, !alias.scope !49, !noalias !50
  %wide.load3011 = load <2 x double>, ptr %311, align 8, !tbaa !23, !alias.scope !26
  %wide.load3012 = load <2 x double>, ptr %312, align 8, !tbaa !23, !alias.scope !29
  %wide.load3013 = load <2 x double>, ptr %317, align 8, !tbaa !23, !alias.scope !33
  %wide.load3014 = load <2 x double>, ptr %318, align 8, !tbaa !23, !alias.scope !35
  %340 = fneg <2 x double> %wide.load3013
  %341 = fmul <2 x double> %wide.load3014, %340
  %342 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3011, <2 x double> %wide.load3012, <2 x double> %341)
  %343 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3012, <2 x double> %wide.load3011, <2 x double> %342)
  %344 = fneg <2 x double> %wide.load3014
  %345 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %344, <2 x double> %wide.load3013, <2 x double> %343)
  %346 = getelementptr inbounds double, ptr %204, i64 %index3000
  store <2 x double> %345, ptr %346, align 8, !tbaa !23, !alias.scope !51, !noalias !52
  %wide.load3015 = load <2 x double>, ptr %311, align 8, !tbaa !23, !alias.scope !26
  %wide.load3016 = load <2 x double>, ptr %315, align 8, !tbaa !23, !alias.scope !31
  %wide.load3017 = load <2 x double>, ptr %317, align 8, !tbaa !23, !alias.scope !33
  %wide.load3018 = load <2 x double>, ptr %321, align 8, !tbaa !23, !alias.scope !37
  %347 = fneg <2 x double> %wide.load3017
  %348 = fmul <2 x double> %wide.load3018, %347
  %349 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3015, <2 x double> %wide.load3016, <2 x double> %348)
  %350 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3016, <2 x double> %wide.load3015, <2 x double> %349)
  %351 = fneg <2 x double> %wide.load3018
  %352 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %351, <2 x double> %wide.load3017, <2 x double> %350)
  %353 = getelementptr inbounds double, ptr %206, i64 %index3000
  store <2 x double> %352, ptr %353, align 8, !tbaa !23, !alias.scope !53, !noalias !54
  %wide.load3019 = load <2 x double>, ptr %312, align 8, !tbaa !23, !alias.scope !29
  %wide.load3020 = load <2 x double>, ptr %315, align 8, !tbaa !23, !alias.scope !31
  %wide.load3021 = load <2 x double>, ptr %318, align 8, !tbaa !23, !alias.scope !35
  %wide.load3022 = load <2 x double>, ptr %321, align 8, !tbaa !23, !alias.scope !37
  %354 = fneg <2 x double> %wide.load3021
  %355 = fmul <2 x double> %wide.load3022, %354
  %356 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3019, <2 x double> %wide.load3020, <2 x double> %355)
  %357 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load3020, <2 x double> %wide.load3019, <2 x double> %356)
  %358 = fneg <2 x double> %wide.load3022
  %359 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %358, <2 x double> %wide.load3021, <2 x double> %357)
  %360 = getelementptr inbounds double, ptr %208, i64 %index3000
  store <2 x double> %359, ptr %360, align 8, !tbaa !23, !alias.scope !55, !noalias !56
  %index.next3023 = add nuw i64 %index3000, 2
  %361 = icmp eq i64 %index.next3023, %n.vec2997
  br i1 %361, label %middle.block2992, label %vector.body2999, !llvm.loop !57

middle.block2992:                                 ; preds = %vector.body2999
  br i1 %cmp.n3024, label %._crit_edge1470, label %.lr.ph1469.preheader3071

._crit_edge1470:                                  ; preds = %.lr.ph1469, %middle.block2992, %196
  %362 = add nuw nsw i32 %.013921471, 1
  %exitcond1530.not = icmp eq i32 %362, %192
  br i1 %exitcond1530.not, label %.loopexit, label %196, !llvm.loop !60

.lr.ph1469:                                       ; preds = %.lr.ph1469.preheader3071, %.lr.ph1469
  %indvars.iv1525 = phi i64 [ %indvars.iv.next1526, %.lr.ph1469 ], [ %indvars.iv1525.ph, %.lr.ph1469.preheader3071 ]
  %363 = getelementptr inbounds double, ptr %209, i64 %indvars.iv1525
  %364 = load double, ptr %363, align 8, !tbaa !23
  %365 = getelementptr inbounds double, ptr %211, i64 %indvars.iv1525
  %366 = load double, ptr %365, align 8, !tbaa !23
  %367 = fmul double %366, %366
  %368 = call double @llvm.fmuladd.f64(double %364, double %364, double %367)
  %369 = getelementptr inbounds double, ptr %213, i64 %indvars.iv1525
  %370 = load double, ptr %369, align 8, !tbaa !23
  %371 = call double @llvm.fmuladd.f64(double %370, double %370, double %368)
  %372 = getelementptr inbounds double, ptr %210, i64 %indvars.iv1525
  %373 = load double, ptr %372, align 8, !tbaa !23
  %374 = getelementptr inbounds double, ptr %212, i64 %indvars.iv1525
  %375 = load double, ptr %374, align 8, !tbaa !23
  %376 = fmul double %375, %375
  %377 = call double @llvm.fmuladd.f64(double %373, double %373, double %376)
  %378 = getelementptr inbounds double, ptr %214, i64 %indvars.iv1525
  %379 = load double, ptr %378, align 8, !tbaa !23
  %380 = call double @llvm.fmuladd.f64(double %379, double %379, double %377)
  %381 = fmul double %380, -2.000000e+00
  %382 = call double @llvm.fmuladd.f64(double %371, double 2.000000e+00, double %381)
  %383 = fneg double %373
  %384 = fmul double %373, %383
  %385 = call double @llvm.fmuladd.f64(double %364, double %364, double %384)
  %386 = call double @llvm.fmuladd.f64(double %385, double 4.000000e+00, double %382)
  %387 = getelementptr inbounds double, ptr %198, i64 %indvars.iv1525
  store double %386, ptr %387, align 8, !tbaa !23
  %388 = load double, ptr %365, align 8, !tbaa !23
  %389 = load double, ptr %374, align 8, !tbaa !23
  %390 = fneg double %389
  %391 = fmul double %389, %390
  %392 = call double @llvm.fmuladd.f64(double %388, double %388, double %391)
  %393 = call double @llvm.fmuladd.f64(double %392, double 4.000000e+00, double %382)
  %394 = getelementptr inbounds double, ptr %200, i64 %indvars.iv1525
  store double %393, ptr %394, align 8, !tbaa !23
  %395 = load double, ptr %369, align 8, !tbaa !23
  %396 = load double, ptr %378, align 8, !tbaa !23
  %397 = fneg double %396
  %398 = fmul double %396, %397
  %399 = call double @llvm.fmuladd.f64(double %395, double %395, double %398)
  %400 = call double @llvm.fmuladd.f64(double %399, double 4.000000e+00, double %382)
  %401 = getelementptr inbounds double, ptr %202, i64 %indvars.iv1525
  store double %400, ptr %401, align 8, !tbaa !23
  %402 = load double, ptr %363, align 8, !tbaa !23
  %403 = load double, ptr %365, align 8, !tbaa !23
  %404 = load double, ptr %372, align 8, !tbaa !23
  %405 = load double, ptr %374, align 8, !tbaa !23
  %406 = fneg double %404
  %407 = fmul double %405, %406
  %408 = call double @llvm.fmuladd.f64(double %402, double %403, double %407)
  %409 = call double @llvm.fmuladd.f64(double %403, double %402, double %408)
  %410 = fneg double %405
  %411 = call double @llvm.fmuladd.f64(double %410, double %404, double %409)
  %412 = getelementptr inbounds double, ptr %204, i64 %indvars.iv1525
  store double %411, ptr %412, align 8, !tbaa !23
  %413 = load double, ptr %363, align 8, !tbaa !23
  %414 = load double, ptr %369, align 8, !tbaa !23
  %415 = load double, ptr %372, align 8, !tbaa !23
  %416 = load double, ptr %378, align 8, !tbaa !23
  %417 = fneg double %415
  %418 = fmul double %416, %417
  %419 = call double @llvm.fmuladd.f64(double %413, double %414, double %418)
  %420 = call double @llvm.fmuladd.f64(double %414, double %413, double %419)
  %421 = fneg double %416
  %422 = call double @llvm.fmuladd.f64(double %421, double %415, double %420)
  %423 = getelementptr inbounds double, ptr %206, i64 %indvars.iv1525
  store double %422, ptr %423, align 8, !tbaa !23
  %424 = load double, ptr %365, align 8, !tbaa !23
  %425 = load double, ptr %369, align 8, !tbaa !23
  %426 = load double, ptr %374, align 8, !tbaa !23
  %427 = load double, ptr %378, align 8, !tbaa !23
  %428 = fneg double %426
  %429 = fmul double %427, %428
  %430 = call double @llvm.fmuladd.f64(double %424, double %425, double %429)
  %431 = call double @llvm.fmuladd.f64(double %425, double %424, double %430)
  %432 = fneg double %427
  %433 = call double @llvm.fmuladd.f64(double %432, double %426, double %431)
  %434 = getelementptr inbounds double, ptr %208, i64 %indvars.iv1525
  store double %433, ptr %434, align 8, !tbaa !23
  %indvars.iv.next1526 = add nuw nsw i64 %indvars.iv1525, 1
  %exitcond1529.not = icmp eq i64 %indvars.iv.next1526, %wide.trip.count1528
  br i1 %exitcond1529.not, label %._crit_edge1470, label %.lr.ph1469, !llvm.loop !61

435:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %436 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.4)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  br i1 %436, label %.preheader1414, label %808

.preheader1414:                                   ; preds = %435
  %437 = sdiv i32 %2, 6
  %438 = icmp sgt i32 %2, 5
  br i1 %438, label %.lr.ph1466, label %.loopexit

.lr.ph1466:                                       ; preds = %.preheader1414
  %439 = icmp sgt i32 %23, 0
  %wide.trip.count1522 = zext nneg i32 %23 to i64
  br label %440

440:                                              ; preds = %.lr.ph1466, %._crit_edge1464
  %.013941465 = phi i32 [ 0, %.lr.ph1466 ], [ %525, %._crit_edge1464 ]
  %441 = mul nuw nsw i32 %.013941465, 6
  %442 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %441)
  %443 = or disjoint i32 %441, 1
  %444 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %443)
  %445 = add nuw nsw i32 %441, 2
  %446 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %445)
  %447 = add nuw nsw i32 %441, 3
  %448 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %447)
  %449 = add nuw nsw i32 %441, 4
  %450 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %449)
  %451 = add nuw nsw i32 %441, 5
  %452 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %451)
  %453 = mul nuw nsw i32 %.013941465, 36
  %454 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %453)
  %455 = or disjoint i32 %453, 1
  %456 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %455)
  %457 = or disjoint i32 %453, 2
  %458 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %457)
  %459 = or disjoint i32 %453, 3
  %460 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %459)
  %461 = add nuw nsw i32 %453, 4
  %462 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %461)
  %463 = add nuw nsw i32 %453, 5
  %464 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %463)
  %465 = add nuw nsw i32 %453, 6
  %466 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %465)
  %467 = add nuw nsw i32 %453, 7
  %468 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %467)
  %469 = add nuw nsw i32 %453, 8
  %470 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %469)
  %471 = add nuw nsw i32 %453, 9
  %472 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %471)
  %473 = add nuw nsw i32 %453, 10
  %474 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %473)
  %475 = add nuw nsw i32 %453, 11
  %476 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %475)
  %477 = add nuw nsw i32 %453, 12
  %478 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %477)
  %479 = add nuw nsw i32 %453, 13
  %480 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %479)
  %481 = add nuw nsw i32 %453, 14
  %482 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %481)
  %483 = add nuw nsw i32 %453, 15
  %484 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %483)
  %485 = add nuw nsw i32 %453, 16
  %486 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %485)
  %487 = add nuw nsw i32 %453, 17
  %488 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %487)
  %489 = add nuw nsw i32 %453, 18
  %490 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %489)
  %491 = add nuw nsw i32 %453, 19
  %492 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %491)
  %493 = add nuw nsw i32 %453, 20
  %494 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %493)
  %495 = add nuw nsw i32 %453, 21
  %496 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %495)
  %497 = add nuw nsw i32 %453, 22
  %498 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %497)
  %499 = add nuw nsw i32 %453, 23
  %500 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %499)
  %501 = add nuw nsw i32 %453, 24
  %502 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %501)
  %503 = add nuw nsw i32 %453, 25
  %504 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %503)
  %505 = add nuw nsw i32 %453, 26
  %506 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %505)
  %507 = add nuw nsw i32 %453, 27
  %508 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %507)
  %509 = add nuw nsw i32 %453, 28
  %510 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %509)
  %511 = add nuw nsw i32 %453, 29
  %512 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %511)
  %513 = add nuw nsw i32 %453, 30
  %514 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %513)
  %515 = add nuw nsw i32 %453, 31
  %516 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %515)
  %517 = add nuw nsw i32 %453, 32
  %518 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %517)
  %519 = add nuw nsw i32 %453, 33
  %520 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %519)
  %521 = add nuw nsw i32 %453, 34
  %522 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %521)
  %523 = add nuw nsw i32 %453, 35
  %524 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %523)
  br i1 %439, label %.lr.ph1463, label %._crit_edge1464

._crit_edge1464:                                  ; preds = %.lr.ph1463, %440
  %525 = add nuw nsw i32 %.013941465, 1
  %exitcond1524.not = icmp eq i32 %525, %437
  br i1 %exitcond1524.not, label %.loopexit, label %440, !llvm.loop !62

.lr.ph1463:                                       ; preds = %440, %.lr.ph1463
  %indvars.iv1519 = phi i64 [ %indvars.iv.next1520, %.lr.ph1463 ], [ 0, %440 ]
  %526 = getelementptr inbounds double, ptr %478, i64 %indvars.iv1519
  %527 = load double, ptr %526, align 8, !tbaa !23
  %528 = getelementptr inbounds double, ptr %466, i64 %indvars.iv1519
  %529 = load double, ptr %528, align 8, !tbaa !23
  %530 = getelementptr inbounds double, ptr %480, i64 %indvars.iv1519
  %531 = load double, ptr %530, align 8, !tbaa !23
  %532 = getelementptr inbounds double, ptr %468, i64 %indvars.iv1519
  %533 = load double, ptr %532, align 8, !tbaa !23
  %534 = fneg double %531
  %535 = fmul double %533, %534
  %536 = call double @llvm.fmuladd.f64(double %527, double %529, double %535)
  %537 = getelementptr inbounds double, ptr %490, i64 %indvars.iv1519
  %538 = load double, ptr %537, align 8, !tbaa !23
  %539 = getelementptr inbounds double, ptr %470, i64 %indvars.iv1519
  %540 = load double, ptr %539, align 8, !tbaa !23
  %541 = call double @llvm.fmuladd.f64(double %538, double %540, double %536)
  %542 = getelementptr inbounds double, ptr %492, i64 %indvars.iv1519
  %543 = load double, ptr %542, align 8, !tbaa !23
  %544 = getelementptr inbounds double, ptr %472, i64 %indvars.iv1519
  %545 = load double, ptr %544, align 8, !tbaa !23
  %546 = fneg double %543
  %547 = call double @llvm.fmuladd.f64(double %546, double %545, double %541)
  %548 = getelementptr inbounds double, ptr %494, i64 %indvars.iv1519
  %549 = load double, ptr %548, align 8, !tbaa !23
  %550 = getelementptr inbounds double, ptr %474, i64 %indvars.iv1519
  %551 = load double, ptr %550, align 8, !tbaa !23
  %552 = call double @llvm.fmuladd.f64(double %549, double %551, double %547)
  %553 = getelementptr inbounds double, ptr %496, i64 %indvars.iv1519
  %554 = load double, ptr %553, align 8, !tbaa !23
  %555 = getelementptr inbounds double, ptr %476, i64 %indvars.iv1519
  %556 = load double, ptr %555, align 8, !tbaa !23
  %557 = fneg double %554
  %558 = call double @llvm.fmuladd.f64(double %557, double %556, double %552)
  %559 = getelementptr inbounds double, ptr %502, i64 %indvars.iv1519
  %560 = load double, ptr %559, align 8, !tbaa !23
  %561 = getelementptr inbounds double, ptr %454, i64 %indvars.iv1519
  %562 = load double, ptr %561, align 8, !tbaa !23
  %563 = call double @llvm.fmuladd.f64(double %560, double %562, double %558)
  %564 = getelementptr inbounds double, ptr %504, i64 %indvars.iv1519
  %565 = load double, ptr %564, align 8, !tbaa !23
  %566 = getelementptr inbounds double, ptr %456, i64 %indvars.iv1519
  %567 = load double, ptr %566, align 8, !tbaa !23
  %568 = fneg double %565
  %569 = call double @llvm.fmuladd.f64(double %568, double %567, double %563)
  %570 = getelementptr inbounds double, ptr %514, i64 %indvars.iv1519
  %571 = load double, ptr %570, align 8, !tbaa !23
  %572 = getelementptr inbounds double, ptr %458, i64 %indvars.iv1519
  %573 = load double, ptr %572, align 8, !tbaa !23
  %574 = call double @llvm.fmuladd.f64(double %571, double %573, double %569)
  %575 = getelementptr inbounds double, ptr %516, i64 %indvars.iv1519
  %576 = load double, ptr %575, align 8, !tbaa !23
  %577 = getelementptr inbounds double, ptr %460, i64 %indvars.iv1519
  %578 = load double, ptr %577, align 8, !tbaa !23
  %579 = fneg double %576
  %580 = call double @llvm.fmuladd.f64(double %579, double %578, double %574)
  %581 = getelementptr inbounds double, ptr %518, i64 %indvars.iv1519
  %582 = load double, ptr %581, align 8, !tbaa !23
  %583 = getelementptr inbounds double, ptr %462, i64 %indvars.iv1519
  %584 = load double, ptr %583, align 8, !tbaa !23
  %585 = call double @llvm.fmuladd.f64(double %582, double %584, double %580)
  %586 = getelementptr inbounds double, ptr %520, i64 %indvars.iv1519
  %587 = load double, ptr %586, align 8, !tbaa !23
  %588 = getelementptr inbounds double, ptr %464, i64 %indvars.iv1519
  %589 = load double, ptr %588, align 8, !tbaa !23
  %590 = fneg double %587
  %591 = call double @llvm.fmuladd.f64(double %590, double %589, double %585)
  %592 = fmul double %591, 2.000000e+00
  %593 = getelementptr inbounds double, ptr %442, i64 %indvars.iv1519
  store double %592, ptr %593, align 8, !tbaa !23
  %594 = load double, ptr %537, align 8, !tbaa !23
  %595 = load double, ptr %528, align 8, !tbaa !23
  %596 = load double, ptr %542, align 8, !tbaa !23
  %597 = load double, ptr %532, align 8, !tbaa !23
  %598 = fneg double %596
  %599 = fmul double %597, %598
  %600 = call double @llvm.fmuladd.f64(double %594, double %595, double %599)
  %601 = getelementptr inbounds double, ptr %482, i64 %indvars.iv1519
  %602 = load double, ptr %601, align 8, !tbaa !23
  %603 = load double, ptr %539, align 8, !tbaa !23
  %604 = call double @llvm.fmuladd.f64(double %602, double %603, double %600)
  %605 = getelementptr inbounds double, ptr %484, i64 %indvars.iv1519
  %606 = load double, ptr %605, align 8, !tbaa !23
  %607 = load double, ptr %544, align 8, !tbaa !23
  %608 = fneg double %606
  %609 = call double @llvm.fmuladd.f64(double %608, double %607, double %604)
  %610 = getelementptr inbounds double, ptr %498, i64 %indvars.iv1519
  %611 = load double, ptr %610, align 8, !tbaa !23
  %612 = load double, ptr %550, align 8, !tbaa !23
  %613 = call double @llvm.fmuladd.f64(double %611, double %612, double %609)
  %614 = getelementptr inbounds double, ptr %500, i64 %indvars.iv1519
  %615 = load double, ptr %614, align 8, !tbaa !23
  %616 = load double, ptr %555, align 8, !tbaa !23
  %617 = fneg double %615
  %618 = call double @llvm.fmuladd.f64(double %617, double %616, double %613)
  %619 = load double, ptr %570, align 8, !tbaa !23
  %620 = load double, ptr %561, align 8, !tbaa !23
  %621 = call double @llvm.fmuladd.f64(double %619, double %620, double %618)
  %622 = load double, ptr %575, align 8, !tbaa !23
  %623 = load double, ptr %566, align 8, !tbaa !23
  %624 = fneg double %622
  %625 = call double @llvm.fmuladd.f64(double %624, double %623, double %621)
  %626 = getelementptr inbounds double, ptr %506, i64 %indvars.iv1519
  %627 = load double, ptr %626, align 8, !tbaa !23
  %628 = load double, ptr %572, align 8, !tbaa !23
  %629 = call double @llvm.fmuladd.f64(double %627, double %628, double %625)
  %630 = getelementptr inbounds double, ptr %508, i64 %indvars.iv1519
  %631 = load double, ptr %630, align 8, !tbaa !23
  %632 = load double, ptr %577, align 8, !tbaa !23
  %633 = fneg double %631
  %634 = call double @llvm.fmuladd.f64(double %633, double %632, double %629)
  %635 = getelementptr inbounds double, ptr %522, i64 %indvars.iv1519
  %636 = load double, ptr %635, align 8, !tbaa !23
  %637 = load double, ptr %583, align 8, !tbaa !23
  %638 = call double @llvm.fmuladd.f64(double %636, double %637, double %634)
  %639 = getelementptr inbounds double, ptr %524, i64 %indvars.iv1519
  %640 = load double, ptr %639, align 8, !tbaa !23
  %641 = load double, ptr %588, align 8, !tbaa !23
  %642 = fneg double %640
  %643 = call double @llvm.fmuladd.f64(double %642, double %641, double %638)
  %644 = fmul double %643, 2.000000e+00
  %645 = getelementptr inbounds double, ptr %446, i64 %indvars.iv1519
  store double %644, ptr %645, align 8, !tbaa !23
  %646 = load double, ptr %548, align 8, !tbaa !23
  %647 = load double, ptr %528, align 8, !tbaa !23
  %648 = load double, ptr %553, align 8, !tbaa !23
  %649 = load double, ptr %532, align 8, !tbaa !23
  %650 = fneg double %648
  %651 = fmul double %649, %650
  %652 = call double @llvm.fmuladd.f64(double %646, double %647, double %651)
  %653 = load double, ptr %610, align 8, !tbaa !23
  %654 = load double, ptr %539, align 8, !tbaa !23
  %655 = call double @llvm.fmuladd.f64(double %653, double %654, double %652)
  %656 = load double, ptr %614, align 8, !tbaa !23
  %657 = load double, ptr %544, align 8, !tbaa !23
  %658 = fneg double %656
  %659 = call double @llvm.fmuladd.f64(double %658, double %657, double %655)
  %660 = getelementptr inbounds double, ptr %486, i64 %indvars.iv1519
  %661 = load double, ptr %660, align 8, !tbaa !23
  %662 = load double, ptr %550, align 8, !tbaa !23
  %663 = call double @llvm.fmuladd.f64(double %661, double %662, double %659)
  %664 = getelementptr inbounds double, ptr %488, i64 %indvars.iv1519
  %665 = load double, ptr %664, align 8, !tbaa !23
  %666 = load double, ptr %555, align 8, !tbaa !23
  %667 = fneg double %665
  %668 = call double @llvm.fmuladd.f64(double %667, double %666, double %663)
  %669 = load double, ptr %581, align 8, !tbaa !23
  %670 = load double, ptr %561, align 8, !tbaa !23
  %671 = call double @llvm.fmuladd.f64(double %669, double %670, double %668)
  %672 = load double, ptr %586, align 8, !tbaa !23
  %673 = load double, ptr %566, align 8, !tbaa !23
  %674 = fneg double %672
  %675 = call double @llvm.fmuladd.f64(double %674, double %673, double %671)
  %676 = load double, ptr %635, align 8, !tbaa !23
  %677 = load double, ptr %572, align 8, !tbaa !23
  %678 = call double @llvm.fmuladd.f64(double %676, double %677, double %675)
  %679 = load double, ptr %639, align 8, !tbaa !23
  %680 = load double, ptr %577, align 8, !tbaa !23
  %681 = fneg double %679
  %682 = call double @llvm.fmuladd.f64(double %681, double %680, double %678)
  %683 = getelementptr inbounds double, ptr %510, i64 %indvars.iv1519
  %684 = load double, ptr %683, align 8, !tbaa !23
  %685 = load double, ptr %583, align 8, !tbaa !23
  %686 = call double @llvm.fmuladd.f64(double %684, double %685, double %682)
  %687 = getelementptr inbounds double, ptr %512, i64 %indvars.iv1519
  %688 = load double, ptr %687, align 8, !tbaa !23
  %689 = load double, ptr %588, align 8, !tbaa !23
  %690 = fneg double %688
  %691 = call double @llvm.fmuladd.f64(double %690, double %689, double %686)
  %692 = fmul double %691, 2.000000e+00
  %693 = getelementptr inbounds double, ptr %450, i64 %indvars.iv1519
  store double %692, ptr %693, align 8, !tbaa !23
  %694 = load double, ptr %530, align 8, !tbaa !23
  %695 = load double, ptr %528, align 8, !tbaa !23
  %696 = load double, ptr %526, align 8, !tbaa !23
  %697 = load double, ptr %532, align 8, !tbaa !23
  %698 = fmul double %696, %697
  %699 = call double @llvm.fmuladd.f64(double %694, double %695, double %698)
  %700 = load double, ptr %542, align 8, !tbaa !23
  %701 = load double, ptr %539, align 8, !tbaa !23
  %702 = call double @llvm.fmuladd.f64(double %700, double %701, double %699)
  %703 = load double, ptr %537, align 8, !tbaa !23
  %704 = load double, ptr %544, align 8, !tbaa !23
  %705 = call double @llvm.fmuladd.f64(double %703, double %704, double %702)
  %706 = load double, ptr %553, align 8, !tbaa !23
  %707 = load double, ptr %550, align 8, !tbaa !23
  %708 = call double @llvm.fmuladd.f64(double %706, double %707, double %705)
  %709 = load double, ptr %548, align 8, !tbaa !23
  %710 = load double, ptr %555, align 8, !tbaa !23
  %711 = call double @llvm.fmuladd.f64(double %709, double %710, double %708)
  %712 = load double, ptr %564, align 8, !tbaa !23
  %713 = load double, ptr %561, align 8, !tbaa !23
  %714 = call double @llvm.fmuladd.f64(double %712, double %713, double %711)
  %715 = load double, ptr %559, align 8, !tbaa !23
  %716 = load double, ptr %566, align 8, !tbaa !23
  %717 = call double @llvm.fmuladd.f64(double %715, double %716, double %714)
  %718 = load double, ptr %575, align 8, !tbaa !23
  %719 = load double, ptr %572, align 8, !tbaa !23
  %720 = call double @llvm.fmuladd.f64(double %718, double %719, double %717)
  %721 = load double, ptr %570, align 8, !tbaa !23
  %722 = load double, ptr %577, align 8, !tbaa !23
  %723 = call double @llvm.fmuladd.f64(double %721, double %722, double %720)
  %724 = load double, ptr %586, align 8, !tbaa !23
  %725 = load double, ptr %583, align 8, !tbaa !23
  %726 = call double @llvm.fmuladd.f64(double %724, double %725, double %723)
  %727 = load double, ptr %581, align 8, !tbaa !23
  %728 = load double, ptr %588, align 8, !tbaa !23
  %729 = call double @llvm.fmuladd.f64(double %727, double %728, double %726)
  %730 = fmul double %729, 2.000000e+00
  %731 = getelementptr inbounds double, ptr %444, i64 %indvars.iv1519
  store double %730, ptr %731, align 8, !tbaa !23
  %732 = load double, ptr %542, align 8, !tbaa !23
  %733 = load double, ptr %528, align 8, !tbaa !23
  %734 = load double, ptr %537, align 8, !tbaa !23
  %735 = load double, ptr %532, align 8, !tbaa !23
  %736 = fmul double %734, %735
  %737 = call double @llvm.fmuladd.f64(double %732, double %733, double %736)
  %738 = load double, ptr %605, align 8, !tbaa !23
  %739 = load double, ptr %539, align 8, !tbaa !23
  %740 = call double @llvm.fmuladd.f64(double %738, double %739, double %737)
  %741 = load double, ptr %601, align 8, !tbaa !23
  %742 = load double, ptr %544, align 8, !tbaa !23
  %743 = call double @llvm.fmuladd.f64(double %741, double %742, double %740)
  %744 = load double, ptr %614, align 8, !tbaa !23
  %745 = load double, ptr %550, align 8, !tbaa !23
  %746 = call double @llvm.fmuladd.f64(double %744, double %745, double %743)
  %747 = load double, ptr %610, align 8, !tbaa !23
  %748 = load double, ptr %555, align 8, !tbaa !23
  %749 = call double @llvm.fmuladd.f64(double %747, double %748, double %746)
  %750 = load double, ptr %575, align 8, !tbaa !23
  %751 = load double, ptr %561, align 8, !tbaa !23
  %752 = call double @llvm.fmuladd.f64(double %750, double %751, double %749)
  %753 = load double, ptr %570, align 8, !tbaa !23
  %754 = load double, ptr %566, align 8, !tbaa !23
  %755 = call double @llvm.fmuladd.f64(double %753, double %754, double %752)
  %756 = load double, ptr %630, align 8, !tbaa !23
  %757 = load double, ptr %572, align 8, !tbaa !23
  %758 = call double @llvm.fmuladd.f64(double %756, double %757, double %755)
  %759 = load double, ptr %626, align 8, !tbaa !23
  %760 = load double, ptr %577, align 8, !tbaa !23
  %761 = call double @llvm.fmuladd.f64(double %759, double %760, double %758)
  %762 = load double, ptr %639, align 8, !tbaa !23
  %763 = load double, ptr %583, align 8, !tbaa !23
  %764 = call double @llvm.fmuladd.f64(double %762, double %763, double %761)
  %765 = load double, ptr %635, align 8, !tbaa !23
  %766 = load double, ptr %588, align 8, !tbaa !23
  %767 = call double @llvm.fmuladd.f64(double %765, double %766, double %764)
  %768 = fmul double %767, 2.000000e+00
  %769 = getelementptr inbounds double, ptr %448, i64 %indvars.iv1519
  store double %768, ptr %769, align 8, !tbaa !23
  %770 = load double, ptr %553, align 8, !tbaa !23
  %771 = load double, ptr %528, align 8, !tbaa !23
  %772 = load double, ptr %548, align 8, !tbaa !23
  %773 = load double, ptr %532, align 8, !tbaa !23
  %774 = fmul double %772, %773
  %775 = call double @llvm.fmuladd.f64(double %770, double %771, double %774)
  %776 = load double, ptr %614, align 8, !tbaa !23
  %777 = load double, ptr %539, align 8, !tbaa !23
  %778 = call double @llvm.fmuladd.f64(double %776, double %777, double %775)
  %779 = load double, ptr %610, align 8, !tbaa !23
  %780 = load double, ptr %544, align 8, !tbaa !23
  %781 = call double @llvm.fmuladd.f64(double %779, double %780, double %778)
  %782 = load double, ptr %664, align 8, !tbaa !23
  %783 = load double, ptr %550, align 8, !tbaa !23
  %784 = call double @llvm.fmuladd.f64(double %782, double %783, double %781)
  %785 = load double, ptr %660, align 8, !tbaa !23
  %786 = load double, ptr %555, align 8, !tbaa !23
  %787 = call double @llvm.fmuladd.f64(double %785, double %786, double %784)
  %788 = load double, ptr %586, align 8, !tbaa !23
  %789 = load double, ptr %561, align 8, !tbaa !23
  %790 = call double @llvm.fmuladd.f64(double %788, double %789, double %787)
  %791 = load double, ptr %581, align 8, !tbaa !23
  %792 = load double, ptr %566, align 8, !tbaa !23
  %793 = call double @llvm.fmuladd.f64(double %791, double %792, double %790)
  %794 = load double, ptr %639, align 8, !tbaa !23
  %795 = load double, ptr %572, align 8, !tbaa !23
  %796 = call double @llvm.fmuladd.f64(double %794, double %795, double %793)
  %797 = load double, ptr %635, align 8, !tbaa !23
  %798 = load double, ptr %577, align 8, !tbaa !23
  %799 = call double @llvm.fmuladd.f64(double %797, double %798, double %796)
  %800 = load double, ptr %687, align 8, !tbaa !23
  %801 = load double, ptr %583, align 8, !tbaa !23
  %802 = call double @llvm.fmuladd.f64(double %800, double %801, double %799)
  %803 = load double, ptr %683, align 8, !tbaa !23
  %804 = load double, ptr %588, align 8, !tbaa !23
  %805 = call double @llvm.fmuladd.f64(double %803, double %804, double %802)
  %806 = fmul double %805, 2.000000e+00
  %807 = getelementptr inbounds double, ptr %452, i64 %indvars.iv1519
  store double %806, ptr %807, align 8, !tbaa !23
  %indvars.iv.next1520 = add nuw nsw i64 %indvars.iv1519, 1
  %exitcond1523.not = icmp eq i64 %indvars.iv.next1520, %wide.trip.count1522
  br i1 %exitcond1523.not, label %._crit_edge1464, label %.lr.ph1463, !llvm.loop !63

808:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %809 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.5)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br i1 %809, label %.preheader1416, label %887

.preheader1416:                                   ; preds = %808
  %810 = sdiv i32 %2, 6
  %811 = icmp sgt i32 %2, 5
  br i1 %811, label %.lr.ph1460, label %.loopexit

.lr.ph1460:                                       ; preds = %.preheader1416
  %812 = icmp sgt i32 %23, 0
  %wide.trip.count1516 = zext nneg i32 %23 to i64
  br label %813

813:                                              ; preds = %.lr.ph1460, %._crit_edge1458
  %.013981459 = phi i32 [ 0, %.lr.ph1460 ], [ %832, %._crit_edge1458 ]
  %814 = mul nuw nsw i32 %.013981459, 6
  %815 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %814)
  %816 = or disjoint i32 %814, 1
  %817 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %816)
  %818 = add nuw nsw i32 %814, 2
  %819 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %818)
  %820 = add nuw nsw i32 %814, 3
  %821 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %820)
  %822 = add nuw nsw i32 %814, 4
  %823 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %822)
  %824 = add nuw nsw i32 %814, 5
  %825 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %824)
  %826 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %814)
  %827 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %816)
  %828 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %818)
  %829 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %820)
  %830 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %822)
  %831 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %824)
  br i1 %812, label %.lr.ph1457, label %._crit_edge1458

._crit_edge1458:                                  ; preds = %.lr.ph1457, %813
  %832 = add nuw nsw i32 %.013981459, 1
  %exitcond1518.not = icmp eq i32 %832, %810
  br i1 %exitcond1518.not, label %.loopexit, label %813, !llvm.loop !64

.lr.ph1457:                                       ; preds = %813, %.lr.ph1457
  %indvars.iv1513 = phi i64 [ %indvars.iv.next1514, %.lr.ph1457 ], [ 0, %813 ]
  %833 = getelementptr inbounds double, ptr %826, i64 %indvars.iv1513
  %834 = load double, ptr %833, align 8, !tbaa !23
  %835 = getelementptr inbounds double, ptr %827, i64 %indvars.iv1513
  %836 = load double, ptr %835, align 8, !tbaa !23
  %837 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %834, double noundef %836, double noundef %834, double noundef %836)
  %838 = getelementptr inbounds double, ptr %828, i64 %indvars.iv1513
  %839 = load double, ptr %838, align 8, !tbaa !23
  %840 = getelementptr inbounds double, ptr %829, i64 %indvars.iv1513
  %841 = load double, ptr %840, align 8, !tbaa !23
  %842 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %839, double noundef %841, double noundef %839, double noundef %841)
  %843 = fmul double %842, 6.000000e+00
  %844 = call double @llvm.fmuladd.f64(double %837, double 6.000000e+00, double %843)
  %845 = getelementptr inbounds double, ptr %830, i64 %indvars.iv1513
  %846 = load double, ptr %845, align 8, !tbaa !23
  %847 = getelementptr inbounds double, ptr %831, i64 %indvars.iv1513
  %848 = load double, ptr %847, align 8, !tbaa !23
  %849 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %846, double noundef %848, double noundef %846, double noundef %848)
  %850 = call double @llvm.fmuladd.f64(double %849, double 6.000000e+00, double %844)
  %851 = load double, ptr %833, align 8, !tbaa !23
  %852 = load double, ptr %835, align 8, !tbaa !23
  %853 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %851, double noundef %852, double noundef %851, double noundef %852)
  %854 = call double @llvm.fmuladd.f64(double %853, double 1.200000e+01, double %850)
  %855 = getelementptr inbounds double, ptr %815, i64 %indvars.iv1513
  store double %854, ptr %855, align 8, !tbaa !23
  %856 = load double, ptr %838, align 8, !tbaa !23
  %857 = load double, ptr %840, align 8, !tbaa !23
  %858 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %856, double noundef %857, double noundef %856, double noundef %857)
  %859 = call double @llvm.fmuladd.f64(double %858, double 1.200000e+01, double %850)
  %860 = getelementptr inbounds double, ptr %817, i64 %indvars.iv1513
  store double %859, ptr %860, align 8, !tbaa !23
  %861 = load double, ptr %845, align 8, !tbaa !23
  %862 = load double, ptr %847, align 8, !tbaa !23
  %863 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %861, double noundef %862, double noundef %861, double noundef %862)
  %864 = call double @llvm.fmuladd.f64(double %863, double 1.200000e+01, double %850)
  %865 = getelementptr inbounds double, ptr %819, i64 %indvars.iv1513
  store double %864, ptr %865, align 8, !tbaa !23
  %866 = load double, ptr %833, align 8, !tbaa !23
  %867 = load double, ptr %835, align 8, !tbaa !23
  %868 = load double, ptr %838, align 8, !tbaa !23
  %869 = load double, ptr %840, align 8, !tbaa !23
  %870 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %866, double noundef %867, double noundef %868, double noundef %869)
  %871 = fmul double %870, 1.200000e+01
  %872 = getelementptr inbounds double, ptr %821, i64 %indvars.iv1513
  store double %871, ptr %872, align 8, !tbaa !23
  %873 = load double, ptr %833, align 8, !tbaa !23
  %874 = load double, ptr %835, align 8, !tbaa !23
  %875 = load double, ptr %845, align 8, !tbaa !23
  %876 = load double, ptr %847, align 8, !tbaa !23
  %877 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %873, double noundef %874, double noundef %875, double noundef %876)
  %878 = fmul double %877, 1.200000e+01
  %879 = getelementptr inbounds double, ptr %823, i64 %indvars.iv1513
  store double %878, ptr %879, align 8, !tbaa !23
  %880 = load double, ptr %838, align 8, !tbaa !23
  %881 = load double, ptr %840, align 8, !tbaa !23
  %882 = load double, ptr %845, align 8, !tbaa !23
  %883 = load double, ptr %847, align 8, !tbaa !23
  %884 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %880, double noundef %881, double noundef %882, double noundef %883)
  %885 = fmul double %884, 1.200000e+01
  %886 = getelementptr inbounds double, ptr %825, i64 %indvars.iv1513
  store double %885, ptr %886, align 8, !tbaa !23
  %indvars.iv.next1514 = add nuw nsw i64 %indvars.iv1513, 1
  %exitcond1517.not = icmp eq i64 %indvars.iv.next1514, %wide.trip.count1516
  br i1 %exitcond1517.not, label %._crit_edge1458, label %.lr.ph1457, !llvm.loop !65

887:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %888 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.6)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  br i1 %888, label %.preheader1418, label %1473

.preheader1418:                                   ; preds = %887
  %889 = sdiv i32 %2, 6
  %890 = icmp sgt i32 %2, 5
  br i1 %890, label %.lr.ph1454, label %.loopexit

.lr.ph1454:                                       ; preds = %.preheader1418
  %891 = icmp sgt i32 %23, 0
  %wide.trip.count1510 = zext i32 %23 to i64
  %892 = shl nuw nsw i64 %wide.trip.count1510, 3
  %min.iters.check2695 = icmp ult i32 %23, 12
  %n.vec2698 = and i64 %wide.trip.count1510, 2147483646
  %cmp.n2775 = icmp eq i64 %n.vec2698, %wide.trip.count1510
  br label %893

893:                                              ; preds = %.lr.ph1454, %._crit_edge1452
  %.014001453 = phi i32 [ 0, %.lr.ph1454 ], [ %1325, %._crit_edge1452 ]
  %894 = mul nuw nsw i32 %.014001453, 6
  %895 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %894)
  %896 = or disjoint i32 %894, 1
  %897 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %896)
  %898 = add nuw nsw i32 %894, 2
  %899 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %898)
  %900 = add nuw nsw i32 %894, 3
  %901 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %900)
  %902 = add nuw nsw i32 %894, 4
  %903 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %902)
  %904 = add nuw nsw i32 %894, 5
  %905 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %904)
  %906 = mul nuw nsw i32 %.014001453, 18
  %907 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %906)
  %908 = or disjoint i32 %906, 1
  %909 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %908)
  %910 = add nuw nsw i32 %906, 2
  %911 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %910)
  %912 = add nuw nsw i32 %906, 3
  %913 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %912)
  %914 = add nuw nsw i32 %906, 4
  %915 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %914)
  %916 = add nuw nsw i32 %906, 5
  %917 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %916)
  %918 = add nuw nsw i32 %906, 6
  %919 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %918)
  %920 = add nuw nsw i32 %906, 7
  %921 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %920)
  %922 = add nuw nsw i32 %906, 8
  %923 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %922)
  %924 = add nuw nsw i32 %906, 9
  %925 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %924)
  %926 = add nuw nsw i32 %906, 10
  %927 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %926)
  %928 = add nuw nsw i32 %906, 11
  %929 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %928)
  %930 = add nuw nsw i32 %906, 12
  %931 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %930)
  %932 = add nuw nsw i32 %906, 13
  %933 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %932)
  %934 = add nuw nsw i32 %906, 14
  %935 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %934)
  %936 = add nuw nsw i32 %906, 15
  %937 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %936)
  %938 = add nuw nsw i32 %906, 16
  %939 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %938)
  %940 = add nuw nsw i32 %906, 17
  %941 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %940)
  br i1 %891, label %.lr.ph1451.preheader, label %._crit_edge1452

.lr.ph1451.preheader:                             ; preds = %893
  br i1 %min.iters.check2695, label %.lr.ph1451.preheader3075, label %vector.memcheck2177

.lr.ph1451.preheader3075:                         ; preds = %middle.block2693, %vector.memcheck2177, %.lr.ph1451.preheader
  %indvars.iv1507.ph = phi i64 [ 0, %vector.memcheck2177 ], [ 0, %.lr.ph1451.preheader ], [ %n.vec2698, %middle.block2693 ]
  br label %.lr.ph1451

vector.memcheck2177:                              ; preds = %.lr.ph1451.preheader
  %scevgep2178 = getelementptr i8, ptr %895, i64 %892
  %scevgep2179 = getelementptr i8, ptr %899, i64 %892
  %scevgep2180 = getelementptr i8, ptr %903, i64 %892
  %scevgep2181 = getelementptr i8, ptr %897, i64 %892
  %scevgep2182 = getelementptr i8, ptr %901, i64 %892
  %scevgep2183 = getelementptr i8, ptr %905, i64 %892
  %scevgep2184 = getelementptr i8, ptr %919, i64 %892
  %scevgep2185 = getelementptr i8, ptr %907, i64 %892
  %scevgep2186 = getelementptr i8, ptr %921, i64 %892
  %scevgep2187 = getelementptr i8, ptr %909, i64 %892
  %scevgep2188 = getelementptr i8, ptr %931, i64 %892
  %scevgep2189 = getelementptr i8, ptr %911, i64 %892
  %scevgep2190 = getelementptr i8, ptr %933, i64 %892
  %scevgep2191 = getelementptr i8, ptr %913, i64 %892
  %scevgep2192 = getelementptr i8, ptr %935, i64 %892
  %scevgep2193 = getelementptr i8, ptr %915, i64 %892
  %scevgep2194 = getelementptr i8, ptr %937, i64 %892
  %scevgep2195 = getelementptr i8, ptr %917, i64 %892
  %scevgep2196 = getelementptr i8, ptr %923, i64 %892
  %scevgep2197 = getelementptr i8, ptr %925, i64 %892
  %scevgep2198 = getelementptr i8, ptr %939, i64 %892
  %scevgep2199 = getelementptr i8, ptr %941, i64 %892
  %scevgep2200 = getelementptr i8, ptr %927, i64 %892
  %scevgep2201 = getelementptr i8, ptr %929, i64 %892
  %942 = insertelement <16 x ptr> poison, ptr %895, i64 0
  %943 = shufflevector <16 x ptr> %942, <16 x ptr> poison, <16 x i32> zeroinitializer
  %944 = insertelement <16 x ptr> poison, ptr %scevgep2179, i64 0
  %945 = insertelement <16 x ptr> %944, ptr %scevgep2180, i64 1
  %946 = insertelement <16 x ptr> %945, ptr %scevgep2181, i64 2
  %947 = insertelement <16 x ptr> %946, ptr %scevgep2182, i64 3
  %948 = insertelement <16 x ptr> %947, ptr %scevgep2183, i64 4
  %949 = insertelement <16 x ptr> %948, ptr %scevgep2184, i64 5
  %950 = insertelement <16 x ptr> %949, ptr %scevgep2185, i64 6
  %951 = insertelement <16 x ptr> %950, ptr %scevgep2186, i64 7
  %952 = insertelement <16 x ptr> %951, ptr %scevgep2187, i64 8
  %953 = insertelement <16 x ptr> %952, ptr %scevgep2188, i64 9
  %954 = insertelement <16 x ptr> %953, ptr %scevgep2189, i64 10
  %955 = insertelement <16 x ptr> %954, ptr %scevgep2190, i64 11
  %956 = insertelement <16 x ptr> %955, ptr %scevgep2191, i64 12
  %957 = insertelement <16 x ptr> %956, ptr %scevgep2192, i64 13
  %958 = insertelement <16 x ptr> %957, ptr %scevgep2193, i64 14
  %959 = insertelement <16 x ptr> %958, ptr %scevgep2194, i64 15
  %960 = icmp ult <16 x ptr> %943, %959
  %961 = insertelement <16 x ptr> poison, ptr %899, i64 0
  %962 = insertelement <16 x ptr> %961, ptr %903, i64 1
  %963 = insertelement <16 x ptr> %962, ptr %897, i64 2
  %964 = insertelement <16 x ptr> %963, ptr %901, i64 3
  %965 = insertelement <16 x ptr> %964, ptr %905, i64 4
  %966 = insertelement <16 x ptr> %965, ptr %919, i64 5
  %967 = insertelement <16 x ptr> %966, ptr %907, i64 6
  %968 = insertelement <16 x ptr> %967, ptr %921, i64 7
  %969 = insertelement <16 x ptr> %968, ptr %909, i64 8
  %970 = insertelement <16 x ptr> %969, ptr %931, i64 9
  %971 = insertelement <16 x ptr> %970, ptr %911, i64 10
  %972 = insertelement <16 x ptr> %971, ptr %933, i64 11
  %973 = insertelement <16 x ptr> %972, ptr %913, i64 12
  %974 = insertelement <16 x ptr> %973, ptr %935, i64 13
  %975 = insertelement <16 x ptr> %974, ptr %915, i64 14
  %976 = insertelement <16 x ptr> %975, ptr %937, i64 15
  %977 = insertelement <16 x ptr> poison, ptr %scevgep2178, i64 0
  %978 = shufflevector <16 x ptr> %977, <16 x ptr> poison, <16 x i32> zeroinitializer
  %979 = icmp ult <16 x ptr> %976, %978
  %980 = and <16 x i1> %960, %979
  %981 = insertelement <16 x ptr> %942, ptr %899, i64 1
  %982 = shufflevector <16 x ptr> %981, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %983 = insertelement <16 x ptr> poison, ptr %scevgep2195, i64 0
  %984 = insertelement <16 x ptr> %983, ptr %scevgep2196, i64 1
  %985 = insertelement <16 x ptr> %984, ptr %scevgep2197, i64 2
  %986 = insertelement <16 x ptr> %985, ptr %scevgep2198, i64 3
  %987 = insertelement <16 x ptr> %986, ptr %scevgep2199, i64 4
  %988 = insertelement <16 x ptr> %987, ptr %scevgep2200, i64 5
  %989 = insertelement <16 x ptr> %988, ptr %scevgep2201, i64 6
  %990 = insertelement <16 x ptr> %989, ptr %scevgep2180, i64 7
  %991 = insertelement <16 x ptr> %990, ptr %scevgep2181, i64 8
  %992 = insertelement <16 x ptr> %991, ptr %scevgep2182, i64 9
  %993 = insertelement <16 x ptr> %992, ptr %scevgep2183, i64 10
  %994 = insertelement <16 x ptr> %993, ptr %scevgep2184, i64 11
  %995 = insertelement <16 x ptr> %994, ptr %scevgep2185, i64 12
  %996 = insertelement <16 x ptr> %995, ptr %scevgep2186, i64 13
  %997 = insertelement <16 x ptr> %996, ptr %scevgep2187, i64 14
  %998 = insertelement <16 x ptr> %997, ptr %scevgep2188, i64 15
  %999 = icmp ult <16 x ptr> %982, %998
  %1000 = insertelement <16 x ptr> poison, ptr %917, i64 0
  %1001 = insertelement <16 x ptr> %1000, ptr %923, i64 1
  %1002 = insertelement <16 x ptr> %1001, ptr %925, i64 2
  %1003 = insertelement <16 x ptr> %1002, ptr %939, i64 3
  %1004 = insertelement <16 x ptr> %1003, ptr %941, i64 4
  %1005 = insertelement <16 x ptr> %1004, ptr %927, i64 5
  %1006 = insertelement <16 x ptr> %1005, ptr %929, i64 6
  %1007 = insertelement <16 x ptr> %1006, ptr %903, i64 7
  %1008 = insertelement <16 x ptr> %1007, ptr %897, i64 8
  %1009 = insertelement <16 x ptr> %1008, ptr %901, i64 9
  %1010 = insertelement <16 x ptr> %1009, ptr %905, i64 10
  %1011 = insertelement <16 x ptr> %1010, ptr %919, i64 11
  %1012 = insertelement <16 x ptr> %1011, ptr %907, i64 12
  %1013 = insertelement <16 x ptr> %1012, ptr %921, i64 13
  %1014 = insertelement <16 x ptr> %1013, ptr %909, i64 14
  %1015 = insertelement <16 x ptr> %1014, ptr %931, i64 15
  %1016 = insertelement <16 x ptr> %977, ptr %scevgep2179, i64 1
  %1017 = shufflevector <16 x ptr> %1016, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1018 = icmp ult <16 x ptr> %1015, %1017
  %1019 = and <16 x i1> %999, %1018
  %1020 = shufflevector <16 x ptr> %962, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1>
  %1021 = insertelement <16 x ptr> poison, ptr %scevgep2189, i64 0
  %1022 = insertelement <16 x ptr> %1021, ptr %scevgep2190, i64 1
  %1023 = insertelement <16 x ptr> %1022, ptr %scevgep2191, i64 2
  %1024 = insertelement <16 x ptr> %1023, ptr %scevgep2192, i64 3
  %1025 = insertelement <16 x ptr> %1024, ptr %scevgep2193, i64 4
  %1026 = insertelement <16 x ptr> %1025, ptr %scevgep2194, i64 5
  %1027 = insertelement <16 x ptr> %1026, ptr %scevgep2195, i64 6
  %1028 = insertelement <16 x ptr> %1027, ptr %scevgep2196, i64 7
  %1029 = insertelement <16 x ptr> %1028, ptr %scevgep2197, i64 8
  %1030 = insertelement <16 x ptr> %1029, ptr %scevgep2198, i64 9
  %1031 = insertelement <16 x ptr> %1030, ptr %scevgep2199, i64 10
  %1032 = insertelement <16 x ptr> %1031, ptr %scevgep2200, i64 11
  %1033 = insertelement <16 x ptr> %1032, ptr %scevgep2201, i64 12
  %1034 = insertelement <16 x ptr> %1033, ptr %scevgep2181, i64 13
  %1035 = insertelement <16 x ptr> %1034, ptr %scevgep2182, i64 14
  %1036 = insertelement <16 x ptr> %1035, ptr %scevgep2183, i64 15
  %1037 = icmp ult <16 x ptr> %1020, %1036
  %1038 = insertelement <16 x ptr> poison, ptr %911, i64 0
  %1039 = insertelement <16 x ptr> %1038, ptr %933, i64 1
  %1040 = insertelement <16 x ptr> %1039, ptr %913, i64 2
  %1041 = insertelement <16 x ptr> %1040, ptr %935, i64 3
  %1042 = insertelement <16 x ptr> %1041, ptr %915, i64 4
  %1043 = insertelement <16 x ptr> %1042, ptr %937, i64 5
  %1044 = insertelement <16 x ptr> %1043, ptr %917, i64 6
  %1045 = insertelement <16 x ptr> %1044, ptr %923, i64 7
  %1046 = insertelement <16 x ptr> %1045, ptr %925, i64 8
  %1047 = insertelement <16 x ptr> %1046, ptr %939, i64 9
  %1048 = insertelement <16 x ptr> %1047, ptr %941, i64 10
  %1049 = insertelement <16 x ptr> %1048, ptr %927, i64 11
  %1050 = insertelement <16 x ptr> %1049, ptr %929, i64 12
  %1051 = insertelement <16 x ptr> %1050, ptr %897, i64 13
  %1052 = insertelement <16 x ptr> %1051, ptr %901, i64 14
  %1053 = insertelement <16 x ptr> %1052, ptr %905, i64 15
  %1054 = shufflevector <16 x ptr> %945, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1>
  %1055 = icmp ult <16 x ptr> %1053, %1054
  %1056 = and <16 x i1> %1037, %1055
  %1057 = insertelement <16 x ptr> poison, ptr %903, i64 0
  %1058 = shufflevector <16 x ptr> %1057, <16 x ptr> poison, <16 x i32> zeroinitializer
  %1059 = insertelement <16 x ptr> poison, ptr %scevgep2184, i64 0
  %1060 = insertelement <16 x ptr> %1059, ptr %scevgep2185, i64 1
  %1061 = insertelement <16 x ptr> %1060, ptr %scevgep2186, i64 2
  %1062 = insertelement <16 x ptr> %1061, ptr %scevgep2187, i64 3
  %1063 = insertelement <16 x ptr> %1062, ptr %scevgep2188, i64 4
  %1064 = insertelement <16 x ptr> %1063, ptr %scevgep2189, i64 5
  %1065 = insertelement <16 x ptr> %1064, ptr %scevgep2190, i64 6
  %1066 = insertelement <16 x ptr> %1065, ptr %scevgep2191, i64 7
  %1067 = insertelement <16 x ptr> %1066, ptr %scevgep2192, i64 8
  %1068 = insertelement <16 x ptr> %1067, ptr %scevgep2193, i64 9
  %1069 = insertelement <16 x ptr> %1068, ptr %scevgep2194, i64 10
  %1070 = insertelement <16 x ptr> %1069, ptr %scevgep2195, i64 11
  %1071 = insertelement <16 x ptr> %1070, ptr %scevgep2196, i64 12
  %1072 = insertelement <16 x ptr> %1071, ptr %scevgep2197, i64 13
  %1073 = insertelement <16 x ptr> %1072, ptr %scevgep2198, i64 14
  %1074 = insertelement <16 x ptr> %1073, ptr %scevgep2199, i64 15
  %1075 = icmp ult <16 x ptr> %1058, %1074
  %1076 = insertelement <16 x ptr> poison, ptr %919, i64 0
  %1077 = insertelement <16 x ptr> %1076, ptr %907, i64 1
  %1078 = insertelement <16 x ptr> %1077, ptr %921, i64 2
  %1079 = insertelement <16 x ptr> %1078, ptr %909, i64 3
  %1080 = insertelement <16 x ptr> %1079, ptr %931, i64 4
  %1081 = insertelement <16 x ptr> %1080, ptr %911, i64 5
  %1082 = insertelement <16 x ptr> %1081, ptr %933, i64 6
  %1083 = insertelement <16 x ptr> %1082, ptr %913, i64 7
  %1084 = insertelement <16 x ptr> %1083, ptr %935, i64 8
  %1085 = insertelement <16 x ptr> %1084, ptr %915, i64 9
  %1086 = insertelement <16 x ptr> %1085, ptr %937, i64 10
  %1087 = insertelement <16 x ptr> %1086, ptr %917, i64 11
  %1088 = insertelement <16 x ptr> %1087, ptr %923, i64 12
  %1089 = insertelement <16 x ptr> %1088, ptr %925, i64 13
  %1090 = insertelement <16 x ptr> %1089, ptr %939, i64 14
  %1091 = insertelement <16 x ptr> %1090, ptr %941, i64 15
  %1092 = insertelement <16 x ptr> poison, ptr %scevgep2180, i64 0
  %1093 = shufflevector <16 x ptr> %1092, <16 x ptr> poison, <16 x i32> zeroinitializer
  %1094 = icmp ult <16 x ptr> %1091, %1093
  %1095 = and <16 x i1> %1075, %1094
  %1096 = insertelement <16 x ptr> %1057, ptr %897, i64 1
  %1097 = shufflevector <16 x ptr> %1096, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1098 = insertelement <16 x ptr> poison, ptr %scevgep2200, i64 0
  %1099 = insertelement <16 x ptr> %1098, ptr %scevgep2201, i64 1
  %1100 = insertelement <16 x ptr> %1099, ptr %scevgep2182, i64 2
  %1101 = insertelement <16 x ptr> %1100, ptr %scevgep2183, i64 3
  %1102 = insertelement <16 x ptr> %1101, ptr %scevgep2184, i64 4
  %1103 = insertelement <16 x ptr> %1102, ptr %scevgep2185, i64 5
  %1104 = insertelement <16 x ptr> %1103, ptr %scevgep2186, i64 6
  %1105 = insertelement <16 x ptr> %1104, ptr %scevgep2187, i64 7
  %1106 = insertelement <16 x ptr> %1105, ptr %scevgep2188, i64 8
  %1107 = insertelement <16 x ptr> %1106, ptr %scevgep2189, i64 9
  %1108 = insertelement <16 x ptr> %1107, ptr %scevgep2190, i64 10
  %1109 = insertelement <16 x ptr> %1108, ptr %scevgep2191, i64 11
  %1110 = insertelement <16 x ptr> %1109, ptr %scevgep2192, i64 12
  %1111 = insertelement <16 x ptr> %1110, ptr %scevgep2193, i64 13
  %1112 = insertelement <16 x ptr> %1111, ptr %scevgep2194, i64 14
  %1113 = insertelement <16 x ptr> %1112, ptr %scevgep2195, i64 15
  %1114 = icmp ult <16 x ptr> %1097, %1113
  %1115 = insertelement <16 x ptr> poison, ptr %927, i64 0
  %1116 = insertelement <16 x ptr> %1115, ptr %929, i64 1
  %1117 = insertelement <16 x ptr> %1116, ptr %901, i64 2
  %1118 = insertelement <16 x ptr> %1117, ptr %905, i64 3
  %1119 = insertelement <16 x ptr> %1118, ptr %919, i64 4
  %1120 = insertelement <16 x ptr> %1119, ptr %907, i64 5
  %1121 = insertelement <16 x ptr> %1120, ptr %921, i64 6
  %1122 = insertelement <16 x ptr> %1121, ptr %909, i64 7
  %1123 = insertelement <16 x ptr> %1122, ptr %931, i64 8
  %1124 = insertelement <16 x ptr> %1123, ptr %911, i64 9
  %1125 = insertelement <16 x ptr> %1124, ptr %933, i64 10
  %1126 = insertelement <16 x ptr> %1125, ptr %913, i64 11
  %1127 = insertelement <16 x ptr> %1126, ptr %935, i64 12
  %1128 = insertelement <16 x ptr> %1127, ptr %915, i64 13
  %1129 = insertelement <16 x ptr> %1128, ptr %937, i64 14
  %1130 = insertelement <16 x ptr> %1129, ptr %917, i64 15
  %1131 = insertelement <16 x ptr> %1092, ptr %scevgep2181, i64 1
  %1132 = shufflevector <16 x ptr> %1131, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1133 = icmp ult <16 x ptr> %1130, %1132
  %1134 = and <16 x i1> %1114, %1133
  %1135 = insertelement <16 x ptr> poison, ptr %897, i64 0
  %1136 = insertelement <16 x ptr> %1135, ptr %901, i64 1
  %1137 = shufflevector <16 x ptr> %1136, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1138 = insertelement <16 x ptr> poison, ptr %scevgep2196, i64 0
  %1139 = insertelement <16 x ptr> %1138, ptr %scevgep2197, i64 1
  %1140 = insertelement <16 x ptr> %1139, ptr %scevgep2198, i64 2
  %1141 = insertelement <16 x ptr> %1140, ptr %scevgep2199, i64 3
  %1142 = insertelement <16 x ptr> %1141, ptr %scevgep2200, i64 4
  %1143 = insertelement <16 x ptr> %1142, ptr %scevgep2201, i64 5
  %1144 = insertelement <16 x ptr> %1143, ptr %scevgep2183, i64 6
  %1145 = insertelement <16 x ptr> %1144, ptr %scevgep2184, i64 7
  %1146 = insertelement <16 x ptr> %1145, ptr %scevgep2185, i64 8
  %1147 = insertelement <16 x ptr> %1146, ptr %scevgep2186, i64 9
  %1148 = insertelement <16 x ptr> %1147, ptr %scevgep2187, i64 10
  %1149 = insertelement <16 x ptr> %1148, ptr %scevgep2188, i64 11
  %1150 = insertelement <16 x ptr> %1149, ptr %scevgep2189, i64 12
  %1151 = insertelement <16 x ptr> %1150, ptr %scevgep2190, i64 13
  %1152 = insertelement <16 x ptr> %1151, ptr %scevgep2191, i64 14
  %1153 = insertelement <16 x ptr> %1152, ptr %scevgep2192, i64 15
  %1154 = icmp ult <16 x ptr> %1137, %1153
  %1155 = insertelement <16 x ptr> poison, ptr %923, i64 0
  %1156 = insertelement <16 x ptr> %1155, ptr %925, i64 1
  %1157 = insertelement <16 x ptr> %1156, ptr %939, i64 2
  %1158 = insertelement <16 x ptr> %1157, ptr %941, i64 3
  %1159 = insertelement <16 x ptr> %1158, ptr %927, i64 4
  %1160 = insertelement <16 x ptr> %1159, ptr %929, i64 5
  %1161 = insertelement <16 x ptr> %1160, ptr %905, i64 6
  %1162 = insertelement <16 x ptr> %1161, ptr %919, i64 7
  %1163 = insertelement <16 x ptr> %1162, ptr %907, i64 8
  %1164 = insertelement <16 x ptr> %1163, ptr %921, i64 9
  %1165 = insertelement <16 x ptr> %1164, ptr %909, i64 10
  %1166 = insertelement <16 x ptr> %1165, ptr %931, i64 11
  %1167 = insertelement <16 x ptr> %1166, ptr %911, i64 12
  %1168 = insertelement <16 x ptr> %1167, ptr %933, i64 13
  %1169 = insertelement <16 x ptr> %1168, ptr %913, i64 14
  %1170 = insertelement <16 x ptr> %1169, ptr %935, i64 15
  %1171 = insertelement <16 x ptr> poison, ptr %scevgep2181, i64 0
  %1172 = insertelement <16 x ptr> %1171, ptr %scevgep2182, i64 1
  %1173 = shufflevector <16 x ptr> %1172, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1174 = icmp ult <16 x ptr> %1170, %1173
  %1175 = and <16 x i1> %1154, %1174
  %1176 = insertelement <16 x ptr> poison, ptr %901, i64 0
  %1177 = insertelement <16 x ptr> %1176, ptr %905, i64 1
  %1178 = shufflevector <16 x ptr> %1177, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1179 = insertelement <16 x ptr> poison, ptr %scevgep2193, i64 0
  %1180 = insertelement <16 x ptr> %1179, ptr %scevgep2194, i64 1
  %1181 = insertelement <16 x ptr> %1180, ptr %scevgep2195, i64 2
  %1182 = insertelement <16 x ptr> %1181, ptr %scevgep2196, i64 3
  %1183 = insertelement <16 x ptr> %1182, ptr %scevgep2197, i64 4
  %1184 = insertelement <16 x ptr> %1183, ptr %scevgep2198, i64 5
  %1185 = insertelement <16 x ptr> %1184, ptr %scevgep2199, i64 6
  %1186 = insertelement <16 x ptr> %1185, ptr %scevgep2200, i64 7
  %1187 = insertelement <16 x ptr> %1186, ptr %scevgep2201, i64 8
  %1188 = insertelement <16 x ptr> %1187, ptr %scevgep2184, i64 9
  %1189 = insertelement <16 x ptr> %1188, ptr %scevgep2185, i64 10
  %1190 = insertelement <16 x ptr> %1189, ptr %scevgep2186, i64 11
  %1191 = insertelement <16 x ptr> %1190, ptr %scevgep2187, i64 12
  %1192 = insertelement <16 x ptr> %1191, ptr %scevgep2188, i64 13
  %1193 = insertelement <16 x ptr> %1192, ptr %scevgep2189, i64 14
  %1194 = insertelement <16 x ptr> %1193, ptr %scevgep2190, i64 15
  %1195 = icmp ult <16 x ptr> %1178, %1194
  %1196 = insertelement <16 x ptr> poison, ptr %915, i64 0
  %1197 = insertelement <16 x ptr> %1196, ptr %937, i64 1
  %1198 = insertelement <16 x ptr> %1197, ptr %917, i64 2
  %1199 = insertelement <16 x ptr> %1198, ptr %923, i64 3
  %1200 = insertelement <16 x ptr> %1199, ptr %925, i64 4
  %1201 = insertelement <16 x ptr> %1200, ptr %939, i64 5
  %1202 = insertelement <16 x ptr> %1201, ptr %941, i64 6
  %1203 = insertelement <16 x ptr> %1202, ptr %927, i64 7
  %1204 = insertelement <16 x ptr> %1203, ptr %929, i64 8
  %1205 = insertelement <16 x ptr> %1204, ptr %919, i64 9
  %1206 = insertelement <16 x ptr> %1205, ptr %907, i64 10
  %1207 = insertelement <16 x ptr> %1206, ptr %921, i64 11
  %1208 = insertelement <16 x ptr> %1207, ptr %909, i64 12
  %1209 = insertelement <16 x ptr> %1208, ptr %931, i64 13
  %1210 = insertelement <16 x ptr> %1209, ptr %911, i64 14
  %1211 = insertelement <16 x ptr> %1210, ptr %933, i64 15
  %1212 = insertelement <16 x ptr> poison, ptr %scevgep2182, i64 0
  %1213 = insertelement <16 x ptr> %1212, ptr %scevgep2183, i64 1
  %1214 = shufflevector <16 x ptr> %1213, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1215 = icmp ult <16 x ptr> %1211, %1214
  %1216 = and <16 x i1> %1195, %1215
  %1217 = insertelement <8 x ptr> poison, ptr %905, i64 0
  %1218 = shufflevector <8 x ptr> %1217, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1219 = insertelement <8 x ptr> poison, ptr %scevgep2191, i64 0
  %1220 = insertelement <8 x ptr> %1219, ptr %scevgep2192, i64 1
  %1221 = insertelement <8 x ptr> %1220, ptr %scevgep2193, i64 2
  %1222 = insertelement <8 x ptr> %1221, ptr %scevgep2194, i64 3
  %1223 = insertelement <8 x ptr> %1222, ptr %scevgep2195, i64 4
  %1224 = insertelement <8 x ptr> %1223, ptr %scevgep2196, i64 5
  %1225 = insertelement <8 x ptr> %1224, ptr %scevgep2197, i64 6
  %1226 = insertelement <8 x ptr> %1225, ptr %scevgep2198, i64 7
  %1227 = icmp ult <8 x ptr> %1218, %1226
  %1228 = insertelement <8 x ptr> poison, ptr %913, i64 0
  %1229 = insertelement <8 x ptr> %1228, ptr %935, i64 1
  %1230 = insertelement <8 x ptr> %1229, ptr %915, i64 2
  %1231 = insertelement <8 x ptr> %1230, ptr %937, i64 3
  %1232 = insertelement <8 x ptr> %1231, ptr %917, i64 4
  %1233 = insertelement <8 x ptr> %1232, ptr %923, i64 5
  %1234 = insertelement <8 x ptr> %1233, ptr %925, i64 6
  %1235 = insertelement <8 x ptr> %1234, ptr %939, i64 7
  %1236 = insertelement <8 x ptr> poison, ptr %scevgep2183, i64 0
  %1237 = shufflevector <8 x ptr> %1236, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1238 = icmp ult <8 x ptr> %1235, %1237
  %1239 = and <8 x i1> %1227, %1238
  %bound02681 = icmp ult ptr %905, %scevgep2199
  %bound12682 = icmp ult ptr %941, %scevgep2183
  %found.conflict2683 = and i1 %bound02681, %bound12682
  %bound02685 = icmp ult ptr %905, %scevgep2200
  %bound12686 = icmp ult ptr %927, %scevgep2183
  %found.conflict2687 = and i1 %bound02685, %bound12686
  %bound02689 = icmp ult ptr %905, %scevgep2201
  %bound12690 = icmp ult ptr %929, %scevgep2183
  %found.conflict2691 = and i1 %bound02689, %bound12690
  %1240 = or <16 x i1> %980, %1019
  %1241 = or <16 x i1> %1240, %1056
  %1242 = or <16 x i1> %1241, %1095
  %1243 = or <16 x i1> %1242, %1134
  %1244 = or <16 x i1> %1243, %1175
  %1245 = or <16 x i1> %1244, %1216
  %1246 = bitcast <16 x i1> %1245 to i16
  %op.rdx3051 = icmp ne i16 %1246, 0
  %1247 = bitcast <8 x i1> %1239 to i8
  %1248 = icmp ne i8 %1247, 0
  %op.rdx3052 = or i1 %op.rdx3051, %1248
  %op.rdx3053 = or i1 %op.rdx3052, %found.conflict2683
  %op.rdx3054 = or i1 %found.conflict2687, %found.conflict2691
  %op.rdx3055 = or i1 %op.rdx3053, %op.rdx3054
  br i1 %op.rdx3055, label %.lr.ph1451.preheader3075, label %vector.body2700

vector.body2700:                                  ; preds = %vector.memcheck2177, %vector.body2700
  %index2701 = phi i64 [ %index.next2774, %vector.body2700 ], [ 0, %vector.memcheck2177 ]
  %1249 = getelementptr inbounds double, ptr %919, i64 %index2701
  %wide.load2702 = load <2 x double>, ptr %1249, align 8, !tbaa !23, !alias.scope !66
  %1250 = getelementptr inbounds double, ptr %907, i64 %index2701
  %wide.load2703 = load <2 x double>, ptr %1250, align 8, !tbaa !23, !alias.scope !69
  %1251 = getelementptr inbounds double, ptr %921, i64 %index2701
  %wide.load2704 = load <2 x double>, ptr %1251, align 8, !tbaa !23, !alias.scope !71
  %1252 = getelementptr inbounds double, ptr %909, i64 %index2701
  %wide.load2705 = load <2 x double>, ptr %1252, align 8, !tbaa !23, !alias.scope !73
  %1253 = fneg <2 x double> %wide.load2704
  %1254 = fmul <2 x double> %wide.load2705, %1253
  %1255 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2702, <2 x double> %wide.load2703, <2 x double> %1254)
  %1256 = getelementptr inbounds double, ptr %931, i64 %index2701
  %wide.load2706 = load <2 x double>, ptr %1256, align 8, !tbaa !23, !alias.scope !75
  %1257 = getelementptr inbounds double, ptr %911, i64 %index2701
  %wide.load2707 = load <2 x double>, ptr %1257, align 8, !tbaa !23, !alias.scope !77
  %1258 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2706, <2 x double> %wide.load2707, <2 x double> %1255)
  %1259 = getelementptr inbounds double, ptr %933, i64 %index2701
  %wide.load2708 = load <2 x double>, ptr %1259, align 8, !tbaa !23, !alias.scope !79
  %1260 = getelementptr inbounds double, ptr %913, i64 %index2701
  %wide.load2709 = load <2 x double>, ptr %1260, align 8, !tbaa !23, !alias.scope !81
  %1261 = fneg <2 x double> %wide.load2708
  %1262 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1261, <2 x double> %wide.load2709, <2 x double> %1258)
  %1263 = getelementptr inbounds double, ptr %935, i64 %index2701
  %wide.load2710 = load <2 x double>, ptr %1263, align 8, !tbaa !23, !alias.scope !83
  %1264 = getelementptr inbounds double, ptr %915, i64 %index2701
  %wide.load2711 = load <2 x double>, ptr %1264, align 8, !tbaa !23, !alias.scope !85
  %1265 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2710, <2 x double> %wide.load2711, <2 x double> %1262)
  %1266 = getelementptr inbounds double, ptr %937, i64 %index2701
  %wide.load2712 = load <2 x double>, ptr %1266, align 8, !tbaa !23, !alias.scope !87
  %1267 = getelementptr inbounds double, ptr %917, i64 %index2701
  %wide.load2713 = load <2 x double>, ptr %1267, align 8, !tbaa !23, !alias.scope !89
  %1268 = fneg <2 x double> %wide.load2712
  %1269 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1268, <2 x double> %wide.load2713, <2 x double> %1265)
  %1270 = fmul <2 x double> %1269, <double 2.000000e+00, double 2.000000e+00>
  %1271 = getelementptr inbounds double, ptr %895, i64 %index2701
  store <2 x double> %1270, ptr %1271, align 8, !tbaa !23, !alias.scope !91, !noalias !93
  %wide.load2714 = load <2 x double>, ptr %1256, align 8, !tbaa !23, !alias.scope !75
  %wide.load2715 = load <2 x double>, ptr %1250, align 8, !tbaa !23, !alias.scope !69
  %wide.load2716 = load <2 x double>, ptr %1259, align 8, !tbaa !23, !alias.scope !79
  %wide.load2717 = load <2 x double>, ptr %1252, align 8, !tbaa !23, !alias.scope !73
  %1272 = fneg <2 x double> %wide.load2716
  %1273 = fmul <2 x double> %wide.load2717, %1272
  %1274 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2714, <2 x double> %wide.load2715, <2 x double> %1273)
  %1275 = getelementptr inbounds double, ptr %923, i64 %index2701
  %wide.load2718 = load <2 x double>, ptr %1275, align 8, !tbaa !23, !alias.scope !105
  %wide.load2719 = load <2 x double>, ptr %1257, align 8, !tbaa !23, !alias.scope !77
  %1276 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2718, <2 x double> %wide.load2719, <2 x double> %1274)
  %1277 = getelementptr inbounds double, ptr %925, i64 %index2701
  %wide.load2720 = load <2 x double>, ptr %1277, align 8, !tbaa !23, !alias.scope !106
  %wide.load2721 = load <2 x double>, ptr %1260, align 8, !tbaa !23, !alias.scope !81
  %1278 = fneg <2 x double> %wide.load2720
  %1279 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1278, <2 x double> %wide.load2721, <2 x double> %1276)
  %1280 = getelementptr inbounds double, ptr %939, i64 %index2701
  %wide.load2722 = load <2 x double>, ptr %1280, align 8, !tbaa !23, !alias.scope !107
  %wide.load2723 = load <2 x double>, ptr %1264, align 8, !tbaa !23, !alias.scope !85
  %1281 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2722, <2 x double> %wide.load2723, <2 x double> %1279)
  %1282 = getelementptr inbounds double, ptr %941, i64 %index2701
  %wide.load2724 = load <2 x double>, ptr %1282, align 8, !tbaa !23, !alias.scope !108
  %wide.load2725 = load <2 x double>, ptr %1267, align 8, !tbaa !23, !alias.scope !89
  %1283 = fneg <2 x double> %wide.load2724
  %1284 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1283, <2 x double> %wide.load2725, <2 x double> %1281)
  %1285 = fmul <2 x double> %1284, <double 2.000000e+00, double 2.000000e+00>
  %1286 = getelementptr inbounds double, ptr %899, i64 %index2701
  store <2 x double> %1285, ptr %1286, align 8, !tbaa !23, !alias.scope !109, !noalias !110
  %wide.load2726 = load <2 x double>, ptr %1263, align 8, !tbaa !23, !alias.scope !83
  %wide.load2727 = load <2 x double>, ptr %1250, align 8, !tbaa !23, !alias.scope !69
  %wide.load2728 = load <2 x double>, ptr %1266, align 8, !tbaa !23, !alias.scope !87
  %wide.load2729 = load <2 x double>, ptr %1252, align 8, !tbaa !23, !alias.scope !73
  %1287 = fneg <2 x double> %wide.load2728
  %1288 = fmul <2 x double> %wide.load2729, %1287
  %1289 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2726, <2 x double> %wide.load2727, <2 x double> %1288)
  %wide.load2730 = load <2 x double>, ptr %1280, align 8, !tbaa !23, !alias.scope !107
  %wide.load2731 = load <2 x double>, ptr %1257, align 8, !tbaa !23, !alias.scope !77
  %1290 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2730, <2 x double> %wide.load2731, <2 x double> %1289)
  %wide.load2732 = load <2 x double>, ptr %1282, align 8, !tbaa !23, !alias.scope !108
  %wide.load2733 = load <2 x double>, ptr %1260, align 8, !tbaa !23, !alias.scope !81
  %1291 = fneg <2 x double> %wide.load2732
  %1292 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1291, <2 x double> %wide.load2733, <2 x double> %1290)
  %1293 = getelementptr inbounds double, ptr %927, i64 %index2701
  %wide.load2734 = load <2 x double>, ptr %1293, align 8, !tbaa !23, !alias.scope !111
  %wide.load2735 = load <2 x double>, ptr %1264, align 8, !tbaa !23, !alias.scope !85
  %1294 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2734, <2 x double> %wide.load2735, <2 x double> %1292)
  %1295 = getelementptr inbounds double, ptr %929, i64 %index2701
  %wide.load2736 = load <2 x double>, ptr %1295, align 8, !tbaa !23, !alias.scope !112
  %wide.load2737 = load <2 x double>, ptr %1267, align 8, !tbaa !23, !alias.scope !89
  %1296 = fneg <2 x double> %wide.load2736
  %1297 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1296, <2 x double> %wide.load2737, <2 x double> %1294)
  %1298 = fmul <2 x double> %1297, <double 2.000000e+00, double 2.000000e+00>
  %1299 = getelementptr inbounds double, ptr %903, i64 %index2701
  store <2 x double> %1298, ptr %1299, align 8, !tbaa !23, !alias.scope !113, !noalias !114
  %wide.load2738 = load <2 x double>, ptr %1251, align 8, !tbaa !23, !alias.scope !71
  %wide.load2739 = load <2 x double>, ptr %1250, align 8, !tbaa !23, !alias.scope !69
  %wide.load2740 = load <2 x double>, ptr %1249, align 8, !tbaa !23, !alias.scope !66
  %wide.load2741 = load <2 x double>, ptr %1252, align 8, !tbaa !23, !alias.scope !73
  %1300 = fmul <2 x double> %wide.load2740, %wide.load2741
  %1301 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2738, <2 x double> %wide.load2739, <2 x double> %1300)
  %wide.load2742 = load <2 x double>, ptr %1259, align 8, !tbaa !23, !alias.scope !79
  %wide.load2743 = load <2 x double>, ptr %1257, align 8, !tbaa !23, !alias.scope !77
  %1302 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2742, <2 x double> %wide.load2743, <2 x double> %1301)
  %wide.load2744 = load <2 x double>, ptr %1256, align 8, !tbaa !23, !alias.scope !75
  %wide.load2745 = load <2 x double>, ptr %1260, align 8, !tbaa !23, !alias.scope !81
  %1303 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2744, <2 x double> %wide.load2745, <2 x double> %1302)
  %wide.load2746 = load <2 x double>, ptr %1266, align 8, !tbaa !23, !alias.scope !87
  %wide.load2747 = load <2 x double>, ptr %1264, align 8, !tbaa !23, !alias.scope !85
  %1304 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2746, <2 x double> %wide.load2747, <2 x double> %1303)
  %wide.load2748 = load <2 x double>, ptr %1263, align 8, !tbaa !23, !alias.scope !83
  %wide.load2749 = load <2 x double>, ptr %1267, align 8, !tbaa !23, !alias.scope !89
  %1305 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2748, <2 x double> %wide.load2749, <2 x double> %1304)
  %1306 = fmul <2 x double> %1305, <double 2.000000e+00, double 2.000000e+00>
  %1307 = getelementptr inbounds double, ptr %897, i64 %index2701
  store <2 x double> %1306, ptr %1307, align 8, !tbaa !23, !alias.scope !115, !noalias !116
  %wide.load2750 = load <2 x double>, ptr %1259, align 8, !tbaa !23, !alias.scope !79
  %wide.load2751 = load <2 x double>, ptr %1250, align 8, !tbaa !23, !alias.scope !69
  %wide.load2752 = load <2 x double>, ptr %1256, align 8, !tbaa !23, !alias.scope !75
  %wide.load2753 = load <2 x double>, ptr %1252, align 8, !tbaa !23, !alias.scope !73
  %1308 = fmul <2 x double> %wide.load2752, %wide.load2753
  %1309 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2750, <2 x double> %wide.load2751, <2 x double> %1308)
  %wide.load2754 = load <2 x double>, ptr %1277, align 8, !tbaa !23, !alias.scope !106
  %wide.load2755 = load <2 x double>, ptr %1257, align 8, !tbaa !23, !alias.scope !77
  %1310 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2754, <2 x double> %wide.load2755, <2 x double> %1309)
  %wide.load2756 = load <2 x double>, ptr %1275, align 8, !tbaa !23, !alias.scope !105
  %wide.load2757 = load <2 x double>, ptr %1260, align 8, !tbaa !23, !alias.scope !81
  %1311 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2756, <2 x double> %wide.load2757, <2 x double> %1310)
  %wide.load2758 = load <2 x double>, ptr %1282, align 8, !tbaa !23, !alias.scope !108
  %wide.load2759 = load <2 x double>, ptr %1264, align 8, !tbaa !23, !alias.scope !85
  %1312 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2758, <2 x double> %wide.load2759, <2 x double> %1311)
  %wide.load2760 = load <2 x double>, ptr %1280, align 8, !tbaa !23, !alias.scope !107
  %wide.load2761 = load <2 x double>, ptr %1267, align 8, !tbaa !23, !alias.scope !89
  %1313 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2760, <2 x double> %wide.load2761, <2 x double> %1312)
  %1314 = fmul <2 x double> %1313, <double 2.000000e+00, double 2.000000e+00>
  %1315 = getelementptr inbounds double, ptr %901, i64 %index2701
  store <2 x double> %1314, ptr %1315, align 8, !tbaa !23, !alias.scope !117, !noalias !118
  %wide.load2762 = load <2 x double>, ptr %1266, align 8, !tbaa !23, !alias.scope !87
  %wide.load2763 = load <2 x double>, ptr %1250, align 8, !tbaa !23, !alias.scope !69
  %wide.load2764 = load <2 x double>, ptr %1263, align 8, !tbaa !23, !alias.scope !83
  %wide.load2765 = load <2 x double>, ptr %1252, align 8, !tbaa !23, !alias.scope !73
  %1316 = fmul <2 x double> %wide.load2764, %wide.load2765
  %1317 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2762, <2 x double> %wide.load2763, <2 x double> %1316)
  %wide.load2766 = load <2 x double>, ptr %1282, align 8, !tbaa !23, !alias.scope !108
  %wide.load2767 = load <2 x double>, ptr %1257, align 8, !tbaa !23, !alias.scope !77
  %1318 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2766, <2 x double> %wide.load2767, <2 x double> %1317)
  %wide.load2768 = load <2 x double>, ptr %1280, align 8, !tbaa !23, !alias.scope !107
  %wide.load2769 = load <2 x double>, ptr %1260, align 8, !tbaa !23, !alias.scope !81
  %1319 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2768, <2 x double> %wide.load2769, <2 x double> %1318)
  %wide.load2770 = load <2 x double>, ptr %1295, align 8, !tbaa !23, !alias.scope !112
  %wide.load2771 = load <2 x double>, ptr %1264, align 8, !tbaa !23, !alias.scope !85
  %1320 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2770, <2 x double> %wide.load2771, <2 x double> %1319)
  %wide.load2772 = load <2 x double>, ptr %1293, align 8, !tbaa !23, !alias.scope !111
  %wide.load2773 = load <2 x double>, ptr %1267, align 8, !tbaa !23, !alias.scope !89
  %1321 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2772, <2 x double> %wide.load2773, <2 x double> %1320)
  %1322 = fmul <2 x double> %1321, <double 2.000000e+00, double 2.000000e+00>
  %1323 = getelementptr inbounds double, ptr %905, i64 %index2701
  store <2 x double> %1322, ptr %1323, align 8, !tbaa !23, !alias.scope !119, !noalias !120
  %index.next2774 = add nuw i64 %index2701, 2
  %1324 = icmp eq i64 %index.next2774, %n.vec2698
  br i1 %1324, label %middle.block2693, label %vector.body2700, !llvm.loop !121

middle.block2693:                                 ; preds = %vector.body2700
  br i1 %cmp.n2775, label %._crit_edge1452, label %.lr.ph1451.preheader3075

._crit_edge1452:                                  ; preds = %.lr.ph1451, %middle.block2693, %893
  %1325 = add nuw nsw i32 %.014001453, 1
  %exitcond1512.not = icmp eq i32 %1325, %889
  br i1 %exitcond1512.not, label %.loopexit, label %893, !llvm.loop !122

.lr.ph1451:                                       ; preds = %.lr.ph1451.preheader3075, %.lr.ph1451
  %indvars.iv1507 = phi i64 [ %indvars.iv.next1508, %.lr.ph1451 ], [ %indvars.iv1507.ph, %.lr.ph1451.preheader3075 ]
  %1326 = getelementptr inbounds double, ptr %919, i64 %indvars.iv1507
  %1327 = load double, ptr %1326, align 8, !tbaa !23
  %1328 = getelementptr inbounds double, ptr %907, i64 %indvars.iv1507
  %1329 = load double, ptr %1328, align 8, !tbaa !23
  %1330 = getelementptr inbounds double, ptr %921, i64 %indvars.iv1507
  %1331 = load double, ptr %1330, align 8, !tbaa !23
  %1332 = getelementptr inbounds double, ptr %909, i64 %indvars.iv1507
  %1333 = load double, ptr %1332, align 8, !tbaa !23
  %1334 = fneg double %1331
  %1335 = fmul double %1333, %1334
  %1336 = call double @llvm.fmuladd.f64(double %1327, double %1329, double %1335)
  %1337 = getelementptr inbounds double, ptr %931, i64 %indvars.iv1507
  %1338 = load double, ptr %1337, align 8, !tbaa !23
  %1339 = getelementptr inbounds double, ptr %911, i64 %indvars.iv1507
  %1340 = load double, ptr %1339, align 8, !tbaa !23
  %1341 = call double @llvm.fmuladd.f64(double %1338, double %1340, double %1336)
  %1342 = getelementptr inbounds double, ptr %933, i64 %indvars.iv1507
  %1343 = load double, ptr %1342, align 8, !tbaa !23
  %1344 = getelementptr inbounds double, ptr %913, i64 %indvars.iv1507
  %1345 = load double, ptr %1344, align 8, !tbaa !23
  %1346 = fneg double %1343
  %1347 = call double @llvm.fmuladd.f64(double %1346, double %1345, double %1341)
  %1348 = getelementptr inbounds double, ptr %935, i64 %indvars.iv1507
  %1349 = load double, ptr %1348, align 8, !tbaa !23
  %1350 = getelementptr inbounds double, ptr %915, i64 %indvars.iv1507
  %1351 = load double, ptr %1350, align 8, !tbaa !23
  %1352 = call double @llvm.fmuladd.f64(double %1349, double %1351, double %1347)
  %1353 = getelementptr inbounds double, ptr %937, i64 %indvars.iv1507
  %1354 = load double, ptr %1353, align 8, !tbaa !23
  %1355 = getelementptr inbounds double, ptr %917, i64 %indvars.iv1507
  %1356 = load double, ptr %1355, align 8, !tbaa !23
  %1357 = fneg double %1354
  %1358 = call double @llvm.fmuladd.f64(double %1357, double %1356, double %1352)
  %1359 = fmul double %1358, 2.000000e+00
  %1360 = getelementptr inbounds double, ptr %895, i64 %indvars.iv1507
  store double %1359, ptr %1360, align 8, !tbaa !23
  %1361 = load double, ptr %1337, align 8, !tbaa !23
  %1362 = load double, ptr %1328, align 8, !tbaa !23
  %1363 = load double, ptr %1342, align 8, !tbaa !23
  %1364 = load double, ptr %1332, align 8, !tbaa !23
  %1365 = fneg double %1363
  %1366 = fmul double %1364, %1365
  %1367 = call double @llvm.fmuladd.f64(double %1361, double %1362, double %1366)
  %1368 = getelementptr inbounds double, ptr %923, i64 %indvars.iv1507
  %1369 = load double, ptr %1368, align 8, !tbaa !23
  %1370 = load double, ptr %1339, align 8, !tbaa !23
  %1371 = call double @llvm.fmuladd.f64(double %1369, double %1370, double %1367)
  %1372 = getelementptr inbounds double, ptr %925, i64 %indvars.iv1507
  %1373 = load double, ptr %1372, align 8, !tbaa !23
  %1374 = load double, ptr %1344, align 8, !tbaa !23
  %1375 = fneg double %1373
  %1376 = call double @llvm.fmuladd.f64(double %1375, double %1374, double %1371)
  %1377 = getelementptr inbounds double, ptr %939, i64 %indvars.iv1507
  %1378 = load double, ptr %1377, align 8, !tbaa !23
  %1379 = load double, ptr %1350, align 8, !tbaa !23
  %1380 = call double @llvm.fmuladd.f64(double %1378, double %1379, double %1376)
  %1381 = getelementptr inbounds double, ptr %941, i64 %indvars.iv1507
  %1382 = load double, ptr %1381, align 8, !tbaa !23
  %1383 = load double, ptr %1355, align 8, !tbaa !23
  %1384 = fneg double %1382
  %1385 = call double @llvm.fmuladd.f64(double %1384, double %1383, double %1380)
  %1386 = fmul double %1385, 2.000000e+00
  %1387 = getelementptr inbounds double, ptr %899, i64 %indvars.iv1507
  store double %1386, ptr %1387, align 8, !tbaa !23
  %1388 = load double, ptr %1348, align 8, !tbaa !23
  %1389 = load double, ptr %1328, align 8, !tbaa !23
  %1390 = load double, ptr %1353, align 8, !tbaa !23
  %1391 = load double, ptr %1332, align 8, !tbaa !23
  %1392 = fneg double %1390
  %1393 = fmul double %1391, %1392
  %1394 = call double @llvm.fmuladd.f64(double %1388, double %1389, double %1393)
  %1395 = load double, ptr %1377, align 8, !tbaa !23
  %1396 = load double, ptr %1339, align 8, !tbaa !23
  %1397 = call double @llvm.fmuladd.f64(double %1395, double %1396, double %1394)
  %1398 = load double, ptr %1381, align 8, !tbaa !23
  %1399 = load double, ptr %1344, align 8, !tbaa !23
  %1400 = fneg double %1398
  %1401 = call double @llvm.fmuladd.f64(double %1400, double %1399, double %1397)
  %1402 = getelementptr inbounds double, ptr %927, i64 %indvars.iv1507
  %1403 = load double, ptr %1402, align 8, !tbaa !23
  %1404 = load double, ptr %1350, align 8, !tbaa !23
  %1405 = call double @llvm.fmuladd.f64(double %1403, double %1404, double %1401)
  %1406 = getelementptr inbounds double, ptr %929, i64 %indvars.iv1507
  %1407 = load double, ptr %1406, align 8, !tbaa !23
  %1408 = load double, ptr %1355, align 8, !tbaa !23
  %1409 = fneg double %1407
  %1410 = call double @llvm.fmuladd.f64(double %1409, double %1408, double %1405)
  %1411 = fmul double %1410, 2.000000e+00
  %1412 = getelementptr inbounds double, ptr %903, i64 %indvars.iv1507
  store double %1411, ptr %1412, align 8, !tbaa !23
  %1413 = load double, ptr %1330, align 8, !tbaa !23
  %1414 = load double, ptr %1328, align 8, !tbaa !23
  %1415 = load double, ptr %1326, align 8, !tbaa !23
  %1416 = load double, ptr %1332, align 8, !tbaa !23
  %1417 = fmul double %1415, %1416
  %1418 = call double @llvm.fmuladd.f64(double %1413, double %1414, double %1417)
  %1419 = load double, ptr %1342, align 8, !tbaa !23
  %1420 = load double, ptr %1339, align 8, !tbaa !23
  %1421 = call double @llvm.fmuladd.f64(double %1419, double %1420, double %1418)
  %1422 = load double, ptr %1337, align 8, !tbaa !23
  %1423 = load double, ptr %1344, align 8, !tbaa !23
  %1424 = call double @llvm.fmuladd.f64(double %1422, double %1423, double %1421)
  %1425 = load double, ptr %1353, align 8, !tbaa !23
  %1426 = load double, ptr %1350, align 8, !tbaa !23
  %1427 = call double @llvm.fmuladd.f64(double %1425, double %1426, double %1424)
  %1428 = load double, ptr %1348, align 8, !tbaa !23
  %1429 = load double, ptr %1355, align 8, !tbaa !23
  %1430 = call double @llvm.fmuladd.f64(double %1428, double %1429, double %1427)
  %1431 = fmul double %1430, 2.000000e+00
  %1432 = getelementptr inbounds double, ptr %897, i64 %indvars.iv1507
  store double %1431, ptr %1432, align 8, !tbaa !23
  %1433 = load double, ptr %1342, align 8, !tbaa !23
  %1434 = load double, ptr %1328, align 8, !tbaa !23
  %1435 = load double, ptr %1337, align 8, !tbaa !23
  %1436 = load double, ptr %1332, align 8, !tbaa !23
  %1437 = fmul double %1435, %1436
  %1438 = call double @llvm.fmuladd.f64(double %1433, double %1434, double %1437)
  %1439 = load double, ptr %1372, align 8, !tbaa !23
  %1440 = load double, ptr %1339, align 8, !tbaa !23
  %1441 = call double @llvm.fmuladd.f64(double %1439, double %1440, double %1438)
  %1442 = load double, ptr %1368, align 8, !tbaa !23
  %1443 = load double, ptr %1344, align 8, !tbaa !23
  %1444 = call double @llvm.fmuladd.f64(double %1442, double %1443, double %1441)
  %1445 = load double, ptr %1381, align 8, !tbaa !23
  %1446 = load double, ptr %1350, align 8, !tbaa !23
  %1447 = call double @llvm.fmuladd.f64(double %1445, double %1446, double %1444)
  %1448 = load double, ptr %1377, align 8, !tbaa !23
  %1449 = load double, ptr %1355, align 8, !tbaa !23
  %1450 = call double @llvm.fmuladd.f64(double %1448, double %1449, double %1447)
  %1451 = fmul double %1450, 2.000000e+00
  %1452 = getelementptr inbounds double, ptr %901, i64 %indvars.iv1507
  store double %1451, ptr %1452, align 8, !tbaa !23
  %1453 = load double, ptr %1353, align 8, !tbaa !23
  %1454 = load double, ptr %1328, align 8, !tbaa !23
  %1455 = load double, ptr %1348, align 8, !tbaa !23
  %1456 = load double, ptr %1332, align 8, !tbaa !23
  %1457 = fmul double %1455, %1456
  %1458 = call double @llvm.fmuladd.f64(double %1453, double %1454, double %1457)
  %1459 = load double, ptr %1381, align 8, !tbaa !23
  %1460 = load double, ptr %1339, align 8, !tbaa !23
  %1461 = call double @llvm.fmuladd.f64(double %1459, double %1460, double %1458)
  %1462 = load double, ptr %1377, align 8, !tbaa !23
  %1463 = load double, ptr %1344, align 8, !tbaa !23
  %1464 = call double @llvm.fmuladd.f64(double %1462, double %1463, double %1461)
  %1465 = load double, ptr %1406, align 8, !tbaa !23
  %1466 = load double, ptr %1350, align 8, !tbaa !23
  %1467 = call double @llvm.fmuladd.f64(double %1465, double %1466, double %1464)
  %1468 = load double, ptr %1402, align 8, !tbaa !23
  %1469 = load double, ptr %1355, align 8, !tbaa !23
  %1470 = call double @llvm.fmuladd.f64(double %1468, double %1469, double %1467)
  %1471 = fmul double %1470, 2.000000e+00
  %1472 = getelementptr inbounds double, ptr %905, i64 %indvars.iv1507
  store double %1471, ptr %1472, align 8, !tbaa !23
  %indvars.iv.next1508 = add nuw nsw i64 %indvars.iv1507, 1
  %exitcond1511.not = icmp eq i64 %indvars.iv.next1508, %wide.trip.count1510
  br i1 %exitcond1511.not, label %._crit_edge1452, label %.lr.ph1451, !llvm.loop !123

1473:                                             ; preds = %887
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %1474 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.7)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  br i1 %1474, label %.preheader1420, label %1674

.preheader1420:                                   ; preds = %1473
  %1475 = sdiv i32 %2, 2
  %1476 = icmp sgt i32 %2, 1
  br i1 %1476, label %.lr.ph1448, label %.loopexit

.lr.ph1448:                                       ; preds = %.preheader1420
  %1477 = icmp sgt i32 %23, 0
  %wide.trip.count1504 = zext i32 %23 to i64
  %1478 = shl nuw nsw i64 %wide.trip.count1504, 3
  %min.iters.check2144 = icmp ult i32 %23, 6
  %n.vec2147 = and i64 %wide.trip.count1504, 2147483646
  %cmp.n2176 = icmp eq i64 %n.vec2147, %wide.trip.count1504
  br label %1479

1479:                                             ; preds = %.lr.ph1448, %._crit_edge1446
  %.014021447 = phi i32 [ 0, %.lr.ph1448 ], [ %1614, %._crit_edge1446 ]
  %1480 = shl nuw nsw i32 %.014021447, 1
  %1481 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1480)
  %1482 = or disjoint i32 %1480, 1
  %1483 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1482)
  %1484 = mul nuw nsw i32 %.014021447, 12
  %1485 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1484)
  %1486 = or disjoint i32 %1484, 1
  %1487 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1486)
  %1488 = or disjoint i32 %1484, 2
  %1489 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1488)
  %1490 = or disjoint i32 %1484, 3
  %1491 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1490)
  %1492 = add nuw nsw i32 %1484, 4
  %1493 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1492)
  %1494 = add nuw nsw i32 %1484, 5
  %1495 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1494)
  %1496 = add nuw nsw i32 %1484, 6
  %1497 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1496)
  %1498 = add nuw nsw i32 %1484, 7
  %1499 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1498)
  %1500 = add nuw nsw i32 %1484, 8
  %1501 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1500)
  %1502 = add nuw nsw i32 %1484, 9
  %1503 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1502)
  %1504 = add nuw nsw i32 %1484, 10
  %1505 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1504)
  %1506 = add nuw nsw i32 %1484, 11
  %1507 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1506)
  br i1 %1477, label %.lr.ph1445.preheader, label %._crit_edge1446

.lr.ph1445.preheader:                             ; preds = %1479
  br i1 %min.iters.check2144, label %.lr.ph1445.preheader3077, label %vector.memcheck2028

.lr.ph1445.preheader3077:                         ; preds = %middle.block2142, %vector.memcheck2028, %.lr.ph1445.preheader
  %indvars.iv1501.ph = phi i64 [ 0, %vector.memcheck2028 ], [ 0, %.lr.ph1445.preheader ], [ %n.vec2147, %middle.block2142 ]
  br label %.lr.ph1445

vector.memcheck2028:                              ; preds = %.lr.ph1445.preheader
  %scevgep2029 = getelementptr i8, ptr %1481, i64 %1478
  %scevgep2030 = getelementptr i8, ptr %1483, i64 %1478
  %scevgep2031 = getelementptr i8, ptr %1493, i64 %1478
  %scevgep2032 = getelementptr i8, ptr %1497, i64 %1478
  %scevgep2033 = getelementptr i8, ptr %1495, i64 %1478
  %scevgep2034 = getelementptr i8, ptr %1499, i64 %1478
  %scevgep2035 = getelementptr i8, ptr %1489, i64 %1478
  %scevgep2036 = getelementptr i8, ptr %1501, i64 %1478
  %scevgep2037 = getelementptr i8, ptr %1491, i64 %1478
  %scevgep2038 = getelementptr i8, ptr %1503, i64 %1478
  %scevgep2039 = getelementptr i8, ptr %1485, i64 %1478
  %scevgep2040 = getelementptr i8, ptr %1505, i64 %1478
  %scevgep2041 = getelementptr i8, ptr %1487, i64 %1478
  %scevgep2042 = getelementptr i8, ptr %1507, i64 %1478
  %1508 = insertelement <8 x ptr> poison, ptr %1481, i64 0
  %1509 = shufflevector <8 x ptr> %1508, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1510 = insertelement <8 x ptr> poison, ptr %scevgep2030, i64 0
  %1511 = insertelement <8 x ptr> %1510, ptr %scevgep2031, i64 1
  %1512 = insertelement <8 x ptr> %1511, ptr %scevgep2032, i64 2
  %1513 = insertelement <8 x ptr> %1512, ptr %scevgep2033, i64 3
  %1514 = insertelement <8 x ptr> %1513, ptr %scevgep2034, i64 4
  %1515 = insertelement <8 x ptr> %1514, ptr %scevgep2035, i64 5
  %1516 = insertelement <8 x ptr> %1515, ptr %scevgep2036, i64 6
  %1517 = insertelement <8 x ptr> %1516, ptr %scevgep2037, i64 7
  %1518 = icmp ult <8 x ptr> %1509, %1517
  %1519 = insertelement <8 x ptr> poison, ptr %1483, i64 0
  %1520 = insertelement <8 x ptr> %1519, ptr %1493, i64 1
  %1521 = insertelement <8 x ptr> %1520, ptr %1497, i64 2
  %1522 = insertelement <8 x ptr> %1521, ptr %1495, i64 3
  %1523 = insertelement <8 x ptr> %1522, ptr %1499, i64 4
  %1524 = insertelement <8 x ptr> %1523, ptr %1489, i64 5
  %1525 = insertelement <8 x ptr> %1524, ptr %1501, i64 6
  %1526 = insertelement <8 x ptr> %1525, ptr %1491, i64 7
  %1527 = insertelement <8 x ptr> poison, ptr %scevgep2029, i64 0
  %1528 = shufflevector <8 x ptr> %1527, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1529 = icmp ult <8 x ptr> %1526, %1528
  %1530 = and <8 x i1> %1518, %1529
  %1531 = insertelement <8 x ptr> %1508, ptr %1483, i64 1
  %1532 = shufflevector <8 x ptr> %1531, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1>
  %1533 = insertelement <8 x ptr> poison, ptr %scevgep2038, i64 0
  %1534 = insertelement <8 x ptr> %1533, ptr %scevgep2039, i64 1
  %1535 = insertelement <8 x ptr> %1534, ptr %scevgep2040, i64 2
  %1536 = insertelement <8 x ptr> %1535, ptr %scevgep2041, i64 3
  %1537 = insertelement <8 x ptr> %1536, ptr %scevgep2042, i64 4
  %1538 = insertelement <8 x ptr> %1537, ptr %scevgep2031, i64 5
  %1539 = insertelement <8 x ptr> %1538, ptr %scevgep2032, i64 6
  %1540 = insertelement <8 x ptr> %1539, ptr %scevgep2033, i64 7
  %1541 = icmp ult <8 x ptr> %1532, %1540
  %1542 = insertelement <8 x ptr> poison, ptr %1503, i64 0
  %1543 = insertelement <8 x ptr> %1542, ptr %1485, i64 1
  %1544 = insertelement <8 x ptr> %1543, ptr %1505, i64 2
  %1545 = insertelement <8 x ptr> %1544, ptr %1487, i64 3
  %1546 = insertelement <8 x ptr> %1545, ptr %1507, i64 4
  %1547 = insertelement <8 x ptr> %1546, ptr %1493, i64 5
  %1548 = insertelement <8 x ptr> %1547, ptr %1497, i64 6
  %1549 = insertelement <8 x ptr> %1548, ptr %1495, i64 7
  %1550 = insertelement <8 x ptr> %1527, ptr %scevgep2030, i64 1
  %1551 = shufflevector <8 x ptr> %1550, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1>
  %1552 = icmp ult <8 x ptr> %1549, %1551
  %1553 = and <8 x i1> %1541, %1552
  %1554 = shufflevector <8 x ptr> %1519, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1555 = insertelement <8 x ptr> poison, ptr %scevgep2034, i64 0
  %1556 = insertelement <8 x ptr> %1555, ptr %scevgep2035, i64 1
  %1557 = insertelement <8 x ptr> %1556, ptr %scevgep2036, i64 2
  %1558 = insertelement <8 x ptr> %1557, ptr %scevgep2037, i64 3
  %1559 = insertelement <8 x ptr> %1558, ptr %scevgep2038, i64 4
  %1560 = insertelement <8 x ptr> %1559, ptr %scevgep2039, i64 5
  %1561 = insertelement <8 x ptr> %1560, ptr %scevgep2040, i64 6
  %1562 = insertelement <8 x ptr> %1561, ptr %scevgep2041, i64 7
  %1563 = icmp ult <8 x ptr> %1554, %1562
  %1564 = insertelement <8 x ptr> poison, ptr %1499, i64 0
  %1565 = insertelement <8 x ptr> %1564, ptr %1489, i64 1
  %1566 = insertelement <8 x ptr> %1565, ptr %1501, i64 2
  %1567 = insertelement <8 x ptr> %1566, ptr %1491, i64 3
  %1568 = insertelement <8 x ptr> %1567, ptr %1503, i64 4
  %1569 = insertelement <8 x ptr> %1568, ptr %1485, i64 5
  %1570 = insertelement <8 x ptr> %1569, ptr %1505, i64 6
  %1571 = insertelement <8 x ptr> %1570, ptr %1487, i64 7
  %1572 = shufflevector <8 x ptr> %1510, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1573 = icmp ult <8 x ptr> %1571, %1572
  %1574 = and <8 x i1> %1563, %1573
  %bound02138 = icmp ult ptr %1483, %scevgep2042
  %bound12139 = icmp ult ptr %1507, %scevgep2030
  %found.conflict2140 = and i1 %bound02138, %bound12139
  %1575 = or <8 x i1> %1530, %1553
  %1576 = or <8 x i1> %1575, %1574
  %1577 = bitcast <8 x i1> %1576 to i8
  %op.rdx3057 = icmp ne i8 %1577, 0
  %op.rdx3058 = or i1 %op.rdx3057, %found.conflict2140
  br i1 %op.rdx3058, label %.lr.ph1445.preheader3077, label %vector.body2149

vector.body2149:                                  ; preds = %vector.memcheck2028, %vector.body2149
  %index2150 = phi i64 [ %index.next2175, %vector.body2149 ], [ 0, %vector.memcheck2028 ]
  %1578 = getelementptr inbounds double, ptr %1493, i64 %index2150
  %wide.load2151 = load <2 x double>, ptr %1578, align 8, !tbaa !23, !alias.scope !124
  %1579 = getelementptr inbounds double, ptr %1497, i64 %index2150
  %wide.load2152 = load <2 x double>, ptr %1579, align 8, !tbaa !23, !alias.scope !127
  %1580 = getelementptr inbounds double, ptr %1495, i64 %index2150
  %wide.load2153 = load <2 x double>, ptr %1580, align 8, !tbaa !23, !alias.scope !129
  %1581 = getelementptr inbounds double, ptr %1499, i64 %index2150
  %wide.load2154 = load <2 x double>, ptr %1581, align 8, !tbaa !23, !alias.scope !131
  %1582 = fneg <2 x double> %wide.load2153
  %1583 = fmul <2 x double> %wide.load2154, %1582
  %1584 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2151, <2 x double> %wide.load2152, <2 x double> %1583)
  %1585 = getelementptr inbounds double, ptr %1489, i64 %index2150
  %wide.load2155 = load <2 x double>, ptr %1585, align 8, !tbaa !23, !alias.scope !133
  %1586 = getelementptr inbounds double, ptr %1501, i64 %index2150
  %wide.load2156 = load <2 x double>, ptr %1586, align 8, !tbaa !23, !alias.scope !135
  %1587 = getelementptr inbounds double, ptr %1491, i64 %index2150
  %wide.load2157 = load <2 x double>, ptr %1587, align 8, !tbaa !23, !alias.scope !137
  %1588 = getelementptr inbounds double, ptr %1503, i64 %index2150
  %wide.load2158 = load <2 x double>, ptr %1588, align 8, !tbaa !23, !alias.scope !139
  %1589 = fneg <2 x double> %wide.load2157
  %1590 = fmul <2 x double> %wide.load2158, %1589
  %1591 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2155, <2 x double> %wide.load2156, <2 x double> %1590)
  %1592 = fmul <2 x double> %1591, <double 2.000000e+00, double 2.000000e+00>
  %1593 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1584, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1592)
  %1594 = getelementptr inbounds double, ptr %1485, i64 %index2150
  %wide.load2159 = load <2 x double>, ptr %1594, align 8, !tbaa !23, !alias.scope !141
  %1595 = getelementptr inbounds double, ptr %1505, i64 %index2150
  %wide.load2160 = load <2 x double>, ptr %1595, align 8, !tbaa !23, !alias.scope !143
  %1596 = getelementptr inbounds double, ptr %1487, i64 %index2150
  %wide.load2161 = load <2 x double>, ptr %1596, align 8, !tbaa !23, !alias.scope !145
  %1597 = getelementptr inbounds double, ptr %1507, i64 %index2150
  %wide.load2162 = load <2 x double>, ptr %1597, align 8, !tbaa !23, !alias.scope !147
  %1598 = fneg <2 x double> %wide.load2161
  %1599 = fmul <2 x double> %wide.load2162, %1598
  %1600 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2159, <2 x double> %wide.load2160, <2 x double> %1599)
  %1601 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1600, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1593)
  %1602 = getelementptr inbounds double, ptr %1481, i64 %index2150
  store <2 x double> %1601, ptr %1602, align 8, !tbaa !23, !alias.scope !149, !noalias !151
  %wide.load2163 = load <2 x double>, ptr %1580, align 8, !tbaa !23, !alias.scope !129
  %wide.load2164 = load <2 x double>, ptr %1579, align 8, !tbaa !23, !alias.scope !127
  %wide.load2165 = load <2 x double>, ptr %1578, align 8, !tbaa !23, !alias.scope !124
  %wide.load2166 = load <2 x double>, ptr %1581, align 8, !tbaa !23, !alias.scope !131
  %1603 = fmul <2 x double> %wide.load2165, %wide.load2166
  %1604 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2163, <2 x double> %wide.load2164, <2 x double> %1603)
  %wide.load2167 = load <2 x double>, ptr %1587, align 8, !tbaa !23, !alias.scope !137
  %wide.load2168 = load <2 x double>, ptr %1586, align 8, !tbaa !23, !alias.scope !135
  %wide.load2169 = load <2 x double>, ptr %1585, align 8, !tbaa !23, !alias.scope !133
  %wide.load2170 = load <2 x double>, ptr %1588, align 8, !tbaa !23, !alias.scope !139
  %1605 = fmul <2 x double> %wide.load2169, %wide.load2170
  %1606 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2167, <2 x double> %wide.load2168, <2 x double> %1605)
  %1607 = fmul <2 x double> %1606, <double 2.000000e+00, double 2.000000e+00>
  %1608 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1604, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1607)
  %wide.load2171 = load <2 x double>, ptr %1596, align 8, !tbaa !23, !alias.scope !145
  %wide.load2172 = load <2 x double>, ptr %1595, align 8, !tbaa !23, !alias.scope !143
  %wide.load2173 = load <2 x double>, ptr %1594, align 8, !tbaa !23, !alias.scope !141
  %wide.load2174 = load <2 x double>, ptr %1597, align 8, !tbaa !23, !alias.scope !147
  %1609 = fmul <2 x double> %wide.load2173, %wide.load2174
  %1610 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load2171, <2 x double> %wide.load2172, <2 x double> %1609)
  %1611 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1610, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1608)
  %1612 = getelementptr inbounds double, ptr %1483, i64 %index2150
  store <2 x double> %1611, ptr %1612, align 8, !tbaa !23, !alias.scope !153, !noalias !154
  %index.next2175 = add nuw i64 %index2150, 2
  %1613 = icmp eq i64 %index.next2175, %n.vec2147
  br i1 %1613, label %middle.block2142, label %vector.body2149, !llvm.loop !155

middle.block2142:                                 ; preds = %vector.body2149
  br i1 %cmp.n2176, label %._crit_edge1446, label %.lr.ph1445.preheader3077

._crit_edge1446:                                  ; preds = %.lr.ph1445, %middle.block2142, %1479
  %1614 = add nuw nsw i32 %.014021447, 1
  %exitcond1506.not = icmp eq i32 %1614, %1475
  br i1 %exitcond1506.not, label %.loopexit, label %1479, !llvm.loop !156

.lr.ph1445:                                       ; preds = %.lr.ph1445.preheader3077, %.lr.ph1445
  %indvars.iv1501 = phi i64 [ %indvars.iv.next1502, %.lr.ph1445 ], [ %indvars.iv1501.ph, %.lr.ph1445.preheader3077 ]
  %1615 = getelementptr inbounds double, ptr %1493, i64 %indvars.iv1501
  %1616 = load double, ptr %1615, align 8, !tbaa !23
  %1617 = getelementptr inbounds double, ptr %1497, i64 %indvars.iv1501
  %1618 = load double, ptr %1617, align 8, !tbaa !23
  %1619 = getelementptr inbounds double, ptr %1495, i64 %indvars.iv1501
  %1620 = load double, ptr %1619, align 8, !tbaa !23
  %1621 = getelementptr inbounds double, ptr %1499, i64 %indvars.iv1501
  %1622 = load double, ptr %1621, align 8, !tbaa !23
  %1623 = fneg double %1620
  %1624 = fmul double %1622, %1623
  %1625 = call double @llvm.fmuladd.f64(double %1616, double %1618, double %1624)
  %1626 = getelementptr inbounds double, ptr %1489, i64 %indvars.iv1501
  %1627 = load double, ptr %1626, align 8, !tbaa !23
  %1628 = getelementptr inbounds double, ptr %1501, i64 %indvars.iv1501
  %1629 = load double, ptr %1628, align 8, !tbaa !23
  %1630 = getelementptr inbounds double, ptr %1491, i64 %indvars.iv1501
  %1631 = load double, ptr %1630, align 8, !tbaa !23
  %1632 = getelementptr inbounds double, ptr %1503, i64 %indvars.iv1501
  %1633 = load double, ptr %1632, align 8, !tbaa !23
  %1634 = fneg double %1631
  %1635 = fmul double %1633, %1634
  %1636 = call double @llvm.fmuladd.f64(double %1627, double %1629, double %1635)
  %1637 = fmul double %1636, 2.000000e+00
  %1638 = call double @llvm.fmuladd.f64(double %1625, double 2.000000e+00, double %1637)
  %1639 = getelementptr inbounds double, ptr %1485, i64 %indvars.iv1501
  %1640 = load double, ptr %1639, align 8, !tbaa !23
  %1641 = getelementptr inbounds double, ptr %1505, i64 %indvars.iv1501
  %1642 = load double, ptr %1641, align 8, !tbaa !23
  %1643 = getelementptr inbounds double, ptr %1487, i64 %indvars.iv1501
  %1644 = load double, ptr %1643, align 8, !tbaa !23
  %1645 = getelementptr inbounds double, ptr %1507, i64 %indvars.iv1501
  %1646 = load double, ptr %1645, align 8, !tbaa !23
  %1647 = fneg double %1644
  %1648 = fmul double %1646, %1647
  %1649 = call double @llvm.fmuladd.f64(double %1640, double %1642, double %1648)
  %1650 = call double @llvm.fmuladd.f64(double %1649, double 2.000000e+00, double %1638)
  %1651 = getelementptr inbounds double, ptr %1481, i64 %indvars.iv1501
  store double %1650, ptr %1651, align 8, !tbaa !23
  %1652 = load double, ptr %1619, align 8, !tbaa !23
  %1653 = load double, ptr %1617, align 8, !tbaa !23
  %1654 = load double, ptr %1615, align 8, !tbaa !23
  %1655 = load double, ptr %1621, align 8, !tbaa !23
  %1656 = fmul double %1654, %1655
  %1657 = call double @llvm.fmuladd.f64(double %1652, double %1653, double %1656)
  %1658 = load double, ptr %1630, align 8, !tbaa !23
  %1659 = load double, ptr %1628, align 8, !tbaa !23
  %1660 = load double, ptr %1626, align 8, !tbaa !23
  %1661 = load double, ptr %1632, align 8, !tbaa !23
  %1662 = fmul double %1660, %1661
  %1663 = call double @llvm.fmuladd.f64(double %1658, double %1659, double %1662)
  %1664 = fmul double %1663, 2.000000e+00
  %1665 = call double @llvm.fmuladd.f64(double %1657, double 2.000000e+00, double %1664)
  %1666 = load double, ptr %1643, align 8, !tbaa !23
  %1667 = load double, ptr %1641, align 8, !tbaa !23
  %1668 = load double, ptr %1639, align 8, !tbaa !23
  %1669 = load double, ptr %1645, align 8, !tbaa !23
  %1670 = fmul double %1668, %1669
  %1671 = call double @llvm.fmuladd.f64(double %1666, double %1667, double %1670)
  %1672 = call double @llvm.fmuladd.f64(double %1671, double 2.000000e+00, double %1665)
  %1673 = getelementptr inbounds double, ptr %1483, i64 %indvars.iv1501
  store double %1672, ptr %1673, align 8, !tbaa !23
  %indvars.iv.next1502 = add nuw nsw i64 %indvars.iv1501, 1
  %exitcond1505.not = icmp eq i64 %indvars.iv.next1502, %wide.trip.count1504
  br i1 %exitcond1505.not, label %._crit_edge1446, label %.lr.ph1445, !llvm.loop !157

1674:                                             ; preds = %1473
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %1675 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.8)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  br i1 %1675, label %.preheader1422, label %2096

.preheader1422:                                   ; preds = %1674
  %1676 = sdiv i32 %2, 6
  %1677 = icmp sgt i32 %2, 5
  br i1 %1677, label %.lr.ph1442, label %.loopexit

.lr.ph1442:                                       ; preds = %.preheader1422
  %1678 = icmp sgt i32 %23, 0
  %wide.trip.count1498 = zext i32 %23 to i64
  %1679 = shl nuw nsw i64 %wide.trip.count1498, 3
  %min.iters.check1989 = icmp ult i32 %23, 16
  %n.vec1992 = and i64 %wide.trip.count1498, 2147483646
  %cmp.n2027 = icmp eq i64 %n.vec1992, %wide.trip.count1498
  br label %1680

1680:                                             ; preds = %.lr.ph1442, %._crit_edge1440
  %.014061441 = phi i32 [ 0, %.lr.ph1442 ], [ %2013, %._crit_edge1440 ]
  %1681 = mul nuw nsw i32 %.014061441, 6
  %1682 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1681)
  %1683 = or disjoint i32 %1681, 1
  %1684 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1683)
  %1685 = add nuw nsw i32 %1681, 2
  %1686 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1685)
  %1687 = add nuw nsw i32 %1681, 3
  %1688 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1687)
  %1689 = add nuw nsw i32 %1681, 4
  %1690 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1689)
  %1691 = add nuw nsw i32 %1681, 5
  %1692 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %1691)
  %1693 = mul nuw nsw i32 %.014061441, 13
  %1694 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1693)
  %1695 = add nuw nsw i32 %1693, 1
  %1696 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1695)
  %1697 = add nuw nsw i32 %1693, 2
  %1698 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1697)
  %1699 = add nuw nsw i32 %1693, 3
  %1700 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1699)
  %1701 = add nuw nsw i32 %1693, 4
  %1702 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1701)
  %1703 = add nuw nsw i32 %1693, 5
  %1704 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1703)
  %1705 = add nuw nsw i32 %1693, 6
  %1706 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1705)
  %1707 = add nuw nsw i32 %1693, 7
  %1708 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1707)
  %1709 = add nuw nsw i32 %1693, 8
  %1710 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1709)
  %1711 = add nuw nsw i32 %1693, 9
  %1712 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1711)
  %1713 = add nuw nsw i32 %1693, 10
  %1714 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1713)
  %1715 = add nuw nsw i32 %1693, 11
  %1716 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1715)
  %1717 = add nuw nsw i32 %1693, 12
  %1718 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %1717)
  br i1 %1678, label %.lr.ph1439.preheader, label %._crit_edge1440

.lr.ph1439.preheader:                             ; preds = %1680
  br i1 %min.iters.check1989, label %.lr.ph1439.preheader3079, label %vector.memcheck1596

.lr.ph1439.preheader3079:                         ; preds = %middle.block1987, %vector.memcheck1596, %.lr.ph1439.preheader
  %indvars.iv1495.ph = phi i64 [ 0, %vector.memcheck1596 ], [ 0, %.lr.ph1439.preheader ], [ %n.vec1992, %middle.block1987 ]
  br label %.lr.ph1439

vector.memcheck1596:                              ; preds = %.lr.ph1439.preheader
  %scevgep1597 = getelementptr i8, ptr %1682, i64 %1679
  %scevgep1598 = getelementptr i8, ptr %1684, i64 %1679
  %scevgep1599 = getelementptr i8, ptr %1686, i64 %1679
  %scevgep1600 = getelementptr i8, ptr %1688, i64 %1679
  %scevgep1601 = getelementptr i8, ptr %1690, i64 %1679
  %scevgep1602 = getelementptr i8, ptr %1692, i64 %1679
  %scevgep1603 = getelementptr i8, ptr %1700, i64 %1679
  %scevgep1604 = getelementptr i8, ptr %1702, i64 %1679
  %scevgep1605 = getelementptr i8, ptr %1694, i64 %1679
  %scevgep1606 = getelementptr i8, ptr %1714, i64 %1679
  %scevgep1607 = getelementptr i8, ptr %1704, i64 %1679
  %scevgep1608 = getelementptr i8, ptr %1696, i64 %1679
  %scevgep1609 = getelementptr i8, ptr %1716, i64 %1679
  %scevgep1610 = getelementptr i8, ptr %1706, i64 %1679
  %scevgep1611 = getelementptr i8, ptr %1698, i64 %1679
  %scevgep1612 = getelementptr i8, ptr %1718, i64 %1679
  %scevgep1613 = getelementptr i8, ptr %1708, i64 %1679
  %scevgep1614 = getelementptr i8, ptr %1710, i64 %1679
  %scevgep1615 = getelementptr i8, ptr %1712, i64 %1679
  %1719 = insertelement <16 x ptr> poison, ptr %1682, i64 0
  %1720 = shufflevector <16 x ptr> %1719, <16 x ptr> poison, <16 x i32> zeroinitializer
  %1721 = insertelement <16 x ptr> poison, ptr %scevgep1598, i64 0
  %1722 = insertelement <16 x ptr> %1721, ptr %scevgep1599, i64 1
  %1723 = insertelement <16 x ptr> %1722, ptr %scevgep1600, i64 2
  %1724 = insertelement <16 x ptr> %1723, ptr %scevgep1601, i64 3
  %1725 = insertelement <16 x ptr> %1724, ptr %scevgep1602, i64 4
  %1726 = insertelement <16 x ptr> %1725, ptr %scevgep1603, i64 5
  %1727 = insertelement <16 x ptr> %1726, ptr %scevgep1604, i64 6
  %1728 = insertelement <16 x ptr> %1727, ptr %scevgep1605, i64 7
  %1729 = insertelement <16 x ptr> %1728, ptr %scevgep1606, i64 8
  %1730 = insertelement <16 x ptr> %1729, ptr %scevgep1607, i64 9
  %1731 = insertelement <16 x ptr> %1730, ptr %scevgep1608, i64 10
  %1732 = insertelement <16 x ptr> %1731, ptr %scevgep1609, i64 11
  %1733 = insertelement <16 x ptr> %1732, ptr %scevgep1610, i64 12
  %1734 = insertelement <16 x ptr> %1733, ptr %scevgep1611, i64 13
  %1735 = insertelement <16 x ptr> %1734, ptr %scevgep1612, i64 14
  %1736 = insertelement <16 x ptr> %1735, ptr %scevgep1613, i64 15
  %1737 = icmp ult <16 x ptr> %1720, %1736
  %1738 = insertelement <16 x ptr> poison, ptr %1684, i64 0
  %1739 = insertelement <16 x ptr> %1738, ptr %1686, i64 1
  %1740 = insertelement <16 x ptr> %1739, ptr %1688, i64 2
  %1741 = insertelement <16 x ptr> %1740, ptr %1690, i64 3
  %1742 = insertelement <16 x ptr> %1741, ptr %1692, i64 4
  %1743 = insertelement <16 x ptr> %1742, ptr %1700, i64 5
  %1744 = insertelement <16 x ptr> %1743, ptr %1702, i64 6
  %1745 = insertelement <16 x ptr> %1744, ptr %1694, i64 7
  %1746 = insertelement <16 x ptr> %1745, ptr %1714, i64 8
  %1747 = insertelement <16 x ptr> %1746, ptr %1704, i64 9
  %1748 = insertelement <16 x ptr> %1747, ptr %1696, i64 10
  %1749 = insertelement <16 x ptr> %1748, ptr %1716, i64 11
  %1750 = insertelement <16 x ptr> %1749, ptr %1706, i64 12
  %1751 = insertelement <16 x ptr> %1750, ptr %1698, i64 13
  %1752 = insertelement <16 x ptr> %1751, ptr %1718, i64 14
  %1753 = insertelement <16 x ptr> %1752, ptr %1708, i64 15
  %1754 = insertelement <16 x ptr> poison, ptr %scevgep1597, i64 0
  %1755 = shufflevector <16 x ptr> %1754, <16 x ptr> poison, <16 x i32> zeroinitializer
  %1756 = icmp ult <16 x ptr> %1753, %1755
  %1757 = and <16 x i1> %1737, %1756
  %1758 = insertelement <16 x ptr> %1719, ptr %1684, i64 1
  %1759 = shufflevector <16 x ptr> %1758, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1760 = insertelement <16 x ptr> poison, ptr %scevgep1614, i64 0
  %1761 = insertelement <16 x ptr> %1760, ptr %scevgep1615, i64 1
  %1762 = insertelement <16 x ptr> %1761, ptr %scevgep1599, i64 2
  %1763 = insertelement <16 x ptr> %1762, ptr %scevgep1600, i64 3
  %1764 = insertelement <16 x ptr> %1763, ptr %scevgep1601, i64 4
  %1765 = insertelement <16 x ptr> %1764, ptr %scevgep1602, i64 5
  %1766 = insertelement <16 x ptr> %1765, ptr %scevgep1603, i64 6
  %1767 = insertelement <16 x ptr> %1766, ptr %scevgep1604, i64 7
  %1768 = insertelement <16 x ptr> %1767, ptr %scevgep1605, i64 8
  %1769 = insertelement <16 x ptr> %1768, ptr %scevgep1606, i64 9
  %1770 = insertelement <16 x ptr> %1769, ptr %scevgep1607, i64 10
  %1771 = insertelement <16 x ptr> %1770, ptr %scevgep1608, i64 11
  %1772 = insertelement <16 x ptr> %1771, ptr %scevgep1609, i64 12
  %1773 = insertelement <16 x ptr> %1772, ptr %scevgep1610, i64 13
  %1774 = insertelement <16 x ptr> %1773, ptr %scevgep1611, i64 14
  %1775 = insertelement <16 x ptr> %1774, ptr %scevgep1612, i64 15
  %1776 = icmp ult <16 x ptr> %1759, %1775
  %1777 = insertelement <16 x ptr> poison, ptr %1710, i64 0
  %1778 = insertelement <16 x ptr> %1777, ptr %1712, i64 1
  %1779 = insertelement <16 x ptr> %1778, ptr %1686, i64 2
  %1780 = insertelement <16 x ptr> %1779, ptr %1688, i64 3
  %1781 = insertelement <16 x ptr> %1780, ptr %1690, i64 4
  %1782 = insertelement <16 x ptr> %1781, ptr %1692, i64 5
  %1783 = insertelement <16 x ptr> %1782, ptr %1700, i64 6
  %1784 = insertelement <16 x ptr> %1783, ptr %1702, i64 7
  %1785 = insertelement <16 x ptr> %1784, ptr %1694, i64 8
  %1786 = insertelement <16 x ptr> %1785, ptr %1714, i64 9
  %1787 = insertelement <16 x ptr> %1786, ptr %1704, i64 10
  %1788 = insertelement <16 x ptr> %1787, ptr %1696, i64 11
  %1789 = insertelement <16 x ptr> %1788, ptr %1716, i64 12
  %1790 = insertelement <16 x ptr> %1789, ptr %1706, i64 13
  %1791 = insertelement <16 x ptr> %1790, ptr %1698, i64 14
  %1792 = insertelement <16 x ptr> %1791, ptr %1718, i64 15
  %1793 = insertelement <16 x ptr> %1754, ptr %scevgep1598, i64 1
  %1794 = shufflevector <16 x ptr> %1793, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1795 = icmp ult <16 x ptr> %1792, %1794
  %1796 = and <16 x i1> %1776, %1795
  %1797 = shufflevector <16 x ptr> %1739, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1798 = insertelement <16 x ptr> poison, ptr %scevgep1613, i64 0
  %1799 = insertelement <16 x ptr> %1798, ptr %scevgep1614, i64 1
  %1800 = insertelement <16 x ptr> %1799, ptr %scevgep1615, i64 2
  %1801 = insertelement <16 x ptr> %1800, ptr %scevgep1600, i64 3
  %1802 = insertelement <16 x ptr> %1801, ptr %scevgep1601, i64 4
  %1803 = insertelement <16 x ptr> %1802, ptr %scevgep1602, i64 5
  %1804 = insertelement <16 x ptr> %1803, ptr %scevgep1603, i64 6
  %1805 = insertelement <16 x ptr> %1804, ptr %scevgep1604, i64 7
  %1806 = insertelement <16 x ptr> %1805, ptr %scevgep1605, i64 8
  %1807 = insertelement <16 x ptr> %1806, ptr %scevgep1606, i64 9
  %1808 = insertelement <16 x ptr> %1807, ptr %scevgep1607, i64 10
  %1809 = insertelement <16 x ptr> %1808, ptr %scevgep1608, i64 11
  %1810 = insertelement <16 x ptr> %1809, ptr %scevgep1609, i64 12
  %1811 = insertelement <16 x ptr> %1810, ptr %scevgep1610, i64 13
  %1812 = insertelement <16 x ptr> %1811, ptr %scevgep1611, i64 14
  %1813 = insertelement <16 x ptr> %1812, ptr %scevgep1612, i64 15
  %1814 = icmp ult <16 x ptr> %1797, %1813
  %1815 = insertelement <16 x ptr> poison, ptr %1708, i64 0
  %1816 = insertelement <16 x ptr> %1815, ptr %1710, i64 1
  %1817 = insertelement <16 x ptr> %1816, ptr %1712, i64 2
  %1818 = insertelement <16 x ptr> %1817, ptr %1688, i64 3
  %1819 = insertelement <16 x ptr> %1818, ptr %1690, i64 4
  %1820 = insertelement <16 x ptr> %1819, ptr %1692, i64 5
  %1821 = insertelement <16 x ptr> %1820, ptr %1700, i64 6
  %1822 = insertelement <16 x ptr> %1821, ptr %1702, i64 7
  %1823 = insertelement <16 x ptr> %1822, ptr %1694, i64 8
  %1824 = insertelement <16 x ptr> %1823, ptr %1714, i64 9
  %1825 = insertelement <16 x ptr> %1824, ptr %1704, i64 10
  %1826 = insertelement <16 x ptr> %1825, ptr %1696, i64 11
  %1827 = insertelement <16 x ptr> %1826, ptr %1716, i64 12
  %1828 = insertelement <16 x ptr> %1827, ptr %1706, i64 13
  %1829 = insertelement <16 x ptr> %1828, ptr %1698, i64 14
  %1830 = insertelement <16 x ptr> %1829, ptr %1718, i64 15
  %1831 = shufflevector <16 x ptr> %1722, <16 x ptr> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1832 = icmp ult <16 x ptr> %1830, %1831
  %1833 = and <16 x i1> %1814, %1832
  %1834 = insertelement <8 x ptr> poison, ptr %1686, i64 0
  %1835 = insertelement <8 x ptr> %1834, ptr %1688, i64 1
  %1836 = shufflevector <8 x ptr> %1835, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1837 = insertelement <8 x ptr> poison, ptr %scevgep1613, i64 0
  %1838 = insertelement <8 x ptr> %1837, ptr %scevgep1614, i64 1
  %1839 = insertelement <8 x ptr> %1838, ptr %scevgep1615, i64 2
  %1840 = insertelement <8 x ptr> %1839, ptr %scevgep1601, i64 3
  %1841 = insertelement <8 x ptr> %1840, ptr %scevgep1602, i64 4
  %1842 = insertelement <8 x ptr> %1841, ptr %scevgep1603, i64 5
  %1843 = insertelement <8 x ptr> %1842, ptr %scevgep1604, i64 6
  %1844 = insertelement <8 x ptr> %1843, ptr %scevgep1605, i64 7
  %1845 = icmp ult <8 x ptr> %1836, %1844
  %1846 = insertelement <8 x ptr> poison, ptr %1708, i64 0
  %1847 = insertelement <8 x ptr> %1846, ptr %1710, i64 1
  %1848 = insertelement <8 x ptr> %1847, ptr %1712, i64 2
  %1849 = insertelement <8 x ptr> %1848, ptr %1690, i64 3
  %1850 = insertelement <8 x ptr> %1849, ptr %1692, i64 4
  %1851 = insertelement <8 x ptr> %1850, ptr %1700, i64 5
  %1852 = insertelement <8 x ptr> %1851, ptr %1702, i64 6
  %1853 = insertelement <8 x ptr> %1852, ptr %1694, i64 7
  %1854 = insertelement <8 x ptr> poison, ptr %scevgep1599, i64 0
  %1855 = insertelement <8 x ptr> %1854, ptr %scevgep1600, i64 1
  %1856 = shufflevector <8 x ptr> %1855, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1857 = icmp ult <8 x ptr> %1853, %1856
  %1858 = and <8 x i1> %1845, %1857
  %1859 = insertelement <8 x ptr> poison, ptr %1688, i64 0
  %1860 = shufflevector <8 x ptr> %1859, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1861 = insertelement <8 x ptr> poison, ptr %scevgep1606, i64 0
  %1862 = insertelement <8 x ptr> %1861, ptr %scevgep1607, i64 1
  %1863 = insertelement <8 x ptr> %1862, ptr %scevgep1608, i64 2
  %1864 = insertelement <8 x ptr> %1863, ptr %scevgep1609, i64 3
  %1865 = insertelement <8 x ptr> %1864, ptr %scevgep1610, i64 4
  %1866 = insertelement <8 x ptr> %1865, ptr %scevgep1611, i64 5
  %1867 = insertelement <8 x ptr> %1866, ptr %scevgep1612, i64 6
  %1868 = insertelement <8 x ptr> %1867, ptr %scevgep1613, i64 7
  %1869 = icmp ult <8 x ptr> %1860, %1868
  %1870 = insertelement <8 x ptr> poison, ptr %1714, i64 0
  %1871 = insertelement <8 x ptr> %1870, ptr %1704, i64 1
  %1872 = insertelement <8 x ptr> %1871, ptr %1696, i64 2
  %1873 = insertelement <8 x ptr> %1872, ptr %1716, i64 3
  %1874 = insertelement <8 x ptr> %1873, ptr %1706, i64 4
  %1875 = insertelement <8 x ptr> %1874, ptr %1698, i64 5
  %1876 = insertelement <8 x ptr> %1875, ptr %1718, i64 6
  %1877 = insertelement <8 x ptr> %1876, ptr %1708, i64 7
  %1878 = insertelement <8 x ptr> poison, ptr %scevgep1600, i64 0
  %1879 = shufflevector <8 x ptr> %1878, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1880 = icmp ult <8 x ptr> %1877, %1879
  %1881 = and <8 x i1> %1869, %1880
  %1882 = insertelement <8 x ptr> %1859, ptr %1690, i64 1
  %1883 = shufflevector <8 x ptr> %1882, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1884 = insertelement <8 x ptr> poison, ptr %scevgep1614, i64 0
  %1885 = insertelement <8 x ptr> %1884, ptr %scevgep1615, i64 1
  %1886 = insertelement <8 x ptr> %1885, ptr %scevgep1602, i64 2
  %1887 = insertelement <8 x ptr> %1886, ptr %scevgep1603, i64 3
  %1888 = insertelement <8 x ptr> %1887, ptr %scevgep1604, i64 4
  %1889 = insertelement <8 x ptr> %1888, ptr %scevgep1605, i64 5
  %1890 = insertelement <8 x ptr> %1889, ptr %scevgep1606, i64 6
  %1891 = insertelement <8 x ptr> %1890, ptr %scevgep1607, i64 7
  %1892 = icmp ult <8 x ptr> %1883, %1891
  %1893 = insertelement <8 x ptr> poison, ptr %1710, i64 0
  %1894 = insertelement <8 x ptr> %1893, ptr %1712, i64 1
  %1895 = insertelement <8 x ptr> %1894, ptr %1692, i64 2
  %1896 = insertelement <8 x ptr> %1895, ptr %1700, i64 3
  %1897 = insertelement <8 x ptr> %1896, ptr %1702, i64 4
  %1898 = insertelement <8 x ptr> %1897, ptr %1694, i64 5
  %1899 = insertelement <8 x ptr> %1898, ptr %1714, i64 6
  %1900 = insertelement <8 x ptr> %1899, ptr %1704, i64 7
  %1901 = insertelement <8 x ptr> %1878, ptr %scevgep1601, i64 1
  %1902 = shufflevector <8 x ptr> %1901, <8 x ptr> poison, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %1903 = icmp ult <8 x ptr> %1900, %1902
  %1904 = and <8 x i1> %1892, %1903
  %1905 = insertelement <8 x ptr> poison, ptr %1690, i64 0
  %1906 = shufflevector <8 x ptr> %1905, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1907 = insertelement <8 x ptr> poison, ptr %scevgep1608, i64 0
  %1908 = insertelement <8 x ptr> %1907, ptr %scevgep1609, i64 1
  %1909 = insertelement <8 x ptr> %1908, ptr %scevgep1610, i64 2
  %1910 = insertelement <8 x ptr> %1909, ptr %scevgep1611, i64 3
  %1911 = insertelement <8 x ptr> %1910, ptr %scevgep1612, i64 4
  %1912 = insertelement <8 x ptr> %1911, ptr %scevgep1613, i64 5
  %1913 = insertelement <8 x ptr> %1912, ptr %scevgep1614, i64 6
  %1914 = insertelement <8 x ptr> %1913, ptr %scevgep1615, i64 7
  %1915 = icmp ult <8 x ptr> %1906, %1914
  %1916 = insertelement <8 x ptr> poison, ptr %1696, i64 0
  %1917 = insertelement <8 x ptr> %1916, ptr %1716, i64 1
  %1918 = insertelement <8 x ptr> %1917, ptr %1706, i64 2
  %1919 = insertelement <8 x ptr> %1918, ptr %1698, i64 3
  %1920 = insertelement <8 x ptr> %1919, ptr %1718, i64 4
  %1921 = insertelement <8 x ptr> %1920, ptr %1708, i64 5
  %1922 = insertelement <8 x ptr> %1921, ptr %1710, i64 6
  %1923 = insertelement <8 x ptr> %1922, ptr %1712, i64 7
  %1924 = insertelement <8 x ptr> poison, ptr %scevgep1601, i64 0
  %1925 = shufflevector <8 x ptr> %1924, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1926 = icmp ult <8 x ptr> %1923, %1925
  %1927 = and <8 x i1> %1915, %1926
  %1928 = insertelement <8 x ptr> poison, ptr %1692, i64 0
  %1929 = shufflevector <8 x ptr> %1928, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1930 = insertelement <8 x ptr> poison, ptr %scevgep1603, i64 0
  %1931 = insertelement <8 x ptr> %1930, ptr %scevgep1604, i64 1
  %1932 = insertelement <8 x ptr> %1931, ptr %scevgep1605, i64 2
  %1933 = insertelement <8 x ptr> %1932, ptr %scevgep1606, i64 3
  %1934 = insertelement <8 x ptr> %1933, ptr %scevgep1607, i64 4
  %1935 = insertelement <8 x ptr> %1934, ptr %scevgep1608, i64 5
  %1936 = insertelement <8 x ptr> %1935, ptr %scevgep1609, i64 6
  %1937 = insertelement <8 x ptr> %1936, ptr %scevgep1610, i64 7
  %1938 = icmp ult <8 x ptr> %1929, %1937
  %1939 = insertelement <8 x ptr> poison, ptr %1700, i64 0
  %1940 = insertelement <8 x ptr> %1939, ptr %1702, i64 1
  %1941 = insertelement <8 x ptr> %1940, ptr %1694, i64 2
  %1942 = insertelement <8 x ptr> %1941, ptr %1714, i64 3
  %1943 = insertelement <8 x ptr> %1942, ptr %1704, i64 4
  %1944 = insertelement <8 x ptr> %1943, ptr %1696, i64 5
  %1945 = insertelement <8 x ptr> %1944, ptr %1716, i64 6
  %1946 = insertelement <8 x ptr> %1945, ptr %1706, i64 7
  %1947 = insertelement <8 x ptr> poison, ptr %scevgep1602, i64 0
  %1948 = shufflevector <8 x ptr> %1947, <8 x ptr> poison, <8 x i32> zeroinitializer
  %1949 = icmp ult <8 x ptr> %1946, %1948
  %1950 = and <8 x i1> %1938, %1949
  %bound01967 = icmp ult ptr %1692, %scevgep1611
  %bound11968 = icmp ult ptr %1698, %scevgep1602
  %found.conflict1969 = and i1 %bound01967, %bound11968
  %bound01971 = icmp ult ptr %1692, %scevgep1612
  %bound11972 = icmp ult ptr %1718, %scevgep1602
  %found.conflict1973 = and i1 %bound01971, %bound11972
  %bound01975 = icmp ult ptr %1692, %scevgep1613
  %bound11976 = icmp ult ptr %1708, %scevgep1602
  %found.conflict1977 = and i1 %bound01975, %bound11976
  %bound01979 = icmp ult ptr %1692, %scevgep1614
  %bound11980 = icmp ult ptr %1710, %scevgep1602
  %found.conflict1981 = and i1 %bound01979, %bound11980
  %bound01983 = icmp ult ptr %1692, %scevgep1615
  %bound11984 = icmp ult ptr %1712, %scevgep1602
  %found.conflict1985 = and i1 %bound01983, %bound11984
  %1951 = or <16 x i1> %1757, %1796
  %1952 = or <16 x i1> %1951, %1833
  %1953 = bitcast <16 x i1> %1952 to i16
  %op.rdx3060 = icmp ne i16 %1953, 0
  %1954 = or <8 x i1> %1858, %1881
  %1955 = or <8 x i1> %1954, %1904
  %1956 = or <8 x i1> %1955, %1927
  %1957 = or <8 x i1> %1956, %1950
  %1958 = bitcast <8 x i1> %1957 to i8
  %1959 = icmp ne i8 %1958, 0
  %op.rdx3065 = or i1 %op.rdx3060, %1959
  %op.rdx3066 = or i1 %op.rdx3065, %found.conflict1969
  %op.rdx3067 = or i1 %found.conflict1973, %found.conflict1977
  %op.rdx3068 = or i1 %found.conflict1981, %found.conflict1985
  %op.rdx3069 = or i1 %op.rdx3066, %op.rdx3067
  %op.rdx3070 = or i1 %op.rdx3069, %op.rdx3068
  br i1 %op.rdx3070, label %.lr.ph1439.preheader3079, label %vector.body1994

vector.body1994:                                  ; preds = %vector.memcheck1596, %vector.body1994
  %index1995 = phi i64 [ %index.next2026, %vector.body1994 ], [ 0, %vector.memcheck1596 ]
  %1960 = getelementptr inbounds double, ptr %1700, i64 %index1995
  %wide.load1996 = load <2 x double>, ptr %1960, align 8, !tbaa !23, !alias.scope !158
  %1961 = getelementptr inbounds double, ptr %1702, i64 %index1995
  %wide.load1997 = load <2 x double>, ptr %1961, align 8, !tbaa !23, !alias.scope !161
  %1962 = fmul <2 x double> %wide.load1996, %wide.load1997
  %1963 = getelementptr inbounds double, ptr %1694, i64 %index1995
  %wide.load1998 = load <2 x double>, ptr %1963, align 8, !tbaa !23, !alias.scope !163
  %1964 = getelementptr inbounds double, ptr %1714, i64 %index1995
  %wide.load1999 = load <2 x double>, ptr %1964, align 8, !tbaa !23, !alias.scope !165
  %1965 = fmul <2 x double> %wide.load1998, %wide.load1999
  %1966 = fmul <2 x double> %1965, <double 2.000000e+00, double 2.000000e+00>
  %1967 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1962, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1966)
  %1968 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1965, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1967)
  %1969 = getelementptr inbounds double, ptr %1682, i64 %index1995
  store <2 x double> %1968, ptr %1969, align 8, !tbaa !23, !alias.scope !167, !noalias !169
  %wide.load2000 = load <2 x double>, ptr %1960, align 8, !tbaa !23, !alias.scope !158
  %1970 = getelementptr inbounds double, ptr %1704, i64 %index1995
  %wide.load2001 = load <2 x double>, ptr %1970, align 8, !tbaa !23, !alias.scope !184
  %1971 = fmul <2 x double> %wide.load2000, %wide.load2001
  %1972 = getelementptr inbounds double, ptr %1696, i64 %index1995
  %wide.load2002 = load <2 x double>, ptr %1972, align 8, !tbaa !23, !alias.scope !185
  %1973 = getelementptr inbounds double, ptr %1716, i64 %index1995
  %wide.load2003 = load <2 x double>, ptr %1973, align 8, !tbaa !23, !alias.scope !186
  %1974 = fmul <2 x double> %wide.load2002, %wide.load2003
  %1975 = fmul <2 x double> %1974, <double 2.000000e+00, double 2.000000e+00>
  %1976 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1971, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1975)
  %1977 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1974, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1976)
  %1978 = getelementptr inbounds double, ptr %1684, i64 %index1995
  store <2 x double> %1977, ptr %1978, align 8, !tbaa !23, !alias.scope !187, !noalias !188
  %wide.load2004 = load <2 x double>, ptr %1960, align 8, !tbaa !23, !alias.scope !158
  %1979 = getelementptr inbounds double, ptr %1706, i64 %index1995
  %wide.load2005 = load <2 x double>, ptr %1979, align 8, !tbaa !23, !alias.scope !189
  %1980 = fmul <2 x double> %wide.load2004, %wide.load2005
  %1981 = getelementptr inbounds double, ptr %1698, i64 %index1995
  %wide.load2006 = load <2 x double>, ptr %1981, align 8, !tbaa !23, !alias.scope !190
  %1982 = getelementptr inbounds double, ptr %1718, i64 %index1995
  %wide.load2007 = load <2 x double>, ptr %1982, align 8, !tbaa !23, !alias.scope !191
  %1983 = fmul <2 x double> %wide.load2006, %wide.load2007
  %1984 = fmul <2 x double> %1983, <double 2.000000e+00, double 2.000000e+00>
  %1985 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1980, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1984)
  %1986 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1983, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1985)
  %1987 = getelementptr inbounds double, ptr %1686, i64 %index1995
  store <2 x double> %1986, ptr %1987, align 8, !tbaa !23, !alias.scope !192, !noalias !193
  %wide.load2008 = load <2 x double>, ptr %1960, align 8, !tbaa !23, !alias.scope !158
  %1988 = getelementptr inbounds double, ptr %1708, i64 %index1995
  %wide.load2009 = load <2 x double>, ptr %1988, align 8, !tbaa !23, !alias.scope !194
  %1989 = fmul <2 x double> %wide.load2008, %wide.load2009
  %wide.load2010 = load <2 x double>, ptr %1963, align 8, !tbaa !23, !alias.scope !163
  %wide.load2011 = load <2 x double>, ptr %1973, align 8, !tbaa !23, !alias.scope !186
  %1990 = fmul <2 x double> %wide.load2010, %wide.load2011
  %1991 = fmul <2 x double> %1990, <double 2.000000e+00, double 2.000000e+00>
  %1992 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1989, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1991)
  %wide.load2012 = load <2 x double>, ptr %1972, align 8, !tbaa !23, !alias.scope !185
  %wide.load2013 = load <2 x double>, ptr %1964, align 8, !tbaa !23, !alias.scope !165
  %1993 = fmul <2 x double> %wide.load2012, %wide.load2013
  %1994 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1993, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1992)
  %1995 = getelementptr inbounds double, ptr %1688, i64 %index1995
  store <2 x double> %1994, ptr %1995, align 8, !tbaa !23, !alias.scope !195, !noalias !196
  %wide.load2014 = load <2 x double>, ptr %1960, align 8, !tbaa !23, !alias.scope !158
  %1996 = getelementptr inbounds double, ptr %1710, i64 %index1995
  %wide.load2015 = load <2 x double>, ptr %1996, align 8, !tbaa !23, !alias.scope !197
  %1997 = fmul <2 x double> %wide.load2014, %wide.load2015
  %wide.load2016 = load <2 x double>, ptr %1963, align 8, !tbaa !23, !alias.scope !163
  %wide.load2017 = load <2 x double>, ptr %1982, align 8, !tbaa !23, !alias.scope !191
  %1998 = fmul <2 x double> %wide.load2016, %wide.load2017
  %1999 = fmul <2 x double> %1998, <double 2.000000e+00, double 2.000000e+00>
  %2000 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1997, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %1999)
  %wide.load2018 = load <2 x double>, ptr %1981, align 8, !tbaa !23, !alias.scope !190
  %wide.load2019 = load <2 x double>, ptr %1964, align 8, !tbaa !23, !alias.scope !165
  %2001 = fmul <2 x double> %wide.load2018, %wide.load2019
  %2002 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2001, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %2000)
  %2003 = getelementptr inbounds double, ptr %1690, i64 %index1995
  store <2 x double> %2002, ptr %2003, align 8, !tbaa !23, !alias.scope !198, !noalias !199
  %wide.load2020 = load <2 x double>, ptr %1960, align 8, !tbaa !23, !alias.scope !158
  %2004 = getelementptr inbounds double, ptr %1712, i64 %index1995
  %wide.load2021 = load <2 x double>, ptr %2004, align 8, !tbaa !23, !alias.scope !200
  %2005 = fmul <2 x double> %wide.load2020, %wide.load2021
  %wide.load2022 = load <2 x double>, ptr %1972, align 8, !tbaa !23, !alias.scope !185
  %wide.load2023 = load <2 x double>, ptr %1982, align 8, !tbaa !23, !alias.scope !191
  %2006 = fmul <2 x double> %wide.load2022, %wide.load2023
  %2007 = fmul <2 x double> %2006, <double 2.000000e+00, double 2.000000e+00>
  %2008 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2005, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %2007)
  %wide.load2024 = load <2 x double>, ptr %1981, align 8, !tbaa !23, !alias.scope !190
  %wide.load2025 = load <2 x double>, ptr %1973, align 8, !tbaa !23, !alias.scope !186
  %2009 = fmul <2 x double> %wide.load2024, %wide.load2025
  %2010 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2009, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %2008)
  %2011 = getelementptr inbounds double, ptr %1692, i64 %index1995
  store <2 x double> %2010, ptr %2011, align 8, !tbaa !23, !alias.scope !201, !noalias !202
  %index.next2026 = add nuw i64 %index1995, 2
  %2012 = icmp eq i64 %index.next2026, %n.vec1992
  br i1 %2012, label %middle.block1987, label %vector.body1994, !llvm.loop !203

middle.block1987:                                 ; preds = %vector.body1994
  br i1 %cmp.n2027, label %._crit_edge1440, label %.lr.ph1439.preheader3079

._crit_edge1440:                                  ; preds = %.lr.ph1439, %middle.block1987, %1680
  %2013 = add nuw nsw i32 %.014061441, 1
  %exitcond1500.not = icmp eq i32 %2013, %1676
  br i1 %exitcond1500.not, label %.loopexit, label %1680, !llvm.loop !204

.lr.ph1439:                                       ; preds = %.lr.ph1439.preheader3079, %.lr.ph1439
  %indvars.iv1495 = phi i64 [ %indvars.iv.next1496, %.lr.ph1439 ], [ %indvars.iv1495.ph, %.lr.ph1439.preheader3079 ]
  %2014 = getelementptr inbounds double, ptr %1700, i64 %indvars.iv1495
  %2015 = load double, ptr %2014, align 8, !tbaa !23
  %2016 = getelementptr inbounds double, ptr %1702, i64 %indvars.iv1495
  %2017 = load double, ptr %2016, align 8, !tbaa !23
  %2018 = fmul double %2015, %2017
  %2019 = getelementptr inbounds double, ptr %1694, i64 %indvars.iv1495
  %2020 = load double, ptr %2019, align 8, !tbaa !23
  %2021 = getelementptr inbounds double, ptr %1714, i64 %indvars.iv1495
  %2022 = load double, ptr %2021, align 8, !tbaa !23
  %2023 = fmul double %2020, %2022
  %2024 = fmul double %2023, 2.000000e+00
  %2025 = call double @llvm.fmuladd.f64(double %2018, double 2.000000e+00, double %2024)
  %2026 = call double @llvm.fmuladd.f64(double %2023, double 2.000000e+00, double %2025)
  %2027 = getelementptr inbounds double, ptr %1682, i64 %indvars.iv1495
  store double %2026, ptr %2027, align 8, !tbaa !23
  %2028 = load double, ptr %2014, align 8, !tbaa !23
  %2029 = getelementptr inbounds double, ptr %1704, i64 %indvars.iv1495
  %2030 = load double, ptr %2029, align 8, !tbaa !23
  %2031 = fmul double %2028, %2030
  %2032 = getelementptr inbounds double, ptr %1696, i64 %indvars.iv1495
  %2033 = load double, ptr %2032, align 8, !tbaa !23
  %2034 = getelementptr inbounds double, ptr %1716, i64 %indvars.iv1495
  %2035 = load double, ptr %2034, align 8, !tbaa !23
  %2036 = fmul double %2033, %2035
  %2037 = fmul double %2036, 2.000000e+00
  %2038 = call double @llvm.fmuladd.f64(double %2031, double 2.000000e+00, double %2037)
  %2039 = call double @llvm.fmuladd.f64(double %2036, double 2.000000e+00, double %2038)
  %2040 = getelementptr inbounds double, ptr %1684, i64 %indvars.iv1495
  store double %2039, ptr %2040, align 8, !tbaa !23
  %2041 = load double, ptr %2014, align 8, !tbaa !23
  %2042 = getelementptr inbounds double, ptr %1706, i64 %indvars.iv1495
  %2043 = load double, ptr %2042, align 8, !tbaa !23
  %2044 = fmul double %2041, %2043
  %2045 = getelementptr inbounds double, ptr %1698, i64 %indvars.iv1495
  %2046 = load double, ptr %2045, align 8, !tbaa !23
  %2047 = getelementptr inbounds double, ptr %1718, i64 %indvars.iv1495
  %2048 = load double, ptr %2047, align 8, !tbaa !23
  %2049 = fmul double %2046, %2048
  %2050 = fmul double %2049, 2.000000e+00
  %2051 = call double @llvm.fmuladd.f64(double %2044, double 2.000000e+00, double %2050)
  %2052 = call double @llvm.fmuladd.f64(double %2049, double 2.000000e+00, double %2051)
  %2053 = getelementptr inbounds double, ptr %1686, i64 %indvars.iv1495
  store double %2052, ptr %2053, align 8, !tbaa !23
  %2054 = load double, ptr %2014, align 8, !tbaa !23
  %2055 = getelementptr inbounds double, ptr %1708, i64 %indvars.iv1495
  %2056 = load double, ptr %2055, align 8, !tbaa !23
  %2057 = fmul double %2054, %2056
  %2058 = load double, ptr %2019, align 8, !tbaa !23
  %2059 = load double, ptr %2034, align 8, !tbaa !23
  %2060 = fmul double %2058, %2059
  %2061 = fmul double %2060, 2.000000e+00
  %2062 = call double @llvm.fmuladd.f64(double %2057, double 2.000000e+00, double %2061)
  %2063 = load double, ptr %2032, align 8, !tbaa !23
  %2064 = load double, ptr %2021, align 8, !tbaa !23
  %2065 = fmul double %2063, %2064
  %2066 = call double @llvm.fmuladd.f64(double %2065, double 2.000000e+00, double %2062)
  %2067 = getelementptr inbounds double, ptr %1688, i64 %indvars.iv1495
  store double %2066, ptr %2067, align 8, !tbaa !23
  %2068 = load double, ptr %2014, align 8, !tbaa !23
  %2069 = getelementptr inbounds double, ptr %1710, i64 %indvars.iv1495
  %2070 = load double, ptr %2069, align 8, !tbaa !23
  %2071 = fmul double %2068, %2070
  %2072 = load double, ptr %2019, align 8, !tbaa !23
  %2073 = load double, ptr %2047, align 8, !tbaa !23
  %2074 = fmul double %2072, %2073
  %2075 = fmul double %2074, 2.000000e+00
  %2076 = call double @llvm.fmuladd.f64(double %2071, double 2.000000e+00, double %2075)
  %2077 = load double, ptr %2045, align 8, !tbaa !23
  %2078 = load double, ptr %2021, align 8, !tbaa !23
  %2079 = fmul double %2077, %2078
  %2080 = call double @llvm.fmuladd.f64(double %2079, double 2.000000e+00, double %2076)
  %2081 = getelementptr inbounds double, ptr %1690, i64 %indvars.iv1495
  store double %2080, ptr %2081, align 8, !tbaa !23
  %2082 = load double, ptr %2014, align 8, !tbaa !23
  %2083 = getelementptr inbounds double, ptr %1712, i64 %indvars.iv1495
  %2084 = load double, ptr %2083, align 8, !tbaa !23
  %2085 = fmul double %2082, %2084
  %2086 = load double, ptr %2032, align 8, !tbaa !23
  %2087 = load double, ptr %2047, align 8, !tbaa !23
  %2088 = fmul double %2086, %2087
  %2089 = fmul double %2088, 2.000000e+00
  %2090 = call double @llvm.fmuladd.f64(double %2085, double 2.000000e+00, double %2089)
  %2091 = load double, ptr %2045, align 8, !tbaa !23
  %2092 = load double, ptr %2034, align 8, !tbaa !23
  %2093 = fmul double %2091, %2092
  %2094 = call double @llvm.fmuladd.f64(double %2093, double 2.000000e+00, double %2090)
  %2095 = getelementptr inbounds double, ptr %1692, i64 %indvars.iv1495
  store double %2094, ptr %2095, align 8, !tbaa !23
  %indvars.iv.next1496 = add nuw nsw i64 %indvars.iv1495, 1
  %exitcond1499.not = icmp eq i64 %indvars.iv.next1496, %wide.trip.count1498
  br i1 %exitcond1499.not, label %._crit_edge1440, label %.lr.ph1439, !llvm.loop !205

2096:                                             ; preds = %1674
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %2097 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.9)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br i1 %2097, label %.preheader1424, label %2151

.preheader1424:                                   ; preds = %2096
  %2098 = sdiv i32 %2, 2
  %2099 = icmp sgt i32 %2, 1
  br i1 %2099, label %.lr.ph1436, label %.loopexit

.lr.ph1436:                                       ; preds = %.preheader1424
  %2100 = icmp sgt i32 %23, 0
  %wide.trip.count1492 = zext i32 %23 to i64
  %2101 = shl nuw nsw i64 %wide.trip.count1492, 3
  %min.iters.check = icmp ult i32 %23, 6
  %n.vec = and i64 %wide.trip.count1492, 2147483646
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count1492
  br label %2102

2102:                                             ; preds = %.lr.ph1436, %._crit_edge1434
  %.014041435 = phi i32 [ 0, %.lr.ph1436 ], [ %2129, %._crit_edge1434 ]
  %2103 = shl nuw nsw i32 %.014041435, 1
  %2104 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %2103)
  %2105 = or disjoint i32 %2103, 1
  %2106 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %2105)
  %2107 = shl nsw i32 %.014041435, 2
  %2108 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2107)
  %2109 = or disjoint i32 %2107, 1
  %2110 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2109)
  %2111 = or disjoint i32 %2107, 2
  %2112 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2111)
  %2113 = or disjoint i32 %2107, 3
  %2114 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2113)
  br i1 %2100, label %.lr.ph1433.preheader, label %._crit_edge1434

.lr.ph1433.preheader:                             ; preds = %2102
  br i1 %min.iters.check, label %.lr.ph1433.preheader3081, label %vector.memcheck

.lr.ph1433.preheader3081:                         ; preds = %middle.block, %vector.memcheck, %.lr.ph1433.preheader
  %indvars.iv1489.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %.lr.ph1433.preheader ], [ %n.vec, %middle.block ]
  br label %.lr.ph1433

vector.memcheck:                                  ; preds = %.lr.ph1433.preheader
  %scevgep = getelementptr i8, ptr %2104, i64 %2101
  %scevgep1553 = getelementptr i8, ptr %2106, i64 %2101
  %scevgep1554 = getelementptr i8, ptr %2108, i64 %2101
  %scevgep1555 = getelementptr i8, ptr %2112, i64 %2101
  %scevgep1556 = getelementptr i8, ptr %2110, i64 %2101
  %scevgep1557 = getelementptr i8, ptr %2114, i64 %2101
  %bound0 = icmp ult ptr %2104, %scevgep1553
  %bound1 = icmp ult ptr %2106, %scevgep
  %found.conflict = and i1 %bound0, %bound1
  %bound01558 = icmp ult ptr %2104, %scevgep1554
  %bound11559 = icmp ult ptr %2108, %scevgep
  %found.conflict1560 = and i1 %bound01558, %bound11559
  %conflict.rdx = or i1 %found.conflict, %found.conflict1560
  %bound01561 = icmp ult ptr %2104, %scevgep1555
  %bound11562 = icmp ult ptr %2112, %scevgep
  %found.conflict1563 = and i1 %bound01561, %bound11562
  %conflict.rdx1564 = or i1 %conflict.rdx, %found.conflict1563
  %bound01565 = icmp ult ptr %2104, %scevgep1556
  %bound11566 = icmp ult ptr %2110, %scevgep
  %found.conflict1567 = and i1 %bound01565, %bound11566
  %conflict.rdx1568 = or i1 %conflict.rdx1564, %found.conflict1567
  %bound01569 = icmp ult ptr %2104, %scevgep1557
  %bound11570 = icmp ult ptr %2114, %scevgep
  %found.conflict1571 = and i1 %bound01569, %bound11570
  %conflict.rdx1572 = or i1 %conflict.rdx1568, %found.conflict1571
  %bound01573 = icmp ult ptr %2106, %scevgep1554
  %bound11574 = icmp ult ptr %2108, %scevgep1553
  %found.conflict1575 = and i1 %bound01573, %bound11574
  %conflict.rdx1576 = or i1 %conflict.rdx1572, %found.conflict1575
  %bound01577 = icmp ult ptr %2106, %scevgep1555
  %bound11578 = icmp ult ptr %2112, %scevgep1553
  %found.conflict1579 = and i1 %bound01577, %bound11578
  %conflict.rdx1580 = or i1 %conflict.rdx1576, %found.conflict1579
  %bound01581 = icmp ult ptr %2106, %scevgep1556
  %bound11582 = icmp ult ptr %2110, %scevgep1553
  %found.conflict1583 = and i1 %bound01581, %bound11582
  %conflict.rdx1584 = or i1 %conflict.rdx1580, %found.conflict1583
  %bound01585 = icmp ult ptr %2106, %scevgep1557
  %bound11586 = icmp ult ptr %2114, %scevgep1553
  %found.conflict1587 = and i1 %bound01585, %bound11586
  %conflict.rdx1588 = or i1 %conflict.rdx1584, %found.conflict1587
  br i1 %conflict.rdx1588, label %.lr.ph1433.preheader3081, label %vector.body

vector.body:                                      ; preds = %vector.memcheck, %vector.body
  %index = phi i64 [ %index.next, %vector.body ], [ 0, %vector.memcheck ]
  %2115 = getelementptr inbounds double, ptr %2108, i64 %index
  %wide.load = load <2 x double>, ptr %2115, align 8, !tbaa !23, !alias.scope !206
  %2116 = getelementptr inbounds double, ptr %2112, i64 %index
  %wide.load1589 = load <2 x double>, ptr %2116, align 8, !tbaa !23, !alias.scope !209
  %2117 = getelementptr inbounds double, ptr %2110, i64 %index
  %wide.load1590 = load <2 x double>, ptr %2117, align 8, !tbaa !23, !alias.scope !211
  %2118 = getelementptr inbounds double, ptr %2114, i64 %index
  %wide.load1591 = load <2 x double>, ptr %2118, align 8, !tbaa !23, !alias.scope !213
  %2119 = fneg <2 x double> %wide.load1590
  %2120 = fmul <2 x double> %wide.load1591, %2119
  %2121 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load, <2 x double> %wide.load1589, <2 x double> %2120)
  %2122 = fmul <2 x double> %2121, <double 2.000000e+00, double 2.000000e+00>
  %2123 = getelementptr inbounds double, ptr %2104, i64 %index
  store <2 x double> %2122, ptr %2123, align 8, !tbaa !23, !alias.scope !215, !noalias !217
  %wide.load1592 = load <2 x double>, ptr %2115, align 8, !tbaa !23, !alias.scope !206
  %wide.load1593 = load <2 x double>, ptr %2118, align 8, !tbaa !23, !alias.scope !213
  %wide.load1594 = load <2 x double>, ptr %2117, align 8, !tbaa !23, !alias.scope !211
  %wide.load1595 = load <2 x double>, ptr %2116, align 8, !tbaa !23, !alias.scope !209
  %2124 = fmul <2 x double> %wide.load1594, %wide.load1595
  %2125 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load1592, <2 x double> %wide.load1593, <2 x double> %2124)
  %2126 = fmul <2 x double> %2125, <double 2.000000e+00, double 2.000000e+00>
  %2127 = getelementptr inbounds double, ptr %2106, i64 %index
  store <2 x double> %2126, ptr %2127, align 8, !tbaa !23, !alias.scope !219, !noalias !220
  %index.next = add nuw i64 %index, 2
  %2128 = icmp eq i64 %index.next, %n.vec
  br i1 %2128, label %middle.block, label %vector.body, !llvm.loop !221

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge1434, label %.lr.ph1433.preheader3081

._crit_edge1434:                                  ; preds = %.lr.ph1433, %middle.block, %2102
  %2129 = add nuw nsw i32 %.014041435, 1
  %exitcond1494.not = icmp eq i32 %2129, %2098
  br i1 %exitcond1494.not, label %.loopexit, label %2102, !llvm.loop !222

.lr.ph1433:                                       ; preds = %.lr.ph1433.preheader3081, %.lr.ph1433
  %indvars.iv1489 = phi i64 [ %indvars.iv.next1490, %.lr.ph1433 ], [ %indvars.iv1489.ph, %.lr.ph1433.preheader3081 ]
  %2130 = getelementptr inbounds double, ptr %2108, i64 %indvars.iv1489
  %2131 = load double, ptr %2130, align 8, !tbaa !23
  %2132 = getelementptr inbounds double, ptr %2112, i64 %indvars.iv1489
  %2133 = load double, ptr %2132, align 8, !tbaa !23
  %2134 = getelementptr inbounds double, ptr %2110, i64 %indvars.iv1489
  %2135 = load double, ptr %2134, align 8, !tbaa !23
  %2136 = getelementptr inbounds double, ptr %2114, i64 %indvars.iv1489
  %2137 = load double, ptr %2136, align 8, !tbaa !23
  %2138 = fneg double %2135
  %2139 = fmul double %2137, %2138
  %2140 = call double @llvm.fmuladd.f64(double %2131, double %2133, double %2139)
  %2141 = fmul double %2140, 2.000000e+00
  %2142 = getelementptr inbounds double, ptr %2104, i64 %indvars.iv1489
  store double %2141, ptr %2142, align 8, !tbaa !23
  %2143 = load double, ptr %2130, align 8, !tbaa !23
  %2144 = load double, ptr %2136, align 8, !tbaa !23
  %2145 = load double, ptr %2134, align 8, !tbaa !23
  %2146 = load double, ptr %2132, align 8, !tbaa !23
  %2147 = fmul double %2145, %2146
  %2148 = call double @llvm.fmuladd.f64(double %2143, double %2144, double %2147)
  %2149 = fmul double %2148, 2.000000e+00
  %2150 = getelementptr inbounds double, ptr %2106, i64 %indvars.iv1489
  store double %2149, ptr %2150, align 8, !tbaa !23
  %indvars.iv.next1490 = add nuw nsw i64 %indvars.iv1489, 1
  %exitcond1493.not = icmp eq i64 %indvars.iv.next1490, %wide.trip.count1492
  br i1 %exitcond1493.not, label %._crit_edge1434, label %.lr.ph1433, !llvm.loop !223

2151:                                             ; preds = %2096
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %2152 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.10)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br i1 %2152, label %.preheader1426, label %2201

.preheader1426:                                   ; preds = %2151
  %2153 = sdiv i32 %2, 4
  %2154 = icmp sgt i32 %2, 3
  br i1 %2154, label %.lr.ph1430, label %.loopexit

.lr.ph1430:                                       ; preds = %.preheader1426
  %2155 = icmp sgt i32 %23, 0
  %wide.trip.count = zext nneg i32 %23 to i64
  br label %2156

2156:                                             ; preds = %.lr.ph1430, %._crit_edge
  %.013961429 = phi i32 [ 0, %.lr.ph1430 ], [ %2175, %._crit_edge ]
  %2157 = shl nsw i32 %.013961429, 2
  %2158 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %2157)
  %2159 = or disjoint i32 %2157, 1
  %2160 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %2159)
  %2161 = or disjoint i32 %2157, 2
  %2162 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %2161)
  %2163 = or disjoint i32 %2157, 3
  %2164 = call noundef ptr @_ZN16CDensityGridQuad3gamEi(ptr noundef nonnull align 8 dereferenceable(112) %0, i32 noundef %2163)
  %2165 = mul nuw nsw i32 %.013961429, 5
  %2166 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2165)
  %2167 = add nuw nsw i32 %2165, 1
  %2168 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2167)
  %2169 = add nuw nsw i32 %2165, 2
  %2170 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2169)
  %2171 = add nuw nsw i32 %2165, 3
  %2172 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2171)
  %2173 = add nuw nsw i32 %2165, 4
  %2174 = call noundef ptr @_ZNK12CDensityGrid12alphaDensityEi(ptr noundef nonnull align 8 dereferenceable(112) %1, i32 noundef %2173)
  br i1 %2155, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph, %2156
  %2175 = add nuw nsw i32 %.013961429, 1
  %exitcond1488.not = icmp eq i32 %2175, %2153
  br i1 %exitcond1488.not, label %.loopexit, label %2156, !llvm.loop !224

.lr.ph:                                           ; preds = %2156, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %2156 ]
  %2176 = getelementptr inbounds double, ptr %2166, i64 %indvars.iv
  %2177 = load double, ptr %2176, align 8, !tbaa !23
  %2178 = getelementptr inbounds double, ptr %2172, i64 %indvars.iv
  %2179 = load double, ptr %2178, align 8, !tbaa !23
  %2180 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %2177, double noundef 0.000000e+00, double noundef %2179, double noundef 0.000000e+00)
  %2181 = fmul double %2180, 2.000000e+00
  %2182 = getelementptr inbounds double, ptr %2158, i64 %indvars.iv
  store double %2181, ptr %2182, align 8, !tbaa !23
  %2183 = getelementptr inbounds double, ptr %2168, i64 %indvars.iv
  %2184 = load double, ptr %2183, align 8, !tbaa !23
  %2185 = load double, ptr %2178, align 8, !tbaa !23
  %2186 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %2184, double noundef 0.000000e+00, double noundef %2185, double noundef 0.000000e+00)
  %2187 = fmul double %2186, 2.000000e+00
  %2188 = getelementptr inbounds double, ptr %2160, i64 %indvars.iv
  store double %2187, ptr %2188, align 8, !tbaa !23
  %2189 = getelementptr inbounds double, ptr %2170, i64 %indvars.iv
  %2190 = load double, ptr %2189, align 8, !tbaa !23
  %2191 = load double, ptr %2178, align 8, !tbaa !23
  %2192 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %2190, double noundef 0.000000e+00, double noundef %2191, double noundef 0.000000e+00)
  %2193 = fmul double %2192, 2.000000e+00
  %2194 = getelementptr inbounds double, ptr %2162, i64 %indvars.iv
  store double %2193, ptr %2194, align 8, !tbaa !23
  %2195 = load double, ptr %2178, align 8, !tbaa !23
  %2196 = getelementptr inbounds double, ptr %2174, i64 %indvars.iv
  %2197 = load double, ptr %2196, align 8, !tbaa !23
  %2198 = call noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112) %0, double noundef %2195, double noundef 0.000000e+00, double noundef %2197, double noundef 0.000000e+00)
  %2199 = fmul double %2198, 2.000000e+00
  %2200 = getelementptr inbounds double, ptr %2164, i64 %indvars.iv
  store double %2199, ptr %2200, align 8, !tbaa !23
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !225

2201:                                             ; preds = %2151
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %2202 unwind label %2208

2202:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  invoke void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %2203 unwind label %2210

2203:                                             ; preds = %2202
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %2204 unwind label %2212

2204:                                             ; preds = %2203
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %2205 unwind label %2214

2205:                                             ; preds = %2204
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %2206 unwind label %2216

2206:                                             ; preds = %2205
  invoke void @_ZN6errors17assertMsgCriticalEbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %2207 unwind label %2218

2207:                                             ; preds = %2206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  br label %.loopexit

2208:                                             ; preds = %2201
  %2209 = landingpad { ptr, i32 }
          cleanup
  br label %2224

2210:                                             ; preds = %2202
  %2211 = landingpad { ptr, i32 }
          cleanup
  br label %2223

2212:                                             ; preds = %2203
  %2213 = landingpad { ptr, i32 }
          cleanup
  br label %2222

2214:                                             ; preds = %2204
  %2215 = landingpad { ptr, i32 }
          cleanup
  br label %2221

2216:                                             ; preds = %2205
  %2217 = landingpad { ptr, i32 }
          cleanup
  br label %2220

2218:                                             ; preds = %2206
  %2219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %2220

2220:                                             ; preds = %2218, %2216
  %.pn = phi { ptr, i32 } [ %2219, %2218 ], [ %2217, %2216 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %2221

2221:                                             ; preds = %2220, %2214
  %.pn.pn = phi { ptr, i32 } [ %.pn, %2220 ], [ %2215, %2214 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %2222

2222:                                             ; preds = %2221, %2212
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %2221 ], [ %2213, %2212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %2223

2223:                                             ; preds = %2222, %2210
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %2222 ], [ %2211, %2210 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %2224

2224:                                             ; preds = %2223, %2208
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %2223 ], [ %2209, %2208 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  resume { ptr, i32 } %.pn.pn.pn.pn.pn

.loopexit:                                        ; preds = %._crit_edge, %._crit_edge1434, %._crit_edge1440, %._crit_edge1446, %._crit_edge1452, %._crit_edge1458, %._crit_edge1464, %._crit_edge1470, %._crit_edge1476, %.preheader1426, %.preheader1424, %.preheader1422, %.preheader1420, %.preheader1418, %.preheader1416, %.preheader1414, %.preheader1412, %.preheader, %2207, %4
  ret void
}

declare void @_ZN6errors17assertMsgCriticalEbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

declare void @_ZN6format10upper_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN16CDensityGridQuad7prod2_rEdddd(ptr noundef nonnull align 8 dereferenceable(112), double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #5 align 2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #7

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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" }
attributes #3 = { 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 #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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, !7, i64 0}
!6 = !{!"_ZTS16CDensityGridQuad", !7, i64 0, !10, i64 4, !11, i64 8}
!7 = !{!"_ZTS7dengrid", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTS18CDensityGridData2D", !12, i64 0, !17, i64 24, !17, i64 48, !17, i64 72, !10, i64 96}
!12 = !{!"_ZTSSt6vectorIdSaIdEE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"any pointer", !8, i64 0}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = !{!24, !24, i64 0}
!24 = !{!"double", !8, i64 0}
!25 = distinct !{!25, !22}
!26 = !{!27}
!27 = distinct !{!27, !28}
!28 = distinct !{!28, !"LVerDomain"}
!29 = !{!30}
!30 = distinct !{!30, !28}
!31 = !{!32}
!32 = distinct !{!32, !28}
!33 = !{!34}
!34 = distinct !{!34, !28}
!35 = !{!36}
!36 = distinct !{!36, !28}
!37 = !{!38}
!38 = distinct !{!38, !28}
!39 = !{!40}
!40 = distinct !{!40, !28}
!41 = !{!42, !43, !44, !45, !46, !27, !30, !32, !34, !36, !38}
!42 = distinct !{!42, !28}
!43 = distinct !{!43, !28}
!44 = distinct !{!44, !28}
!45 = distinct !{!45, !28}
!46 = distinct !{!46, !28}
!47 = !{!42}
!48 = !{!43, !44, !45, !46, !27, !30, !32, !34, !36, !38}
!49 = !{!43}
!50 = !{!44, !45, !46, !27, !30, !32, !34, !36, !38}
!51 = !{!44}
!52 = !{!45, !46, !27, !30, !32, !34, !36, !38}
!53 = !{!45}
!54 = !{!46, !27, !30, !32, !34, !36, !38}
!55 = !{!46}
!56 = !{!27, !30, !32, !34, !36, !38}
!57 = distinct !{!57, !22, !58, !59}
!58 = !{!"llvm.loop.isvectorized", i32 1}
!59 = !{!"llvm.loop.unroll.runtime.disable"}
!60 = distinct !{!60, !22}
!61 = distinct !{!61, !22, !58}
!62 = distinct !{!62, !22}
!63 = distinct !{!63, !22}
!64 = distinct !{!64, !22}
!65 = distinct !{!65, !22}
!66 = !{!67}
!67 = distinct !{!67, !68}
!68 = distinct !{!68, !"LVerDomain"}
!69 = !{!70}
!70 = distinct !{!70, !68}
!71 = !{!72}
!72 = distinct !{!72, !68}
!73 = !{!74}
!74 = distinct !{!74, !68}
!75 = !{!76}
!76 = distinct !{!76, !68}
!77 = !{!78}
!78 = distinct !{!78, !68}
!79 = !{!80}
!80 = distinct !{!80, !68}
!81 = !{!82}
!82 = distinct !{!82, !68}
!83 = !{!84}
!84 = distinct !{!84, !68}
!85 = !{!86}
!86 = distinct !{!86, !68}
!87 = !{!88}
!88 = distinct !{!88, !68}
!89 = !{!90}
!90 = distinct !{!90, !68}
!91 = !{!92}
!92 = distinct !{!92, !68}
!93 = !{!94, !95, !96, !97, !98, !67, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !90, !99, !100, !101, !102, !103, !104}
!94 = distinct !{!94, !68}
!95 = distinct !{!95, !68}
!96 = distinct !{!96, !68}
!97 = distinct !{!97, !68}
!98 = distinct !{!98, !68}
!99 = distinct !{!99, !68}
!100 = distinct !{!100, !68}
!101 = distinct !{!101, !68}
!102 = distinct !{!102, !68}
!103 = distinct !{!103, !68}
!104 = distinct !{!104, !68}
!105 = !{!99}
!106 = !{!100}
!107 = !{!101}
!108 = !{!102}
!109 = !{!94}
!110 = !{!95, !96, !97, !98, !67, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !90, !99, !100, !101, !102, !103, !104}
!111 = !{!103}
!112 = !{!104}
!113 = !{!95}
!114 = !{!96, !97, !98, !67, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !90, !99, !100, !101, !102, !103, !104}
!115 = !{!96}
!116 = !{!97, !98, !67, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !90, !99, !100, !101, !102, !103, !104}
!117 = !{!97}
!118 = !{!98, !67, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !90, !99, !100, !101, !102, !103, !104}
!119 = !{!98}
!120 = !{!67, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !90, !99, !100, !101, !102, !103, !104}
!121 = distinct !{!121, !22, !58, !59}
!122 = distinct !{!122, !22}
!123 = distinct !{!123, !22, !58}
!124 = !{!125}
!125 = distinct !{!125, !126}
!126 = distinct !{!126, !"LVerDomain"}
!127 = !{!128}
!128 = distinct !{!128, !126}
!129 = !{!130}
!130 = distinct !{!130, !126}
!131 = !{!132}
!132 = distinct !{!132, !126}
!133 = !{!134}
!134 = distinct !{!134, !126}
!135 = !{!136}
!136 = distinct !{!136, !126}
!137 = !{!138}
!138 = distinct !{!138, !126}
!139 = !{!140}
!140 = distinct !{!140, !126}
!141 = !{!142}
!142 = distinct !{!142, !126}
!143 = !{!144}
!144 = distinct !{!144, !126}
!145 = !{!146}
!146 = distinct !{!146, !126}
!147 = !{!148}
!148 = distinct !{!148, !126}
!149 = !{!150}
!150 = distinct !{!150, !126}
!151 = !{!152, !125, !128, !130, !132, !134, !136, !138, !140, !142, !144, !146, !148}
!152 = distinct !{!152, !126}
!153 = !{!152}
!154 = !{!125, !128, !130, !132, !134, !136, !138, !140, !142, !144, !146, !148}
!155 = distinct !{!155, !22, !58, !59}
!156 = distinct !{!156, !22}
!157 = distinct !{!157, !22, !58}
!158 = !{!159}
!159 = distinct !{!159, !160}
!160 = distinct !{!160, !"LVerDomain"}
!161 = !{!162}
!162 = distinct !{!162, !160}
!163 = !{!164}
!164 = distinct !{!164, !160}
!165 = !{!166}
!166 = distinct !{!166, !160}
!167 = !{!168}
!168 = distinct !{!168, !160}
!169 = !{!170, !171, !172, !173, !174, !159, !162, !164, !166, !175, !176, !177, !178, !179, !180, !181, !182, !183}
!170 = distinct !{!170, !160}
!171 = distinct !{!171, !160}
!172 = distinct !{!172, !160}
!173 = distinct !{!173, !160}
!174 = distinct !{!174, !160}
!175 = distinct !{!175, !160}
!176 = distinct !{!176, !160}
!177 = distinct !{!177, !160}
!178 = distinct !{!178, !160}
!179 = distinct !{!179, !160}
!180 = distinct !{!180, !160}
!181 = distinct !{!181, !160}
!182 = distinct !{!182, !160}
!183 = distinct !{!183, !160}
!184 = !{!175}
!185 = !{!176}
!186 = !{!177}
!187 = !{!170}
!188 = !{!171, !172, !173, !174, !159, !162, !164, !166, !175, !176, !177, !178, !179, !180, !181, !182, !183}
!189 = !{!178}
!190 = !{!179}
!191 = !{!180}
!192 = !{!171}
!193 = !{!172, !173, !174, !159, !162, !164, !166, !175, !176, !177, !178, !179, !180, !181, !182, !183}
!194 = !{!181}
!195 = !{!172}
!196 = !{!173, !174, !159, !162, !164, !166, !175, !176, !177, !178, !179, !180, !181, !182, !183}
!197 = !{!182}
!198 = !{!173}
!199 = !{!174, !159, !162, !164, !166, !175, !176, !177, !178, !179, !180, !181, !182, !183}
!200 = !{!183}
!201 = !{!174}
!202 = !{!159, !162, !164, !166, !175, !176, !177, !178, !179, !180, !181, !182, !183}
!203 = distinct !{!203, !22, !58, !59}
!204 = distinct !{!204, !22}
!205 = distinct !{!205, !22, !58}
!206 = !{!207}
!207 = distinct !{!207, !208}
!208 = distinct !{!208, !"LVerDomain"}
!209 = !{!210}
!210 = distinct !{!210, !208}
!211 = !{!212}
!212 = distinct !{!212, !208}
!213 = !{!214}
!214 = distinct !{!214, !208}
!215 = !{!216}
!216 = distinct !{!216, !208}
!217 = !{!218, !207, !210, !212, !214}
!218 = distinct !{!218, !208}
!219 = !{!218}
!220 = !{!207, !210, !212, !214}
!221 = distinct !{!221, !22, !58, !59}
!222 = distinct !{!222, !22}
!223 = distinct !{!223, !22, !58}
!224 = distinct !{!224, !22}
!225 = distinct !{!225, !22}


; Effective O3 passes: EarlyCSEPass,GlobalDCEPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass