; LLVM IR from QUILL-PIC/Quill :: src/advance.ll (ZN14spatial_region14interpolate_beEv)

; 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.spatial_region = type { i32, i32, i32, double, double, double, double, i32, i32, i32, double, ptr, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, %"class.std::unique_ptr", %"class.std::function", double, double, double, i32, i32, i32, ptr, double, double, double, double, ptr, double, double, double, ptr, %"class.std::__cxx11::basic_string", ptr, ptr, ptr, ptr, %class.field3d, %class.field3d.26, %class.field3d.51, %class.field3d.76, %class.field3d.101, %"class.std::vector", %"class.std::vector.129" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"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.field3d = type { i32, i32, i32, %"class.std::unique_ptr.2", %"class.std::unique_ptr.10", %"class.std::unique_ptr.18" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.std::unique_ptr.10" = type { %"struct.std::__uniq_ptr_data.11" }
%"struct.std::__uniq_ptr_data.11" = type { %"class.std::__uniq_ptr_impl.12" }
%"class.std::__uniq_ptr_impl.12" = type { %"class.std::tuple.13" }
%"class.std::tuple.13" = type { %"struct.std::_Tuple_impl.14" }
%"struct.std::_Tuple_impl.14" = type { %"struct.std::_Head_base.17" }
%"struct.std::_Head_base.17" = type { ptr }
%"class.std::unique_ptr.18" = type { %"struct.std::__uniq_ptr_data.19" }
%"struct.std::__uniq_ptr_data.19" = type { %"class.std::__uniq_ptr_impl.20" }
%"class.std::__uniq_ptr_impl.20" = type { %"class.std::tuple.21" }
%"class.std::tuple.21" = type { %"struct.std::_Tuple_impl.22" }
%"struct.std::_Tuple_impl.22" = type { %"struct.std::_Head_base.25" }
%"struct.std::_Head_base.25" = type { ptr }
%class.field3d.26 = type { i32, i32, i32, %"class.std::unique_ptr.27", %"class.std::unique_ptr.35", %"class.std::unique_ptr.43" }
%"class.std::unique_ptr.27" = type { %"struct.std::__uniq_ptr_data.28" }
%"struct.std::__uniq_ptr_data.28" = type { %"class.std::__uniq_ptr_impl.29" }
%"class.std::__uniq_ptr_impl.29" = type { %"class.std::tuple.30" }
%"class.std::tuple.30" = type { %"struct.std::_Tuple_impl.31" }
%"struct.std::_Tuple_impl.31" = type { %"struct.std::_Head_base.34" }
%"struct.std::_Head_base.34" = type { ptr }
%"class.std::unique_ptr.35" = type { %"struct.std::__uniq_ptr_data.36" }
%"struct.std::__uniq_ptr_data.36" = type { %"class.std::__uniq_ptr_impl.37" }
%"class.std::__uniq_ptr_impl.37" = type { %"class.std::tuple.38" }
%"class.std::tuple.38" = type { %"struct.std::_Tuple_impl.39" }
%"struct.std::_Tuple_impl.39" = type { %"struct.std::_Head_base.42" }
%"struct.std::_Head_base.42" = type { ptr }
%"class.std::unique_ptr.43" = type { %"struct.std::__uniq_ptr_data.44" }
%"struct.std::__uniq_ptr_data.44" = type { %"class.std::__uniq_ptr_impl.45" }
%"class.std::__uniq_ptr_impl.45" = type { %"class.std::tuple.46" }
%"class.std::tuple.46" = type { %"struct.std::_Tuple_impl.47" }
%"struct.std::_Tuple_impl.47" = type { %"struct.std::_Head_base.50" }
%"struct.std::_Head_base.50" = type { ptr }
%class.field3d.51 = type { i32, i32, i32, %"class.std::unique_ptr.52", %"class.std::unique_ptr.60", %"class.std::unique_ptr.68" }
%"class.std::unique_ptr.52" = type { %"struct.std::__uniq_ptr_data.53" }
%"struct.std::__uniq_ptr_data.53" = type { %"class.std::__uniq_ptr_impl.54" }
%"class.std::__uniq_ptr_impl.54" = type { %"class.std::tuple.55" }
%"class.std::tuple.55" = type { %"struct.std::_Tuple_impl.56" }
%"struct.std::_Tuple_impl.56" = type { %"struct.std::_Head_base.59" }
%"struct.std::_Head_base.59" = type { ptr }
%"class.std::unique_ptr.60" = type { %"struct.std::__uniq_ptr_data.61" }
%"struct.std::__uniq_ptr_data.61" = type { %"class.std::__uniq_ptr_impl.62" }
%"class.std::__uniq_ptr_impl.62" = type { %"class.std::tuple.63" }
%"class.std::tuple.63" = type { %"struct.std::_Tuple_impl.64" }
%"struct.std::_Tuple_impl.64" = type { %"struct.std::_Head_base.67" }
%"struct.std::_Head_base.67" = type { ptr }
%"class.std::unique_ptr.68" = type { %"struct.std::__uniq_ptr_data.69" }
%"struct.std::__uniq_ptr_data.69" = type { %"class.std::__uniq_ptr_impl.70" }
%"class.std::__uniq_ptr_impl.70" = type { %"class.std::tuple.71" }
%"class.std::tuple.71" = type { %"struct.std::_Tuple_impl.72" }
%"struct.std::_Tuple_impl.72" = type { %"struct.std::_Head_base.75" }
%"struct.std::_Head_base.75" = type { ptr }
%class.field3d.76 = type { i32, i32, i32, %"class.std::unique_ptr.77", %"class.std::unique_ptr.85", %"class.std::unique_ptr.93" }
%"class.std::unique_ptr.77" = type { %"struct.std::__uniq_ptr_data.78" }
%"struct.std::__uniq_ptr_data.78" = type { %"class.std::__uniq_ptr_impl.79" }
%"class.std::__uniq_ptr_impl.79" = type { %"class.std::tuple.80" }
%"class.std::tuple.80" = type { %"struct.std::_Tuple_impl.81" }
%"struct.std::_Tuple_impl.81" = type { %"struct.std::_Head_base.84" }
%"struct.std::_Head_base.84" = type { ptr }
%"class.std::unique_ptr.85" = type { %"struct.std::__uniq_ptr_data.86" }
%"struct.std::__uniq_ptr_data.86" = type { %"class.std::__uniq_ptr_impl.87" }
%"class.std::__uniq_ptr_impl.87" = type { %"class.std::tuple.88" }
%"class.std::tuple.88" = type { %"struct.std::_Tuple_impl.89" }
%"struct.std::_Tuple_impl.89" = type { %"struct.std::_Head_base.92" }
%"struct.std::_Head_base.92" = type { ptr }
%"class.std::unique_ptr.93" = type { %"struct.std::__uniq_ptr_data.94" }
%"struct.std::__uniq_ptr_data.94" = type { %"class.std::__uniq_ptr_impl.95" }
%"class.std::__uniq_ptr_impl.95" = type { %"class.std::tuple.96" }
%"class.std::tuple.96" = type { %"struct.std::_Tuple_impl.97" }
%"struct.std::_Tuple_impl.97" = type { %"struct.std::_Head_base.100" }
%"struct.std::_Head_base.100" = type { ptr }
%class.field3d.101 = type { i32, i32, i32, %"class.std::unique_ptr.102", %"class.std::unique_ptr.110", %"class.std::unique_ptr.118" }
%"class.std::unique_ptr.102" = type { %"struct.std::__uniq_ptr_data.103" }
%"struct.std::__uniq_ptr_data.103" = type { %"class.std::__uniq_ptr_impl.104" }
%"class.std::__uniq_ptr_impl.104" = type { %"class.std::tuple.105" }
%"class.std::tuple.105" = type { %"struct.std::_Tuple_impl.106" }
%"struct.std::_Tuple_impl.106" = type { %"struct.std::_Head_base.109" }
%"struct.std::_Head_base.109" = type { ptr }
%"class.std::unique_ptr.110" = type { %"struct.std::__uniq_ptr_data.111" }
%"struct.std::__uniq_ptr_data.111" = type { %"class.std::__uniq_ptr_impl.112" }
%"class.std::__uniq_ptr_impl.112" = type { %"class.std::tuple.113" }
%"class.std::tuple.113" = type { %"struct.std::_Tuple_impl.114" }
%"struct.std::_Tuple_impl.114" = type { %"struct.std::_Head_base.117" }
%"struct.std::_Head_base.117" = type { ptr }
%"class.std::unique_ptr.118" = type { %"struct.std::__uniq_ptr_data.119" }
%"struct.std::__uniq_ptr_data.119" = type { %"class.std::__uniq_ptr_impl.120" }
%"class.std::__uniq_ptr_impl.120" = type { %"class.std::tuple.121" }
%"class.std::tuple.121" = type { %"struct.std::_Tuple_impl.122" }
%"struct.std::_Tuple_impl.122" = type { %"struct.std::_Head_base.125" }
%"struct.std::_Head_base.125" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<field3d<double>, std::allocator<field3d<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<field3d<double>, std::allocator<field3d<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<field3d<double>, std::allocator<field3d<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<field3d<double>, std::allocator<field3d<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.129" = type { %"struct.std::_Vector_base.130" }
%"struct.std::_Vector_base.130" = type { %"struct.std::_Vector_base<spatial_region::deleted_particle, std::allocator<spatial_region::deleted_particle>>::_Vector_impl" }
%"struct.std::_Vector_base<spatial_region::deleted_particle, std::allocator<spatial_region::deleted_particle>>::_Vector_impl" = type { %"struct.std::_Vector_base<spatial_region::deleted_particle, std::allocator<spatial_region::deleted_particle>>::_Vector_impl_data" }
%"struct.std::_Vector_base<spatial_region::deleted_particle, std::allocator<spatial_region::deleted_particle>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.cellb = type { double, double, double }
%struct.cellbe = type { double, double, double }

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14spatial_region14interpolate_beEv(ptr noundef nonnull align 8 dereferenceable(608) %0) #1 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %22 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #3
  store i32 1, ptr %3, align 4, !tbaa !9
  br label %23

23:                                               ; preds = %463, %1
  %24 = load i32, ptr %3, align 4, !tbaa !9
  %25 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 0
  %26 = load i32, ptr %25, align 8, !tbaa !11
  %27 = sub nsw i32 %26, 1
  %28 = icmp slt i32 %24, %27
  br i1 %28, label %30, label %29

29:                                               ; preds = %23
  store i32 2, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #3
  br label %466

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

31:                                               ; preds = %459, %30
  %32 = load i32, ptr %5, align 4, !tbaa !9
  %33 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 1
  %34 = load i32, ptr %33, align 4, !tbaa !128
  %35 = sub nsw i32 %34, 1
  %36 = icmp slt i32 %32, %35
  br i1 %36, label %38, label %37

37:                                               ; preds = %31
  store i32 5, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #3
  br label %462

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

39:                                               ; preds = %455, %38
  %40 = load i32, ptr %6, align 4, !tbaa !9
  %41 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 2
  %42 = load i32, ptr %41, align 8, !tbaa !129
  %43 = sub nsw i32 %42, 1
  %44 = icmp slt i32 %40, %43
  br i1 %44, label %46, label %45

45:                                               ; preds = %39
  store i32 8, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #3
  br label %458

46:                                               ; preds = %39
  %47 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %48 = load i32, ptr %3, align 4, !tbaa !9
  %49 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %47, i32 noundef %48)
  %50 = load ptr, ptr %49, align 8, !tbaa !5
  %51 = load i32, ptr %5, align 4, !tbaa !9
  %52 = sext i32 %51 to i64
  %53 = getelementptr inbounds ptr, ptr %50, i64 %52
  %54 = load ptr, ptr %53, align 8, !tbaa !5
  %55 = load i32, ptr %6, align 4, !tbaa !9
  %56 = sext i32 %55 to i64
  %57 = getelementptr inbounds %struct.cellb, ptr %54, i64 %56
  %58 = getelementptr inbounds %struct.cellb, ptr %57, i32 0, i32 0
  %59 = load double, ptr %58, align 8, !tbaa !130
  %60 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %61 = load i32, ptr %3, align 4, !tbaa !9
  %62 = add nsw i32 %61, 1
  %63 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %60, i32 noundef %62)
  %64 = load ptr, ptr %63, align 8, !tbaa !5
  %65 = load i32, ptr %5, align 4, !tbaa !9
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds ptr, ptr %64, i64 %66
  %68 = load ptr, ptr %67, align 8, !tbaa !5
  %69 = load i32, ptr %6, align 4, !tbaa !9
  %70 = sext i32 %69 to i64
  %71 = getelementptr inbounds %struct.cellb, ptr %68, i64 %70
  %72 = getelementptr inbounds %struct.cellb, ptr %71, i32 0, i32 0
  %73 = load double, ptr %72, align 8, !tbaa !130
  %74 = fadd double %59, %73
  %75 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %76 = load i32, ptr %3, align 4, !tbaa !9
  %77 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %75, i32 noundef %76)
  %78 = load ptr, ptr %77, align 8, !tbaa !5
  %79 = load i32, ptr %5, align 4, !tbaa !9
  %80 = sext i32 %79 to i64
  %81 = getelementptr inbounds ptr, ptr %78, i64 %80
  %82 = load ptr, ptr %81, align 8, !tbaa !5
  %83 = load i32, ptr %6, align 4, !tbaa !9
  %84 = sub nsw i32 %83, 1
  %85 = sext i32 %84 to i64
  %86 = getelementptr inbounds %struct.cellb, ptr %82, i64 %85
  %87 = getelementptr inbounds %struct.cellb, ptr %86, i32 0, i32 0
  %88 = load double, ptr %87, align 8, !tbaa !130
  %89 = fadd double %74, %88
  %90 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %91 = load i32, ptr %3, align 4, !tbaa !9
  %92 = add nsw i32 %91, 1
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %90, i32 noundef %92)
  %94 = load ptr, ptr %93, align 8, !tbaa !5
  %95 = load i32, ptr %5, align 4, !tbaa !9
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds ptr, ptr %94, i64 %96
  %98 = load ptr, ptr %97, align 8, !tbaa !5
  %99 = load i32, ptr %6, align 4, !tbaa !9
  %100 = sub nsw i32 %99, 1
  %101 = sext i32 %100 to i64
  %102 = getelementptr inbounds %struct.cellb, ptr %98, i64 %101
  %103 = getelementptr inbounds %struct.cellb, ptr %102, i32 0, i32 0
  %104 = load double, ptr %103, align 8, !tbaa !130
  %105 = fadd double %89, %104
  %106 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %107 = load i32, ptr %3, align 4, !tbaa !9
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %106, i32 noundef %107)
  %109 = load ptr, ptr %108, align 8, !tbaa !5
  %110 = load i32, ptr %5, align 4, !tbaa !9
  %111 = sub nsw i32 %110, 1
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds ptr, ptr %109, i64 %112
  %114 = load ptr, ptr %113, align 8, !tbaa !5
  %115 = load i32, ptr %6, align 4, !tbaa !9
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds %struct.cellb, ptr %114, i64 %116
  %118 = getelementptr inbounds %struct.cellb, ptr %117, i32 0, i32 0
  %119 = load double, ptr %118, align 8, !tbaa !130
  %120 = fadd double %105, %119
  %121 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %122 = load i32, ptr %3, align 4, !tbaa !9
  %123 = add nsw i32 %122, 1
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %121, i32 noundef %123)
  %125 = load ptr, ptr %124, align 8, !tbaa !5
  %126 = load i32, ptr %5, align 4, !tbaa !9
  %127 = sub nsw i32 %126, 1
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds ptr, ptr %125, i64 %128
  %130 = load ptr, ptr %129, align 8, !tbaa !5
  %131 = load i32, ptr %6, align 4, !tbaa !9
  %132 = sext i32 %131 to i64
  %133 = getelementptr inbounds %struct.cellb, ptr %130, i64 %132
  %134 = getelementptr inbounds %struct.cellb, ptr %133, i32 0, i32 0
  %135 = load double, ptr %134, align 8, !tbaa !130
  %136 = fadd double %120, %135
  %137 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %138 = load i32, ptr %3, align 4, !tbaa !9
  %139 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %137, i32 noundef %138)
  %140 = load ptr, ptr %139, align 8, !tbaa !5
  %141 = load i32, ptr %5, align 4, !tbaa !9
  %142 = sub nsw i32 %141, 1
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds ptr, ptr %140, i64 %143
  %145 = load ptr, ptr %144, align 8, !tbaa !5
  %146 = load i32, ptr %6, align 4, !tbaa !9
  %147 = sub nsw i32 %146, 1
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds %struct.cellb, ptr %145, i64 %148
  %150 = getelementptr inbounds %struct.cellb, ptr %149, i32 0, i32 0
  %151 = load double, ptr %150, align 8, !tbaa !130
  %152 = fadd double %136, %151
  %153 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %154 = load i32, ptr %3, align 4, !tbaa !9
  %155 = add nsw i32 %154, 1
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %153, i32 noundef %155)
  %157 = load ptr, ptr %156, align 8, !tbaa !5
  %158 = load i32, ptr %5, align 4, !tbaa !9
  %159 = sub nsw i32 %158, 1
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds ptr, ptr %157, i64 %160
  %162 = load ptr, ptr %161, align 8, !tbaa !5
  %163 = load i32, ptr %6, align 4, !tbaa !9
  %164 = sub nsw i32 %163, 1
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds %struct.cellb, ptr %162, i64 %165
  %167 = getelementptr inbounds %struct.cellb, ptr %166, i32 0, i32 0
  %168 = load double, ptr %167, align 8, !tbaa !130
  %169 = fadd double %152, %168
  %170 = fmul double 1.250000e-01, %169
  %171 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %172 = load i32, ptr %3, align 4, !tbaa !9
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %171, i32 noundef %172)
  %174 = load ptr, ptr %173, align 8, !tbaa !5
  %175 = load i32, ptr %5, align 4, !tbaa !9
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds ptr, ptr %174, i64 %176
  %178 = load ptr, ptr %177, align 8, !tbaa !5
  %179 = load i32, ptr %6, align 4, !tbaa !9
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds %struct.cellbe, ptr %178, i64 %180
  %182 = getelementptr inbounds %struct.cellbe, ptr %181, i32 0, i32 0
  store double %170, ptr %182, align 8, !tbaa !132
  %183 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %184 = load i32, ptr %3, align 4, !tbaa !9
  %185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %183, i32 noundef %184)
  %186 = load ptr, ptr %185, align 8, !tbaa !5
  %187 = load i32, ptr %5, align 4, !tbaa !9
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds ptr, ptr %186, i64 %188
  %190 = load ptr, ptr %189, align 8, !tbaa !5
  %191 = load i32, ptr %6, align 4, !tbaa !9
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds %struct.cellb, ptr %190, i64 %192
  %194 = getelementptr inbounds %struct.cellb, ptr %193, i32 0, i32 1
  %195 = load double, ptr %194, align 8, !tbaa !134
  %196 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %197 = load i32, ptr %3, align 4, !tbaa !9
  %198 = sub nsw i32 %197, 1
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %196, i32 noundef %198)
  %200 = load ptr, ptr %199, align 8, !tbaa !5
  %201 = load i32, ptr %5, align 4, !tbaa !9
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds ptr, ptr %200, i64 %202
  %204 = load ptr, ptr %203, align 8, !tbaa !5
  %205 = load i32, ptr %6, align 4, !tbaa !9
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds %struct.cellb, ptr %204, i64 %206
  %208 = getelementptr inbounds %struct.cellb, ptr %207, i32 0, i32 1
  %209 = load double, ptr %208, align 8, !tbaa !134
  %210 = fadd double %195, %209
  %211 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %212 = load i32, ptr %3, align 4, !tbaa !9
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %211, i32 noundef %212)
  %214 = load ptr, ptr %213, align 8, !tbaa !5
  %215 = load i32, ptr %5, align 4, !tbaa !9
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds ptr, ptr %214, i64 %216
  %218 = load ptr, ptr %217, align 8, !tbaa !5
  %219 = load i32, ptr %6, align 4, !tbaa !9
  %220 = sub nsw i32 %219, 1
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds %struct.cellb, ptr %218, i64 %221
  %223 = getelementptr inbounds %struct.cellb, ptr %222, i32 0, i32 1
  %224 = load double, ptr %223, align 8, !tbaa !134
  %225 = fadd double %210, %224
  %226 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %227 = load i32, ptr %3, align 4, !tbaa !9
  %228 = sub nsw i32 %227, 1
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %226, i32 noundef %228)
  %230 = load ptr, ptr %229, align 8, !tbaa !5
  %231 = load i32, ptr %5, align 4, !tbaa !9
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds ptr, ptr %230, i64 %232
  %234 = load ptr, ptr %233, align 8, !tbaa !5
  %235 = load i32, ptr %6, align 4, !tbaa !9
  %236 = sub nsw i32 %235, 1
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds %struct.cellb, ptr %234, i64 %237
  %239 = getelementptr inbounds %struct.cellb, ptr %238, i32 0, i32 1
  %240 = load double, ptr %239, align 8, !tbaa !134
  %241 = fadd double %225, %240
  %242 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %243 = load i32, ptr %3, align 4, !tbaa !9
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %243)
  %245 = load ptr, ptr %244, align 8, !tbaa !5
  %246 = load i32, ptr %5, align 4, !tbaa !9
  %247 = add nsw i32 %246, 1
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds ptr, ptr %245, i64 %248
  %250 = load ptr, ptr %249, align 8, !tbaa !5
  %251 = load i32, ptr %6, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds %struct.cellb, ptr %250, i64 %252
  %254 = getelementptr inbounds %struct.cellb, ptr %253, i32 0, i32 1
  %255 = load double, ptr %254, align 8, !tbaa !134
  %256 = fadd double %241, %255
  %257 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %258 = load i32, ptr %3, align 4, !tbaa !9
  %259 = sub nsw i32 %258, 1
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %257, i32 noundef %259)
  %261 = load ptr, ptr %260, align 8, !tbaa !5
  %262 = load i32, ptr %5, align 4, !tbaa !9
  %263 = add nsw i32 %262, 1
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds ptr, ptr %261, i64 %264
  %266 = load ptr, ptr %265, align 8, !tbaa !5
  %267 = load i32, ptr %6, align 4, !tbaa !9
  %268 = sext i32 %267 to i64
  %269 = getelementptr inbounds %struct.cellb, ptr %266, i64 %268
  %270 = getelementptr inbounds %struct.cellb, ptr %269, i32 0, i32 1
  %271 = load double, ptr %270, align 8, !tbaa !134
  %272 = fadd double %256, %271
  %273 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %274 = load i32, ptr %3, align 4, !tbaa !9
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %273, i32 noundef %274)
  %276 = load ptr, ptr %275, align 8, !tbaa !5
  %277 = load i32, ptr %5, align 4, !tbaa !9
  %278 = add nsw i32 %277, 1
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds ptr, ptr %276, i64 %279
  %281 = load ptr, ptr %280, align 8, !tbaa !5
  %282 = load i32, ptr %6, align 4, !tbaa !9
  %283 = sub nsw i32 %282, 1
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds %struct.cellb, ptr %281, i64 %284
  %286 = getelementptr inbounds %struct.cellb, ptr %285, i32 0, i32 1
  %287 = load double, ptr %286, align 8, !tbaa !134
  %288 = fadd double %272, %287
  %289 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %290 = load i32, ptr %3, align 4, !tbaa !9
  %291 = sub nsw i32 %290, 1
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %289, i32 noundef %291)
  %293 = load ptr, ptr %292, align 8, !tbaa !5
  %294 = load i32, ptr %5, align 4, !tbaa !9
  %295 = add nsw i32 %294, 1
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds ptr, ptr %293, i64 %296
  %298 = load ptr, ptr %297, align 8, !tbaa !5
  %299 = load i32, ptr %6, align 4, !tbaa !9
  %300 = sub nsw i32 %299, 1
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds %struct.cellb, ptr %298, i64 %301
  %303 = getelementptr inbounds %struct.cellb, ptr %302, i32 0, i32 1
  %304 = load double, ptr %303, align 8, !tbaa !134
  %305 = fadd double %288, %304
  %306 = fmul double 1.250000e-01, %305
  %307 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %308 = load i32, ptr %3, align 4, !tbaa !9
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %307, i32 noundef %308)
  %310 = load ptr, ptr %309, align 8, !tbaa !5
  %311 = load i32, ptr %5, align 4, !tbaa !9
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds ptr, ptr %310, i64 %312
  %314 = load ptr, ptr %313, align 8, !tbaa !5
  %315 = load i32, ptr %6, align 4, !tbaa !9
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds %struct.cellbe, ptr %314, i64 %316
  %318 = getelementptr inbounds %struct.cellbe, ptr %317, i32 0, i32 1
  store double %306, ptr %318, align 8, !tbaa !135
  %319 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %320 = load i32, ptr %3, align 4, !tbaa !9
  %321 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %319, i32 noundef %320)
  %322 = load ptr, ptr %321, align 8, !tbaa !5
  %323 = load i32, ptr %5, align 4, !tbaa !9
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds ptr, ptr %322, i64 %324
  %326 = load ptr, ptr %325, align 8, !tbaa !5
  %327 = load i32, ptr %6, align 4, !tbaa !9
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds %struct.cellb, ptr %326, i64 %328
  %330 = getelementptr inbounds %struct.cellb, ptr %329, i32 0, i32 2
  %331 = load double, ptr %330, align 8, !tbaa !136
  %332 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %333 = load i32, ptr %3, align 4, !tbaa !9
  %334 = sub nsw i32 %333, 1
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %332, i32 noundef %334)
  %336 = load ptr, ptr %335, align 8, !tbaa !5
  %337 = load i32, ptr %5, align 4, !tbaa !9
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds ptr, ptr %336, i64 %338
  %340 = load ptr, ptr %339, align 8, !tbaa !5
  %341 = load i32, ptr %6, align 4, !tbaa !9
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds %struct.cellb, ptr %340, i64 %342
  %344 = getelementptr inbounds %struct.cellb, ptr %343, i32 0, i32 2
  %345 = load double, ptr %344, align 8, !tbaa !136
  %346 = fadd double %331, %345
  %347 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %348 = load i32, ptr %3, align 4, !tbaa !9
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %347, i32 noundef %348)
  %350 = load ptr, ptr %349, align 8, !tbaa !5
  %351 = load i32, ptr %5, align 4, !tbaa !9
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds ptr, ptr %350, i64 %352
  %354 = load ptr, ptr %353, align 8, !tbaa !5
  %355 = load i32, ptr %6, align 4, !tbaa !9
  %356 = add nsw i32 %355, 1
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds %struct.cellb, ptr %354, i64 %357
  %359 = getelementptr inbounds %struct.cellb, ptr %358, i32 0, i32 2
  %360 = load double, ptr %359, align 8, !tbaa !136
  %361 = fadd double %346, %360
  %362 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %363 = load i32, ptr %3, align 4, !tbaa !9
  %364 = sub nsw i32 %363, 1
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %362, i32 noundef %364)
  %366 = load ptr, ptr %365, align 8, !tbaa !5
  %367 = load i32, ptr %5, align 4, !tbaa !9
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds ptr, ptr %366, i64 %368
  %370 = load ptr, ptr %369, align 8, !tbaa !5
  %371 = load i32, ptr %6, align 4, !tbaa !9
  %372 = add nsw i32 %371, 1
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds %struct.cellb, ptr %370, i64 %373
  %375 = getelementptr inbounds %struct.cellb, ptr %374, i32 0, i32 2
  %376 = load double, ptr %375, align 8, !tbaa !136
  %377 = fadd double %361, %376
  %378 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %379 = load i32, ptr %3, align 4, !tbaa !9
  %380 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %378, i32 noundef %379)
  %381 = load ptr, ptr %380, align 8, !tbaa !5
  %382 = load i32, ptr %5, align 4, !tbaa !9
  %383 = sub nsw i32 %382, 1
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds ptr, ptr %381, i64 %384
  %386 = load ptr, ptr %385, align 8, !tbaa !5
  %387 = load i32, ptr %6, align 4, !tbaa !9
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds %struct.cellb, ptr %386, i64 %388
  %390 = getelementptr inbounds %struct.cellb, ptr %389, i32 0, i32 2
  %391 = load double, ptr %390, align 8, !tbaa !136
  %392 = fadd double %377, %391
  %393 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %394 = load i32, ptr %3, align 4, !tbaa !9
  %395 = sub nsw i32 %394, 1
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %393, i32 noundef %395)
  %397 = load ptr, ptr %396, align 8, !tbaa !5
  %398 = load i32, ptr %5, align 4, !tbaa !9
  %399 = sub nsw i32 %398, 1
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds ptr, ptr %397, i64 %400
  %402 = load ptr, ptr %401, align 8, !tbaa !5
  %403 = load i32, ptr %6, align 4, !tbaa !9
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds %struct.cellb, ptr %402, i64 %404
  %406 = getelementptr inbounds %struct.cellb, ptr %405, i32 0, i32 2
  %407 = load double, ptr %406, align 8, !tbaa !136
  %408 = fadd double %392, %407
  %409 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %410 = load i32, ptr %3, align 4, !tbaa !9
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %409, i32 noundef %410)
  %412 = load ptr, ptr %411, align 8, !tbaa !5
  %413 = load i32, ptr %5, align 4, !tbaa !9
  %414 = sub nsw i32 %413, 1
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds ptr, ptr %412, i64 %415
  %417 = load ptr, ptr %416, align 8, !tbaa !5
  %418 = load i32, ptr %6, align 4, !tbaa !9
  %419 = add nsw i32 %418, 1
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds %struct.cellb, ptr %417, i64 %420
  %422 = getelementptr inbounds %struct.cellb, ptr %421, i32 0, i32 2
  %423 = load double, ptr %422, align 8, !tbaa !136
  %424 = fadd double %408, %423
  %425 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %426 = load i32, ptr %3, align 4, !tbaa !9
  %427 = sub nsw i32 %426, 1
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %425, i32 noundef %427)
  %429 = load ptr, ptr %428, align 8, !tbaa !5
  %430 = load i32, ptr %5, align 4, !tbaa !9
  %431 = sub nsw i32 %430, 1
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds ptr, ptr %429, i64 %432
  %434 = load ptr, ptr %433, align 8, !tbaa !5
  %435 = load i32, ptr %6, align 4, !tbaa !9
  %436 = add nsw i32 %435, 1
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds %struct.cellb, ptr %434, i64 %437
  %439 = getelementptr inbounds %struct.cellb, ptr %438, i32 0, i32 2
  %440 = load double, ptr %439, align 8, !tbaa !136
  %441 = fadd double %424, %440
  %442 = fmul double 1.250000e-01, %441
  %443 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %444 = load i32, ptr %3, align 4, !tbaa !9
  %445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %443, i32 noundef %444)
  %446 = load ptr, ptr %445, align 8, !tbaa !5
  %447 = load i32, ptr %5, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds ptr, ptr %446, i64 %448
  %450 = load ptr, ptr %449, align 8, !tbaa !5
  %451 = load i32, ptr %6, align 4, !tbaa !9
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds %struct.cellbe, ptr %450, i64 %452
  %454 = getelementptr inbounds %struct.cellbe, ptr %453, i32 0, i32 2
  store double %442, ptr %454, align 8, !tbaa !137
  br label %455

455:                                              ; preds = %46
  %456 = load i32, ptr %6, align 4, !tbaa !9
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %6, align 4, !tbaa !9
  br label %39, !llvm.loop !138

458:                                              ; preds = %45
  br label %459

459:                                              ; preds = %458
  %460 = load i32, ptr %5, align 4, !tbaa !9
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr %5, align 4, !tbaa !9
  br label %31, !llvm.loop !140

462:                                              ; preds = %37
  br label %463

463:                                              ; preds = %462
  %464 = load i32, ptr %3, align 4, !tbaa !9
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr %3, align 4, !tbaa !9
  br label %23, !llvm.loop !141

466:                                              ; preds = %29
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  store i32 0, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  store i32 1, ptr %8, align 4, !tbaa !9
  br label %467

467:                                              ; preds = %767, %466
  %468 = load i32, ptr %8, align 4, !tbaa !9
  %469 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 1
  %470 = load i32, ptr %469, align 4, !tbaa !128
  %471 = sub nsw i32 %470, 1
  %472 = icmp slt i32 %468, %471
  br i1 %472, label %474, label %473

473:                                              ; preds = %467
  store i32 11, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  br label %770

474:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  store i32 1, ptr %9, align 4, !tbaa !9
  br label %475

475:                                              ; preds = %763, %474
  %476 = load i32, ptr %9, align 4, !tbaa !9
  %477 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 2
  %478 = load i32, ptr %477, align 8, !tbaa !129
  %479 = sub nsw i32 %478, 1
  %480 = icmp slt i32 %476, %479
  br i1 %480, label %482, label %481

481:                                              ; preds = %475
  store i32 14, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  br label %766

482:                                              ; preds = %475
  %483 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %484 = load i32, ptr %7, align 4, !tbaa !9
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %483, i32 noundef %484)
  %486 = load ptr, ptr %485, align 8, !tbaa !5
  %487 = load i32, ptr %8, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds ptr, ptr %486, i64 %488
  %490 = load ptr, ptr %489, align 8, !tbaa !5
  %491 = load i32, ptr %9, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds %struct.cellb, ptr %490, i64 %492
  %494 = getelementptr inbounds %struct.cellb, ptr %493, i32 0, i32 0
  %495 = load double, ptr %494, align 8, !tbaa !130
  %496 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %497 = load i32, ptr %7, align 4, !tbaa !9
  %498 = add nsw i32 %497, 1
  %499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %496, i32 noundef %498)
  %500 = load ptr, ptr %499, align 8, !tbaa !5
  %501 = load i32, ptr %8, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds ptr, ptr %500, i64 %502
  %504 = load ptr, ptr %503, align 8, !tbaa !5
  %505 = load i32, ptr %9, align 4, !tbaa !9
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds %struct.cellb, ptr %504, i64 %506
  %508 = getelementptr inbounds %struct.cellb, ptr %507, i32 0, i32 0
  %509 = load double, ptr %508, align 8, !tbaa !130
  %510 = fadd double %495, %509
  %511 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %512 = load i32, ptr %7, align 4, !tbaa !9
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %511, i32 noundef %512)
  %514 = load ptr, ptr %513, align 8, !tbaa !5
  %515 = load i32, ptr %8, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds ptr, ptr %514, i64 %516
  %518 = load ptr, ptr %517, align 8, !tbaa !5
  %519 = load i32, ptr %9, align 4, !tbaa !9
  %520 = sub nsw i32 %519, 1
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds %struct.cellb, ptr %518, i64 %521
  %523 = getelementptr inbounds %struct.cellb, ptr %522, i32 0, i32 0
  %524 = load double, ptr %523, align 8, !tbaa !130
  %525 = fadd double %510, %524
  %526 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %527 = load i32, ptr %7, align 4, !tbaa !9
  %528 = add nsw i32 %527, 1
  %529 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %526, i32 noundef %528)
  %530 = load ptr, ptr %529, align 8, !tbaa !5
  %531 = load i32, ptr %8, align 4, !tbaa !9
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds ptr, ptr %530, i64 %532
  %534 = load ptr, ptr %533, align 8, !tbaa !5
  %535 = load i32, ptr %9, align 4, !tbaa !9
  %536 = sub nsw i32 %535, 1
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds %struct.cellb, ptr %534, i64 %537
  %539 = getelementptr inbounds %struct.cellb, ptr %538, i32 0, i32 0
  %540 = load double, ptr %539, align 8, !tbaa !130
  %541 = fadd double %525, %540
  %542 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %543 = load i32, ptr %7, align 4, !tbaa !9
  %544 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %542, i32 noundef %543)
  %545 = load ptr, ptr %544, align 8, !tbaa !5
  %546 = load i32, ptr %8, align 4, !tbaa !9
  %547 = sub nsw i32 %546, 1
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds ptr, ptr %545, i64 %548
  %550 = load ptr, ptr %549, align 8, !tbaa !5
  %551 = load i32, ptr %9, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds %struct.cellb, ptr %550, i64 %552
  %554 = getelementptr inbounds %struct.cellb, ptr %553, i32 0, i32 0
  %555 = load double, ptr %554, align 8, !tbaa !130
  %556 = fadd double %541, %555
  %557 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %558 = load i32, ptr %7, align 4, !tbaa !9
  %559 = add nsw i32 %558, 1
  %560 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %557, i32 noundef %559)
  %561 = load ptr, ptr %560, align 8, !tbaa !5
  %562 = load i32, ptr %8, align 4, !tbaa !9
  %563 = sub nsw i32 %562, 1
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds ptr, ptr %561, i64 %564
  %566 = load ptr, ptr %565, align 8, !tbaa !5
  %567 = load i32, ptr %9, align 4, !tbaa !9
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds %struct.cellb, ptr %566, i64 %568
  %570 = getelementptr inbounds %struct.cellb, ptr %569, i32 0, i32 0
  %571 = load double, ptr %570, align 8, !tbaa !130
  %572 = fadd double %556, %571
  %573 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %574 = load i32, ptr %7, align 4, !tbaa !9
  %575 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %573, i32 noundef %574)
  %576 = load ptr, ptr %575, align 8, !tbaa !5
  %577 = load i32, ptr %8, align 4, !tbaa !9
  %578 = sub nsw i32 %577, 1
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds ptr, ptr %576, i64 %579
  %581 = load ptr, ptr %580, align 8, !tbaa !5
  %582 = load i32, ptr %9, align 4, !tbaa !9
  %583 = sub nsw i32 %582, 1
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds %struct.cellb, ptr %581, i64 %584
  %586 = getelementptr inbounds %struct.cellb, ptr %585, i32 0, i32 0
  %587 = load double, ptr %586, align 8, !tbaa !130
  %588 = fadd double %572, %587
  %589 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %590 = load i32, ptr %7, align 4, !tbaa !9
  %591 = add nsw i32 %590, 1
  %592 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %589, i32 noundef %591)
  %593 = load ptr, ptr %592, align 8, !tbaa !5
  %594 = load i32, ptr %8, align 4, !tbaa !9
  %595 = sub nsw i32 %594, 1
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds ptr, ptr %593, i64 %596
  %598 = load ptr, ptr %597, align 8, !tbaa !5
  %599 = load i32, ptr %9, align 4, !tbaa !9
  %600 = sub nsw i32 %599, 1
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds %struct.cellb, ptr %598, i64 %601
  %603 = getelementptr inbounds %struct.cellb, ptr %602, i32 0, i32 0
  %604 = load double, ptr %603, align 8, !tbaa !130
  %605 = fadd double %588, %604
  %606 = fmul double 1.250000e-01, %605
  %607 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %608 = load i32, ptr %7, align 4, !tbaa !9
  %609 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %607, i32 noundef %608)
  %610 = load ptr, ptr %609, align 8, !tbaa !5
  %611 = load i32, ptr %8, align 4, !tbaa !9
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds ptr, ptr %610, i64 %612
  %614 = load ptr, ptr %613, align 8, !tbaa !5
  %615 = load i32, ptr %9, align 4, !tbaa !9
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds %struct.cellbe, ptr %614, i64 %616
  %618 = getelementptr inbounds %struct.cellbe, ptr %617, i32 0, i32 0
  store double %606, ptr %618, align 8, !tbaa !132
  %619 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %620 = load i32, ptr %7, align 4, !tbaa !9
  %621 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %619, i32 noundef %620)
  %622 = load ptr, ptr %621, align 8, !tbaa !5
  %623 = load i32, ptr %8, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds ptr, ptr %622, i64 %624
  %626 = load ptr, ptr %625, align 8, !tbaa !5
  %627 = load i32, ptr %9, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds %struct.cellb, ptr %626, i64 %628
  %630 = getelementptr inbounds %struct.cellb, ptr %629, i32 0, i32 1
  %631 = load double, ptr %630, align 8, !tbaa !134
  %632 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %633 = load i32, ptr %7, align 4, !tbaa !9
  %634 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %632, i32 noundef %633)
  %635 = load ptr, ptr %634, align 8, !tbaa !5
  %636 = load i32, ptr %8, align 4, !tbaa !9
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds ptr, ptr %635, i64 %637
  %639 = load ptr, ptr %638, align 8, !tbaa !5
  %640 = load i32, ptr %9, align 4, !tbaa !9
  %641 = sub nsw i32 %640, 1
  %642 = sext i32 %641 to i64
  %643 = getelementptr inbounds %struct.cellb, ptr %639, i64 %642
  %644 = getelementptr inbounds %struct.cellb, ptr %643, i32 0, i32 1
  %645 = load double, ptr %644, align 8, !tbaa !134
  %646 = fadd double %631, %645
  %647 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %648 = load i32, ptr %7, align 4, !tbaa !9
  %649 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %647, i32 noundef %648)
  %650 = load ptr, ptr %649, align 8, !tbaa !5
  %651 = load i32, ptr %8, align 4, !tbaa !9
  %652 = add nsw i32 %651, 1
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds ptr, ptr %650, i64 %653
  %655 = load ptr, ptr %654, align 8, !tbaa !5
  %656 = load i32, ptr %9, align 4, !tbaa !9
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds %struct.cellb, ptr %655, i64 %657
  %659 = getelementptr inbounds %struct.cellb, ptr %658, i32 0, i32 1
  %660 = load double, ptr %659, align 8, !tbaa !134
  %661 = fadd double %646, %660
  %662 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %663 = load i32, ptr %7, align 4, !tbaa !9
  %664 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %662, i32 noundef %663)
  %665 = load ptr, ptr %664, align 8, !tbaa !5
  %666 = load i32, ptr %8, align 4, !tbaa !9
  %667 = add nsw i32 %666, 1
  %668 = sext i32 %667 to i64
  %669 = getelementptr inbounds ptr, ptr %665, i64 %668
  %670 = load ptr, ptr %669, align 8, !tbaa !5
  %671 = load i32, ptr %9, align 4, !tbaa !9
  %672 = sub nsw i32 %671, 1
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds %struct.cellb, ptr %670, i64 %673
  %675 = getelementptr inbounds %struct.cellb, ptr %674, i32 0, i32 1
  %676 = load double, ptr %675, align 8, !tbaa !134
  %677 = fadd double %661, %676
  %678 = fmul double 2.500000e-01, %677
  %679 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %680 = load i32, ptr %7, align 4, !tbaa !9
  %681 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %679, i32 noundef %680)
  %682 = load ptr, ptr %681, align 8, !tbaa !5
  %683 = load i32, ptr %8, align 4, !tbaa !9
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds ptr, ptr %682, i64 %684
  %686 = load ptr, ptr %685, align 8, !tbaa !5
  %687 = load i32, ptr %9, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds %struct.cellbe, ptr %686, i64 %688
  %690 = getelementptr inbounds %struct.cellbe, ptr %689, i32 0, i32 1
  store double %678, ptr %690, align 8, !tbaa !135
  %691 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %692 = load i32, ptr %7, align 4, !tbaa !9
  %693 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %691, i32 noundef %692)
  %694 = load ptr, ptr %693, align 8, !tbaa !5
  %695 = load i32, ptr %8, align 4, !tbaa !9
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds ptr, ptr %694, i64 %696
  %698 = load ptr, ptr %697, align 8, !tbaa !5
  %699 = load i32, ptr %9, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds %struct.cellb, ptr %698, i64 %700
  %702 = getelementptr inbounds %struct.cellb, ptr %701, i32 0, i32 2
  %703 = load double, ptr %702, align 8, !tbaa !136
  %704 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %705 = load i32, ptr %7, align 4, !tbaa !9
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %704, i32 noundef %705)
  %707 = load ptr, ptr %706, align 8, !tbaa !5
  %708 = load i32, ptr %8, align 4, !tbaa !9
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds ptr, ptr %707, i64 %709
  %711 = load ptr, ptr %710, align 8, !tbaa !5
  %712 = load i32, ptr %9, align 4, !tbaa !9
  %713 = add nsw i32 %712, 1
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds %struct.cellb, ptr %711, i64 %714
  %716 = getelementptr inbounds %struct.cellb, ptr %715, i32 0, i32 2
  %717 = load double, ptr %716, align 8, !tbaa !136
  %718 = fadd double %703, %717
  %719 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %720 = load i32, ptr %7, align 4, !tbaa !9
  %721 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %719, i32 noundef %720)
  %722 = load ptr, ptr %721, align 8, !tbaa !5
  %723 = load i32, ptr %8, align 4, !tbaa !9
  %724 = sub nsw i32 %723, 1
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds ptr, ptr %722, i64 %725
  %727 = load ptr, ptr %726, align 8, !tbaa !5
  %728 = load i32, ptr %9, align 4, !tbaa !9
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds %struct.cellb, ptr %727, i64 %729
  %731 = getelementptr inbounds %struct.cellb, ptr %730, i32 0, i32 2
  %732 = load double, ptr %731, align 8, !tbaa !136
  %733 = fadd double %718, %732
  %734 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %735 = load i32, ptr %7, align 4, !tbaa !9
  %736 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %734, i32 noundef %735)
  %737 = load ptr, ptr %736, align 8, !tbaa !5
  %738 = load i32, ptr %8, align 4, !tbaa !9
  %739 = sub nsw i32 %738, 1
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds ptr, ptr %737, i64 %740
  %742 = load ptr, ptr %741, align 8, !tbaa !5
  %743 = load i32, ptr %9, align 4, !tbaa !9
  %744 = add nsw i32 %743, 1
  %745 = sext i32 %744 to i64
  %746 = getelementptr inbounds %struct.cellb, ptr %742, i64 %745
  %747 = getelementptr inbounds %struct.cellb, ptr %746, i32 0, i32 2
  %748 = load double, ptr %747, align 8, !tbaa !136
  %749 = fadd double %733, %748
  %750 = fmul double 2.500000e-01, %749
  %751 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %752 = load i32, ptr %7, align 4, !tbaa !9
  %753 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %751, i32 noundef %752)
  %754 = load ptr, ptr %753, align 8, !tbaa !5
  %755 = load i32, ptr %8, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds ptr, ptr %754, i64 %756
  %758 = load ptr, ptr %757, align 8, !tbaa !5
  %759 = load i32, ptr %9, align 4, !tbaa !9
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds %struct.cellbe, ptr %758, i64 %760
  %762 = getelementptr inbounds %struct.cellbe, ptr %761, i32 0, i32 2
  store double %750, ptr %762, align 8, !tbaa !137
  br label %763

763:                                              ; preds = %482
  %764 = load i32, ptr %9, align 4, !tbaa !9
  %765 = add nsw i32 %764, 1
  store i32 %765, ptr %9, align 4, !tbaa !9
  br label %475, !llvm.loop !142

766:                                              ; preds = %481
  br label %767

767:                                              ; preds = %766
  %768 = load i32, ptr %8, align 4, !tbaa !9
  %769 = add nsw i32 %768, 1
  store i32 %769, ptr %8, align 4, !tbaa !9
  br label %467, !llvm.loop !143

770:                                              ; preds = %473
  %771 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 0
  %772 = load i32, ptr %771, align 8, !tbaa !11
  %773 = sub nsw i32 %772, 1
  store i32 %773, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #3
  store i32 1, ptr %10, align 4, !tbaa !9
  br label %774

774:                                              ; preds = %1138, %770
  %775 = load i32, ptr %10, align 4, !tbaa !9
  %776 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 1
  %777 = load i32, ptr %776, align 4, !tbaa !128
  %778 = sub nsw i32 %777, 1
  %779 = icmp slt i32 %775, %778
  br i1 %779, label %781, label %780

780:                                              ; preds = %774
  store i32 17, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  br label %1141

781:                                              ; preds = %774
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  store i32 1, ptr %11, align 4, !tbaa !9
  br label %782

782:                                              ; preds = %1134, %781
  %783 = load i32, ptr %11, align 4, !tbaa !9
  %784 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 2
  %785 = load i32, ptr %784, align 8, !tbaa !129
  %786 = sub nsw i32 %785, 1
  %787 = icmp slt i32 %783, %786
  br i1 %787, label %789, label %788

788:                                              ; preds = %782
  store i32 20, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  br label %1137

789:                                              ; preds = %782
  %790 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %791 = load i32, ptr %7, align 4, !tbaa !9
  %792 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %790, i32 noundef %791)
  %793 = load ptr, ptr %792, align 8, !tbaa !5
  %794 = load i32, ptr %10, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds ptr, ptr %793, i64 %795
  %797 = load ptr, ptr %796, align 8, !tbaa !5
  %798 = load i32, ptr %11, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds %struct.cellb, ptr %797, i64 %799
  %801 = getelementptr inbounds %struct.cellb, ptr %800, i32 0, i32 0
  %802 = load double, ptr %801, align 8, !tbaa !130
  %803 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %804 = load i32, ptr %7, align 4, !tbaa !9
  %805 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %803, i32 noundef %804)
  %806 = load ptr, ptr %805, align 8, !tbaa !5
  %807 = load i32, ptr %10, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds ptr, ptr %806, i64 %808
  %810 = load ptr, ptr %809, align 8, !tbaa !5
  %811 = load i32, ptr %11, align 4, !tbaa !9
  %812 = sub nsw i32 %811, 1
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds %struct.cellb, ptr %810, i64 %813
  %815 = getelementptr inbounds %struct.cellb, ptr %814, i32 0, i32 0
  %816 = load double, ptr %815, align 8, !tbaa !130
  %817 = fadd double %802, %816
  %818 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %819 = load i32, ptr %7, align 4, !tbaa !9
  %820 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %818, i32 noundef %819)
  %821 = load ptr, ptr %820, align 8, !tbaa !5
  %822 = load i32, ptr %10, align 4, !tbaa !9
  %823 = sub nsw i32 %822, 1
  %824 = sext i32 %823 to i64
  %825 = getelementptr inbounds ptr, ptr %821, i64 %824
  %826 = load ptr, ptr %825, align 8, !tbaa !5
  %827 = load i32, ptr %11, align 4, !tbaa !9
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds %struct.cellb, ptr %826, i64 %828
  %830 = getelementptr inbounds %struct.cellb, ptr %829, i32 0, i32 0
  %831 = load double, ptr %830, align 8, !tbaa !130
  %832 = fadd double %817, %831
  %833 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %834 = load i32, ptr %7, align 4, !tbaa !9
  %835 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %833, i32 noundef %834)
  %836 = load ptr, ptr %835, align 8, !tbaa !5
  %837 = load i32, ptr %10, align 4, !tbaa !9
  %838 = sub nsw i32 %837, 1
  %839 = sext i32 %838 to i64
  %840 = getelementptr inbounds ptr, ptr %836, i64 %839
  %841 = load ptr, ptr %840, align 8, !tbaa !5
  %842 = load i32, ptr %11, align 4, !tbaa !9
  %843 = sub nsw i32 %842, 1
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds %struct.cellb, ptr %841, i64 %844
  %846 = getelementptr inbounds %struct.cellb, ptr %845, i32 0, i32 0
  %847 = load double, ptr %846, align 8, !tbaa !130
  %848 = fadd double %832, %847
  %849 = fmul double 2.500000e-01, %848
  %850 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %851 = load i32, ptr %7, align 4, !tbaa !9
  %852 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %850, i32 noundef %851)
  %853 = load ptr, ptr %852, align 8, !tbaa !5
  %854 = load i32, ptr %10, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds ptr, ptr %853, i64 %855
  %857 = load ptr, ptr %856, align 8, !tbaa !5
  %858 = load i32, ptr %11, align 4, !tbaa !9
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds %struct.cellbe, ptr %857, i64 %859
  %861 = getelementptr inbounds %struct.cellbe, ptr %860, i32 0, i32 0
  store double %849, ptr %861, align 8, !tbaa !132
  %862 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %863 = load i32, ptr %7, align 4, !tbaa !9
  %864 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %862, i32 noundef %863)
  %865 = load ptr, ptr %864, align 8, !tbaa !5
  %866 = load i32, ptr %10, align 4, !tbaa !9
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds ptr, ptr %865, i64 %867
  %869 = load ptr, ptr %868, align 8, !tbaa !5
  %870 = load i32, ptr %11, align 4, !tbaa !9
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds %struct.cellb, ptr %869, i64 %871
  %873 = getelementptr inbounds %struct.cellb, ptr %872, i32 0, i32 1
  %874 = load double, ptr %873, align 8, !tbaa !134
  %875 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %876 = load i32, ptr %7, align 4, !tbaa !9
  %877 = sub nsw i32 %876, 1
  %878 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %875, i32 noundef %877)
  %879 = load ptr, ptr %878, align 8, !tbaa !5
  %880 = load i32, ptr %10, align 4, !tbaa !9
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds ptr, ptr %879, i64 %881
  %883 = load ptr, ptr %882, align 8, !tbaa !5
  %884 = load i32, ptr %11, align 4, !tbaa !9
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds %struct.cellb, ptr %883, i64 %885
  %887 = getelementptr inbounds %struct.cellb, ptr %886, i32 0, i32 1
  %888 = load double, ptr %887, align 8, !tbaa !134
  %889 = fadd double %874, %888
  %890 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %891 = load i32, ptr %7, align 4, !tbaa !9
  %892 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %891)
  %893 = load ptr, ptr %892, align 8, !tbaa !5
  %894 = load i32, ptr %10, align 4, !tbaa !9
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds ptr, ptr %893, i64 %895
  %897 = load ptr, ptr %896, align 8, !tbaa !5
  %898 = load i32, ptr %11, align 4, !tbaa !9
  %899 = sub nsw i32 %898, 1
  %900 = sext i32 %899 to i64
  %901 = getelementptr inbounds %struct.cellb, ptr %897, i64 %900
  %902 = getelementptr inbounds %struct.cellb, ptr %901, i32 0, i32 1
  %903 = load double, ptr %902, align 8, !tbaa !134
  %904 = fadd double %889, %903
  %905 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %906 = load i32, ptr %7, align 4, !tbaa !9
  %907 = sub nsw i32 %906, 1
  %908 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %905, i32 noundef %907)
  %909 = load ptr, ptr %908, align 8, !tbaa !5
  %910 = load i32, ptr %10, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds ptr, ptr %909, i64 %911
  %913 = load ptr, ptr %912, align 8, !tbaa !5
  %914 = load i32, ptr %11, align 4, !tbaa !9
  %915 = sub nsw i32 %914, 1
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds %struct.cellb, ptr %913, i64 %916
  %918 = getelementptr inbounds %struct.cellb, ptr %917, i32 0, i32 1
  %919 = load double, ptr %918, align 8, !tbaa !134
  %920 = fadd double %904, %919
  %921 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %922 = load i32, ptr %7, align 4, !tbaa !9
  %923 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %921, i32 noundef %922)
  %924 = load ptr, ptr %923, align 8, !tbaa !5
  %925 = load i32, ptr %10, align 4, !tbaa !9
  %926 = add nsw i32 %925, 1
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds ptr, ptr %924, i64 %927
  %929 = load ptr, ptr %928, align 8, !tbaa !5
  %930 = load i32, ptr %11, align 4, !tbaa !9
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds %struct.cellb, ptr %929, i64 %931
  %933 = getelementptr inbounds %struct.cellb, ptr %932, i32 0, i32 1
  %934 = load double, ptr %933, align 8, !tbaa !134
  %935 = fadd double %920, %934
  %936 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %937 = load i32, ptr %7, align 4, !tbaa !9
  %938 = sub nsw i32 %937, 1
  %939 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %936, i32 noundef %938)
  %940 = load ptr, ptr %939, align 8, !tbaa !5
  %941 = load i32, ptr %10, align 4, !tbaa !9
  %942 = add nsw i32 %941, 1
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds ptr, ptr %940, i64 %943
  %945 = load ptr, ptr %944, align 8, !tbaa !5
  %946 = load i32, ptr %11, align 4, !tbaa !9
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds %struct.cellb, ptr %945, i64 %947
  %949 = getelementptr inbounds %struct.cellb, ptr %948, i32 0, i32 1
  %950 = load double, ptr %949, align 8, !tbaa !134
  %951 = fadd double %935, %950
  %952 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %953 = load i32, ptr %7, align 4, !tbaa !9
  %954 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %952, i32 noundef %953)
  %955 = load ptr, ptr %954, align 8, !tbaa !5
  %956 = load i32, ptr %10, align 4, !tbaa !9
  %957 = add nsw i32 %956, 1
  %958 = sext i32 %957 to i64
  %959 = getelementptr inbounds ptr, ptr %955, i64 %958
  %960 = load ptr, ptr %959, align 8, !tbaa !5
  %961 = load i32, ptr %11, align 4, !tbaa !9
  %962 = sub nsw i32 %961, 1
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds %struct.cellb, ptr %960, i64 %963
  %965 = getelementptr inbounds %struct.cellb, ptr %964, i32 0, i32 1
  %966 = load double, ptr %965, align 8, !tbaa !134
  %967 = fadd double %951, %966
  %968 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %969 = load i32, ptr %7, align 4, !tbaa !9
  %970 = sub nsw i32 %969, 1
  %971 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %968, i32 noundef %970)
  %972 = load ptr, ptr %971, align 8, !tbaa !5
  %973 = load i32, ptr %10, align 4, !tbaa !9
  %974 = add nsw i32 %973, 1
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds ptr, ptr %972, i64 %975
  %977 = load ptr, ptr %976, align 8, !tbaa !5
  %978 = load i32, ptr %11, align 4, !tbaa !9
  %979 = sub nsw i32 %978, 1
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds %struct.cellb, ptr %977, i64 %980
  %982 = getelementptr inbounds %struct.cellb, ptr %981, i32 0, i32 1
  %983 = load double, ptr %982, align 8, !tbaa !134
  %984 = fadd double %967, %983
  %985 = fmul double 1.250000e-01, %984
  %986 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %987 = load i32, ptr %7, align 4, !tbaa !9
  %988 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %986, i32 noundef %987)
  %989 = load ptr, ptr %988, align 8, !tbaa !5
  %990 = load i32, ptr %10, align 4, !tbaa !9
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds ptr, ptr %989, i64 %991
  %993 = load ptr, ptr %992, align 8, !tbaa !5
  %994 = load i32, ptr %11, align 4, !tbaa !9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds %struct.cellbe, ptr %993, i64 %995
  %997 = getelementptr inbounds %struct.cellbe, ptr %996, i32 0, i32 1
  store double %985, ptr %997, align 8, !tbaa !135
  %998 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %999 = load i32, ptr %7, align 4, !tbaa !9
  %1000 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %998, i32 noundef %999)
  %1001 = load ptr, ptr %1000, align 8, !tbaa !5
  %1002 = load i32, ptr %10, align 4, !tbaa !9
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds ptr, ptr %1001, i64 %1003
  %1005 = load ptr, ptr %1004, align 8, !tbaa !5
  %1006 = load i32, ptr %11, align 4, !tbaa !9
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds %struct.cellb, ptr %1005, i64 %1007
  %1009 = getelementptr inbounds %struct.cellb, ptr %1008, i32 0, i32 2
  %1010 = load double, ptr %1009, align 8, !tbaa !136
  %1011 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1012 = load i32, ptr %7, align 4, !tbaa !9
  %1013 = sub nsw i32 %1012, 1
  %1014 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1011, i32 noundef %1013)
  %1015 = load ptr, ptr %1014, align 8, !tbaa !5
  %1016 = load i32, ptr %10, align 4, !tbaa !9
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds ptr, ptr %1015, i64 %1017
  %1019 = load ptr, ptr %1018, align 8, !tbaa !5
  %1020 = load i32, ptr %11, align 4, !tbaa !9
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds %struct.cellb, ptr %1019, i64 %1021
  %1023 = getelementptr inbounds %struct.cellb, ptr %1022, i32 0, i32 2
  %1024 = load double, ptr %1023, align 8, !tbaa !136
  %1025 = fadd double %1010, %1024
  %1026 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1027 = load i32, ptr %7, align 4, !tbaa !9
  %1028 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1026, i32 noundef %1027)
  %1029 = load ptr, ptr %1028, align 8, !tbaa !5
  %1030 = load i32, ptr %10, align 4, !tbaa !9
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds ptr, ptr %1029, i64 %1031
  %1033 = load ptr, ptr %1032, align 8, !tbaa !5
  %1034 = load i32, ptr %11, align 4, !tbaa !9
  %1035 = add nsw i32 %1034, 1
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds %struct.cellb, ptr %1033, i64 %1036
  %1038 = getelementptr inbounds %struct.cellb, ptr %1037, i32 0, i32 2
  %1039 = load double, ptr %1038, align 8, !tbaa !136
  %1040 = fadd double %1025, %1039
  %1041 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1042 = load i32, ptr %7, align 4, !tbaa !9
  %1043 = sub nsw i32 %1042, 1
  %1044 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1041, i32 noundef %1043)
  %1045 = load ptr, ptr %1044, align 8, !tbaa !5
  %1046 = load i32, ptr %10, align 4, !tbaa !9
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds ptr, ptr %1045, i64 %1047
  %1049 = load ptr, ptr %1048, align 8, !tbaa !5
  %1050 = load i32, ptr %11, align 4, !tbaa !9
  %1051 = add nsw i32 %1050, 1
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.cellb, ptr %1049, i64 %1052
  %1054 = getelementptr inbounds %struct.cellb, ptr %1053, i32 0, i32 2
  %1055 = load double, ptr %1054, align 8, !tbaa !136
  %1056 = fadd double %1040, %1055
  %1057 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1058 = load i32, ptr %7, align 4, !tbaa !9
  %1059 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1057, i32 noundef %1058)
  %1060 = load ptr, ptr %1059, align 8, !tbaa !5
  %1061 = load i32, ptr %10, align 4, !tbaa !9
  %1062 = sub nsw i32 %1061, 1
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds ptr, ptr %1060, i64 %1063
  %1065 = load ptr, ptr %1064, align 8, !tbaa !5
  %1066 = load i32, ptr %11, align 4, !tbaa !9
  %1067 = sext i32 %1066 to i64
  %1068 = getelementptr inbounds %struct.cellb, ptr %1065, i64 %1067
  %1069 = getelementptr inbounds %struct.cellb, ptr %1068, i32 0, i32 2
  %1070 = load double, ptr %1069, align 8, !tbaa !136
  %1071 = fadd double %1056, %1070
  %1072 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1073 = load i32, ptr %7, align 4, !tbaa !9
  %1074 = sub nsw i32 %1073, 1
  %1075 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1072, i32 noundef %1074)
  %1076 = load ptr, ptr %1075, align 8, !tbaa !5
  %1077 = load i32, ptr %10, align 4, !tbaa !9
  %1078 = sub nsw i32 %1077, 1
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds ptr, ptr %1076, i64 %1079
  %1081 = load ptr, ptr %1080, align 8, !tbaa !5
  %1082 = load i32, ptr %11, align 4, !tbaa !9
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds %struct.cellb, ptr %1081, i64 %1083
  %1085 = getelementptr inbounds %struct.cellb, ptr %1084, i32 0, i32 2
  %1086 = load double, ptr %1085, align 8, !tbaa !136
  %1087 = fadd double %1071, %1086
  %1088 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1089 = load i32, ptr %7, align 4, !tbaa !9
  %1090 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1088, i32 noundef %1089)
  %1091 = load ptr, ptr %1090, align 8, !tbaa !5
  %1092 = load i32, ptr %10, align 4, !tbaa !9
  %1093 = sub nsw i32 %1092, 1
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds ptr, ptr %1091, i64 %1094
  %1096 = load ptr, ptr %1095, align 8, !tbaa !5
  %1097 = load i32, ptr %11, align 4, !tbaa !9
  %1098 = add nsw i32 %1097, 1
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds %struct.cellb, ptr %1096, i64 %1099
  %1101 = getelementptr inbounds %struct.cellb, ptr %1100, i32 0, i32 2
  %1102 = load double, ptr %1101, align 8, !tbaa !136
  %1103 = fadd double %1087, %1102
  %1104 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1105 = load i32, ptr %7, align 4, !tbaa !9
  %1106 = sub nsw i32 %1105, 1
  %1107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1104, i32 noundef %1106)
  %1108 = load ptr, ptr %1107, align 8, !tbaa !5
  %1109 = load i32, ptr %10, align 4, !tbaa !9
  %1110 = sub nsw i32 %1109, 1
  %1111 = sext i32 %1110 to i64
  %1112 = getelementptr inbounds ptr, ptr %1108, i64 %1111
  %1113 = load ptr, ptr %1112, align 8, !tbaa !5
  %1114 = load i32, ptr %11, align 4, !tbaa !9
  %1115 = add nsw i32 %1114, 1
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds %struct.cellb, ptr %1113, i64 %1116
  %1118 = getelementptr inbounds %struct.cellb, ptr %1117, i32 0, i32 2
  %1119 = load double, ptr %1118, align 8, !tbaa !136
  %1120 = fadd double %1103, %1119
  %1121 = fmul double 1.250000e-01, %1120
  %1122 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1123 = load i32, ptr %7, align 4, !tbaa !9
  %1124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1122, i32 noundef %1123)
  %1125 = load ptr, ptr %1124, align 8, !tbaa !5
  %1126 = load i32, ptr %10, align 4, !tbaa !9
  %1127 = sext i32 %1126 to i64
  %1128 = getelementptr inbounds ptr, ptr %1125, i64 %1127
  %1129 = load ptr, ptr %1128, align 8, !tbaa !5
  %1130 = load i32, ptr %11, align 4, !tbaa !9
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds %struct.cellbe, ptr %1129, i64 %1131
  %1133 = getelementptr inbounds %struct.cellbe, ptr %1132, i32 0, i32 2
  store double %1121, ptr %1133, align 8, !tbaa !137
  br label %1134

1134:                                             ; preds = %789
  %1135 = load i32, ptr %11, align 4, !tbaa !9
  %1136 = add nsw i32 %1135, 1
  store i32 %1136, ptr %11, align 4, !tbaa !9
  br label %782, !llvm.loop !144

1137:                                             ; preds = %788
  br label %1138

1138:                                             ; preds = %1137
  %1139 = load i32, ptr %10, align 4, !tbaa !9
  %1140 = add nsw i32 %1139, 1
  store i32 %1140, ptr %10, align 4, !tbaa !9
  br label %774, !llvm.loop !145

1141:                                             ; preds = %780
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %1142

1142:                                             ; preds = %1442, %1141
  %1143 = load i32, ptr %13, align 4, !tbaa !9
  %1144 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 0
  %1145 = load i32, ptr %1144, align 8, !tbaa !11
  %1146 = sub nsw i32 %1145, 1
  %1147 = icmp slt i32 %1143, %1146
  br i1 %1147, label %1149, label %1148

1148:                                             ; preds = %1142
  store i32 23, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  br label %1445

1149:                                             ; preds = %1142
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #3
  store i32 1, ptr %14, align 4, !tbaa !9
  br label %1150

1150:                                             ; preds = %1438, %1149
  %1151 = load i32, ptr %14, align 4, !tbaa !9
  %1152 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 2
  %1153 = load i32, ptr %1152, align 8, !tbaa !129
  %1154 = sub nsw i32 %1153, 1
  %1155 = icmp slt i32 %1151, %1154
  br i1 %1155, label %1157, label %1156

1156:                                             ; preds = %1150
  store i32 26, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #3
  br label %1441

1157:                                             ; preds = %1150
  %1158 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1159 = load i32, ptr %13, align 4, !tbaa !9
  %1160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1158, i32 noundef %1159)
  %1161 = load ptr, ptr %1160, align 8, !tbaa !5
  %1162 = load i32, ptr %12, align 4, !tbaa !9
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds ptr, ptr %1161, i64 %1163
  %1165 = load ptr, ptr %1164, align 8, !tbaa !5
  %1166 = load i32, ptr %14, align 4, !tbaa !9
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds %struct.cellb, ptr %1165, i64 %1167
  %1169 = getelementptr inbounds %struct.cellb, ptr %1168, i32 0, i32 0
  %1170 = load double, ptr %1169, align 8, !tbaa !130
  %1171 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1172 = load i32, ptr %13, align 4, !tbaa !9
  %1173 = add nsw i32 %1172, 1
  %1174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1171, i32 noundef %1173)
  %1175 = load ptr, ptr %1174, align 8, !tbaa !5
  %1176 = load i32, ptr %12, align 4, !tbaa !9
  %1177 = sext i32 %1176 to i64
  %1178 = getelementptr inbounds ptr, ptr %1175, i64 %1177
  %1179 = load ptr, ptr %1178, align 8, !tbaa !5
  %1180 = load i32, ptr %14, align 4, !tbaa !9
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds %struct.cellb, ptr %1179, i64 %1181
  %1183 = getelementptr inbounds %struct.cellb, ptr %1182, i32 0, i32 0
  %1184 = load double, ptr %1183, align 8, !tbaa !130
  %1185 = fadd double %1170, %1184
  %1186 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1187 = load i32, ptr %13, align 4, !tbaa !9
  %1188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1186, i32 noundef %1187)
  %1189 = load ptr, ptr %1188, align 8, !tbaa !5
  %1190 = load i32, ptr %12, align 4, !tbaa !9
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds ptr, ptr %1189, i64 %1191
  %1193 = load ptr, ptr %1192, align 8, !tbaa !5
  %1194 = load i32, ptr %14, align 4, !tbaa !9
  %1195 = sub nsw i32 %1194, 1
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds %struct.cellb, ptr %1193, i64 %1196
  %1198 = getelementptr inbounds %struct.cellb, ptr %1197, i32 0, i32 0
  %1199 = load double, ptr %1198, align 8, !tbaa !130
  %1200 = fadd double %1185, %1199
  %1201 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1202 = load i32, ptr %13, align 4, !tbaa !9
  %1203 = add nsw i32 %1202, 1
  %1204 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1201, i32 noundef %1203)
  %1205 = load ptr, ptr %1204, align 8, !tbaa !5
  %1206 = load i32, ptr %12, align 4, !tbaa !9
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds ptr, ptr %1205, i64 %1207
  %1209 = load ptr, ptr %1208, align 8, !tbaa !5
  %1210 = load i32, ptr %14, align 4, !tbaa !9
  %1211 = sub nsw i32 %1210, 1
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds %struct.cellb, ptr %1209, i64 %1212
  %1214 = getelementptr inbounds %struct.cellb, ptr %1213, i32 0, i32 0
  %1215 = load double, ptr %1214, align 8, !tbaa !130
  %1216 = fadd double %1200, %1215
  %1217 = fmul double 2.500000e-01, %1216
  %1218 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1219 = load i32, ptr %13, align 4, !tbaa !9
  %1220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1218, i32 noundef %1219)
  %1221 = load ptr, ptr %1220, align 8, !tbaa !5
  %1222 = load i32, ptr %12, align 4, !tbaa !9
  %1223 = sext i32 %1222 to i64
  %1224 = getelementptr inbounds ptr, ptr %1221, i64 %1223
  %1225 = load ptr, ptr %1224, align 8, !tbaa !5
  %1226 = load i32, ptr %14, align 4, !tbaa !9
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds %struct.cellbe, ptr %1225, i64 %1227
  %1229 = getelementptr inbounds %struct.cellbe, ptr %1228, i32 0, i32 0
  store double %1217, ptr %1229, align 8, !tbaa !132
  %1230 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1231 = load i32, ptr %13, align 4, !tbaa !9
  %1232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1230, i32 noundef %1231)
  %1233 = load ptr, ptr %1232, align 8, !tbaa !5
  %1234 = load i32, ptr %12, align 4, !tbaa !9
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds ptr, ptr %1233, i64 %1235
  %1237 = load ptr, ptr %1236, align 8, !tbaa !5
  %1238 = load i32, ptr %14, align 4, !tbaa !9
  %1239 = sext i32 %1238 to i64
  %1240 = getelementptr inbounds %struct.cellb, ptr %1237, i64 %1239
  %1241 = getelementptr inbounds %struct.cellb, ptr %1240, i32 0, i32 1
  %1242 = load double, ptr %1241, align 8, !tbaa !134
  %1243 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1244 = load i32, ptr %13, align 4, !tbaa !9
  %1245 = sub nsw i32 %1244, 1
  %1246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1243, i32 noundef %1245)
  %1247 = load ptr, ptr %1246, align 8, !tbaa !5
  %1248 = load i32, ptr %12, align 4, !tbaa !9
  %1249 = sext i32 %1248 to i64
  %1250 = getelementptr inbounds ptr, ptr %1247, i64 %1249
  %1251 = load ptr, ptr %1250, align 8, !tbaa !5
  %1252 = load i32, ptr %14, align 4, !tbaa !9
  %1253 = sext i32 %1252 to i64
  %1254 = getelementptr inbounds %struct.cellb, ptr %1251, i64 %1253
  %1255 = getelementptr inbounds %struct.cellb, ptr %1254, i32 0, i32 1
  %1256 = load double, ptr %1255, align 8, !tbaa !134
  %1257 = fadd double %1242, %1256
  %1258 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1259 = load i32, ptr %13, align 4, !tbaa !9
  %1260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1258, i32 noundef %1259)
  %1261 = load ptr, ptr %1260, align 8, !tbaa !5
  %1262 = load i32, ptr %12, align 4, !tbaa !9
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds ptr, ptr %1261, i64 %1263
  %1265 = load ptr, ptr %1264, align 8, !tbaa !5
  %1266 = load i32, ptr %14, align 4, !tbaa !9
  %1267 = sub nsw i32 %1266, 1
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds %struct.cellb, ptr %1265, i64 %1268
  %1270 = getelementptr inbounds %struct.cellb, ptr %1269, i32 0, i32 1
  %1271 = load double, ptr %1270, align 8, !tbaa !134
  %1272 = fadd double %1257, %1271
  %1273 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1274 = load i32, ptr %13, align 4, !tbaa !9
  %1275 = sub nsw i32 %1274, 1
  %1276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1273, i32 noundef %1275)
  %1277 = load ptr, ptr %1276, align 8, !tbaa !5
  %1278 = load i32, ptr %12, align 4, !tbaa !9
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds ptr, ptr %1277, i64 %1279
  %1281 = load ptr, ptr %1280, align 8, !tbaa !5
  %1282 = load i32, ptr %14, align 4, !tbaa !9
  %1283 = sub nsw i32 %1282, 1
  %1284 = sext i32 %1283 to i64
  %1285 = getelementptr inbounds %struct.cellb, ptr %1281, i64 %1284
  %1286 = getelementptr inbounds %struct.cellb, ptr %1285, i32 0, i32 1
  %1287 = load double, ptr %1286, align 8, !tbaa !134
  %1288 = fadd double %1272, %1287
  %1289 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1290 = load i32, ptr %13, align 4, !tbaa !9
  %1291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1289, i32 noundef %1290)
  %1292 = load ptr, ptr %1291, align 8, !tbaa !5
  %1293 = load i32, ptr %12, align 4, !tbaa !9
  %1294 = add nsw i32 %1293, 1
  %1295 = sext i32 %1294 to i64
  %1296 = getelementptr inbounds ptr, ptr %1292, i64 %1295
  %1297 = load ptr, ptr %1296, align 8, !tbaa !5
  %1298 = load i32, ptr %14, align 4, !tbaa !9
  %1299 = sext i32 %1298 to i64
  %1300 = getelementptr inbounds %struct.cellb, ptr %1297, i64 %1299
  %1301 = getelementptr inbounds %struct.cellb, ptr %1300, i32 0, i32 1
  %1302 = load double, ptr %1301, align 8, !tbaa !134
  %1303 = fadd double %1288, %1302
  %1304 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1305 = load i32, ptr %13, align 4, !tbaa !9
  %1306 = sub nsw i32 %1305, 1
  %1307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1304, i32 noundef %1306)
  %1308 = load ptr, ptr %1307, align 8, !tbaa !5
  %1309 = load i32, ptr %12, align 4, !tbaa !9
  %1310 = add nsw i32 %1309, 1
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds ptr, ptr %1308, i64 %1311
  %1313 = load ptr, ptr %1312, align 8, !tbaa !5
  %1314 = load i32, ptr %14, align 4, !tbaa !9
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds %struct.cellb, ptr %1313, i64 %1315
  %1317 = getelementptr inbounds %struct.cellb, ptr %1316, i32 0, i32 1
  %1318 = load double, ptr %1317, align 8, !tbaa !134
  %1319 = fadd double %1303, %1318
  %1320 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1321 = load i32, ptr %13, align 4, !tbaa !9
  %1322 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1320, i32 noundef %1321)
  %1323 = load ptr, ptr %1322, align 8, !tbaa !5
  %1324 = load i32, ptr %12, align 4, !tbaa !9
  %1325 = add nsw i32 %1324, 1
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds ptr, ptr %1323, i64 %1326
  %1328 = load ptr, ptr %1327, align 8, !tbaa !5
  %1329 = load i32, ptr %14, align 4, !tbaa !9
  %1330 = sub nsw i32 %1329, 1
  %1331 = sext i32 %1330 to i64
  %1332 = getelementptr inbounds %struct.cellb, ptr %1328, i64 %1331
  %1333 = getelementptr inbounds %struct.cellb, ptr %1332, i32 0, i32 1
  %1334 = load double, ptr %1333, align 8, !tbaa !134
  %1335 = fadd double %1319, %1334
  %1336 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1337 = load i32, ptr %13, align 4, !tbaa !9
  %1338 = sub nsw i32 %1337, 1
  %1339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1336, i32 noundef %1338)
  %1340 = load ptr, ptr %1339, align 8, !tbaa !5
  %1341 = load i32, ptr %12, align 4, !tbaa !9
  %1342 = add nsw i32 %1341, 1
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds ptr, ptr %1340, i64 %1343
  %1345 = load ptr, ptr %1344, align 8, !tbaa !5
  %1346 = load i32, ptr %14, align 4, !tbaa !9
  %1347 = sub nsw i32 %1346, 1
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds %struct.cellb, ptr %1345, i64 %1348
  %1350 = getelementptr inbounds %struct.cellb, ptr %1349, i32 0, i32 1
  %1351 = load double, ptr %1350, align 8, !tbaa !134
  %1352 = fadd double %1335, %1351
  %1353 = fmul double 1.250000e-01, %1352
  %1354 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1355 = load i32, ptr %13, align 4, !tbaa !9
  %1356 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1354, i32 noundef %1355)
  %1357 = load ptr, ptr %1356, align 8, !tbaa !5
  %1358 = load i32, ptr %12, align 4, !tbaa !9
  %1359 = sext i32 %1358 to i64
  %1360 = getelementptr inbounds ptr, ptr %1357, i64 %1359
  %1361 = load ptr, ptr %1360, align 8, !tbaa !5
  %1362 = load i32, ptr %14, align 4, !tbaa !9
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds %struct.cellbe, ptr %1361, i64 %1363
  %1365 = getelementptr inbounds %struct.cellbe, ptr %1364, i32 0, i32 1
  store double %1353, ptr %1365, align 8, !tbaa !135
  %1366 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1367 = load i32, ptr %13, align 4, !tbaa !9
  %1368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1366, i32 noundef %1367)
  %1369 = load ptr, ptr %1368, align 8, !tbaa !5
  %1370 = load i32, ptr %12, align 4, !tbaa !9
  %1371 = sext i32 %1370 to i64
  %1372 = getelementptr inbounds ptr, ptr %1369, i64 %1371
  %1373 = load ptr, ptr %1372, align 8, !tbaa !5
  %1374 = load i32, ptr %14, align 4, !tbaa !9
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds %struct.cellb, ptr %1373, i64 %1375
  %1377 = getelementptr inbounds %struct.cellb, ptr %1376, i32 0, i32 2
  %1378 = load double, ptr %1377, align 8, !tbaa !136
  %1379 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1380 = load i32, ptr %13, align 4, !tbaa !9
  %1381 = sub nsw i32 %1380, 1
  %1382 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1379, i32 noundef %1381)
  %1383 = load ptr, ptr %1382, align 8, !tbaa !5
  %1384 = load i32, ptr %12, align 4, !tbaa !9
  %1385 = sext i32 %1384 to i64
  %1386 = getelementptr inbounds ptr, ptr %1383, i64 %1385
  %1387 = load ptr, ptr %1386, align 8, !tbaa !5
  %1388 = load i32, ptr %14, align 4, !tbaa !9
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds %struct.cellb, ptr %1387, i64 %1389
  %1391 = getelementptr inbounds %struct.cellb, ptr %1390, i32 0, i32 2
  %1392 = load double, ptr %1391, align 8, !tbaa !136
  %1393 = fadd double %1378, %1392
  %1394 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1395 = load i32, ptr %13, align 4, !tbaa !9
  %1396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1394, i32 noundef %1395)
  %1397 = load ptr, ptr %1396, align 8, !tbaa !5
  %1398 = load i32, ptr %12, align 4, !tbaa !9
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds ptr, ptr %1397, i64 %1399
  %1401 = load ptr, ptr %1400, align 8, !tbaa !5
  %1402 = load i32, ptr %14, align 4, !tbaa !9
  %1403 = add nsw i32 %1402, 1
  %1404 = sext i32 %1403 to i64
  %1405 = getelementptr inbounds %struct.cellb, ptr %1401, i64 %1404
  %1406 = getelementptr inbounds %struct.cellb, ptr %1405, i32 0, i32 2
  %1407 = load double, ptr %1406, align 8, !tbaa !136
  %1408 = fadd double %1393, %1407
  %1409 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1410 = load i32, ptr %13, align 4, !tbaa !9
  %1411 = sub nsw i32 %1410, 1
  %1412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1409, i32 noundef %1411)
  %1413 = load ptr, ptr %1412, align 8, !tbaa !5
  %1414 = load i32, ptr %12, align 4, !tbaa !9
  %1415 = sext i32 %1414 to i64
  %1416 = getelementptr inbounds ptr, ptr %1413, i64 %1415
  %1417 = load ptr, ptr %1416, align 8, !tbaa !5
  %1418 = load i32, ptr %14, align 4, !tbaa !9
  %1419 = add nsw i32 %1418, 1
  %1420 = sext i32 %1419 to i64
  %1421 = getelementptr inbounds %struct.cellb, ptr %1417, i64 %1420
  %1422 = getelementptr inbounds %struct.cellb, ptr %1421, i32 0, i32 2
  %1423 = load double, ptr %1422, align 8, !tbaa !136
  %1424 = fadd double %1408, %1423
  %1425 = fmul double 2.500000e-01, %1424
  %1426 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1427 = load i32, ptr %13, align 4, !tbaa !9
  %1428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1426, i32 noundef %1427)
  %1429 = load ptr, ptr %1428, align 8, !tbaa !5
  %1430 = load i32, ptr %12, align 4, !tbaa !9
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds ptr, ptr %1429, i64 %1431
  %1433 = load ptr, ptr %1432, align 8, !tbaa !5
  %1434 = load i32, ptr %14, align 4, !tbaa !9
  %1435 = sext i32 %1434 to i64
  %1436 = getelementptr inbounds %struct.cellbe, ptr %1433, i64 %1435
  %1437 = getelementptr inbounds %struct.cellbe, ptr %1436, i32 0, i32 2
  store double %1425, ptr %1437, align 8, !tbaa !137
  br label %1438

1438:                                             ; preds = %1157
  %1439 = load i32, ptr %14, align 4, !tbaa !9
  %1440 = add nsw i32 %1439, 1
  store i32 %1440, ptr %14, align 4, !tbaa !9
  br label %1150, !llvm.loop !146

1441:                                             ; preds = %1156
  br label %1442

1442:                                             ; preds = %1441
  %1443 = load i32, ptr %13, align 4, !tbaa !9
  %1444 = add nsw i32 %1443, 1
  store i32 %1444, ptr %13, align 4, !tbaa !9
  br label %1142, !llvm.loop !147

1445:                                             ; preds = %1148
  %1446 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 1
  %1447 = load i32, ptr %1446, align 4, !tbaa !128
  %1448 = sub nsw i32 %1447, 1
  store i32 %1448, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  store i32 1, ptr %15, align 4, !tbaa !9
  br label %1449

1449:                                             ; preds = %1813, %1445
  %1450 = load i32, ptr %15, align 4, !tbaa !9
  %1451 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 0
  %1452 = load i32, ptr %1451, align 8, !tbaa !11
  %1453 = sub nsw i32 %1452, 1
  %1454 = icmp slt i32 %1450, %1453
  br i1 %1454, label %1456, label %1455

1455:                                             ; preds = %1449
  store i32 29, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  br label %1816

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

1457:                                             ; preds = %1809, %1456
  %1458 = load i32, ptr %16, align 4, !tbaa !9
  %1459 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 2
  %1460 = load i32, ptr %1459, align 8, !tbaa !129
  %1461 = sub nsw i32 %1460, 1
  %1462 = icmp slt i32 %1458, %1461
  br i1 %1462, label %1464, label %1463

1463:                                             ; preds = %1457
  store i32 32, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  br label %1812

1464:                                             ; preds = %1457
  %1465 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1466 = load i32, ptr %15, align 4, !tbaa !9
  %1467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1465, i32 noundef %1466)
  %1468 = load ptr, ptr %1467, align 8, !tbaa !5
  %1469 = load i32, ptr %12, align 4, !tbaa !9
  %1470 = sext i32 %1469 to i64
  %1471 = getelementptr inbounds ptr, ptr %1468, i64 %1470
  %1472 = load ptr, ptr %1471, align 8, !tbaa !5
  %1473 = load i32, ptr %16, align 4, !tbaa !9
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds %struct.cellb, ptr %1472, i64 %1474
  %1476 = getelementptr inbounds %struct.cellb, ptr %1475, i32 0, i32 0
  %1477 = load double, ptr %1476, align 8, !tbaa !130
  %1478 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1479 = load i32, ptr %15, align 4, !tbaa !9
  %1480 = add nsw i32 %1479, 1
  %1481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1478, i32 noundef %1480)
  %1482 = load ptr, ptr %1481, align 8, !tbaa !5
  %1483 = load i32, ptr %12, align 4, !tbaa !9
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds ptr, ptr %1482, i64 %1484
  %1486 = load ptr, ptr %1485, align 8, !tbaa !5
  %1487 = load i32, ptr %16, align 4, !tbaa !9
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds %struct.cellb, ptr %1486, i64 %1488
  %1490 = getelementptr inbounds %struct.cellb, ptr %1489, i32 0, i32 0
  %1491 = load double, ptr %1490, align 8, !tbaa !130
  %1492 = fadd double %1477, %1491
  %1493 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1494 = load i32, ptr %15, align 4, !tbaa !9
  %1495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1493, i32 noundef %1494)
  %1496 = load ptr, ptr %1495, align 8, !tbaa !5
  %1497 = load i32, ptr %12, align 4, !tbaa !9
  %1498 = sext i32 %1497 to i64
  %1499 = getelementptr inbounds ptr, ptr %1496, i64 %1498
  %1500 = load ptr, ptr %1499, align 8, !tbaa !5
  %1501 = load i32, ptr %16, align 4, !tbaa !9
  %1502 = sub nsw i32 %1501, 1
  %1503 = sext i32 %1502 to i64
  %1504 = getelementptr inbounds %struct.cellb, ptr %1500, i64 %1503
  %1505 = getelementptr inbounds %struct.cellb, ptr %1504, i32 0, i32 0
  %1506 = load double, ptr %1505, align 8, !tbaa !130
  %1507 = fadd double %1492, %1506
  %1508 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1509 = load i32, ptr %15, align 4, !tbaa !9
  %1510 = add nsw i32 %1509, 1
  %1511 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1508, i32 noundef %1510)
  %1512 = load ptr, ptr %1511, align 8, !tbaa !5
  %1513 = load i32, ptr %12, align 4, !tbaa !9
  %1514 = sext i32 %1513 to i64
  %1515 = getelementptr inbounds ptr, ptr %1512, i64 %1514
  %1516 = load ptr, ptr %1515, align 8, !tbaa !5
  %1517 = load i32, ptr %16, align 4, !tbaa !9
  %1518 = sub nsw i32 %1517, 1
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds %struct.cellb, ptr %1516, i64 %1519
  %1521 = getelementptr inbounds %struct.cellb, ptr %1520, i32 0, i32 0
  %1522 = load double, ptr %1521, align 8, !tbaa !130
  %1523 = fadd double %1507, %1522
  %1524 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1525 = load i32, ptr %15, align 4, !tbaa !9
  %1526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1524, i32 noundef %1525)
  %1527 = load ptr, ptr %1526, align 8, !tbaa !5
  %1528 = load i32, ptr %12, align 4, !tbaa !9
  %1529 = sub nsw i32 %1528, 1
  %1530 = sext i32 %1529 to i64
  %1531 = getelementptr inbounds ptr, ptr %1527, i64 %1530
  %1532 = load ptr, ptr %1531, align 8, !tbaa !5
  %1533 = load i32, ptr %16, align 4, !tbaa !9
  %1534 = sext i32 %1533 to i64
  %1535 = getelementptr inbounds %struct.cellb, ptr %1532, i64 %1534
  %1536 = getelementptr inbounds %struct.cellb, ptr %1535, i32 0, i32 0
  %1537 = load double, ptr %1536, align 8, !tbaa !130
  %1538 = fadd double %1523, %1537
  %1539 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1540 = load i32, ptr %15, align 4, !tbaa !9
  %1541 = add nsw i32 %1540, 1
  %1542 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1539, i32 noundef %1541)
  %1543 = load ptr, ptr %1542, align 8, !tbaa !5
  %1544 = load i32, ptr %12, align 4, !tbaa !9
  %1545 = sub nsw i32 %1544, 1
  %1546 = sext i32 %1545 to i64
  %1547 = getelementptr inbounds ptr, ptr %1543, i64 %1546
  %1548 = load ptr, ptr %1547, align 8, !tbaa !5
  %1549 = load i32, ptr %16, align 4, !tbaa !9
  %1550 = sext i32 %1549 to i64
  %1551 = getelementptr inbounds %struct.cellb, ptr %1548, i64 %1550
  %1552 = getelementptr inbounds %struct.cellb, ptr %1551, i32 0, i32 0
  %1553 = load double, ptr %1552, align 8, !tbaa !130
  %1554 = fadd double %1538, %1553
  %1555 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1556 = load i32, ptr %15, align 4, !tbaa !9
  %1557 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1555, i32 noundef %1556)
  %1558 = load ptr, ptr %1557, align 8, !tbaa !5
  %1559 = load i32, ptr %12, align 4, !tbaa !9
  %1560 = sub nsw i32 %1559, 1
  %1561 = sext i32 %1560 to i64
  %1562 = getelementptr inbounds ptr, ptr %1558, i64 %1561
  %1563 = load ptr, ptr %1562, align 8, !tbaa !5
  %1564 = load i32, ptr %16, align 4, !tbaa !9
  %1565 = sub nsw i32 %1564, 1
  %1566 = sext i32 %1565 to i64
  %1567 = getelementptr inbounds %struct.cellb, ptr %1563, i64 %1566
  %1568 = getelementptr inbounds %struct.cellb, ptr %1567, i32 0, i32 0
  %1569 = load double, ptr %1568, align 8, !tbaa !130
  %1570 = fadd double %1554, %1569
  %1571 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1572 = load i32, ptr %15, align 4, !tbaa !9
  %1573 = add nsw i32 %1572, 1
  %1574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1571, i32 noundef %1573)
  %1575 = load ptr, ptr %1574, align 8, !tbaa !5
  %1576 = load i32, ptr %12, align 4, !tbaa !9
  %1577 = sub nsw i32 %1576, 1
  %1578 = sext i32 %1577 to i64
  %1579 = getelementptr inbounds ptr, ptr %1575, i64 %1578
  %1580 = load ptr, ptr %1579, align 8, !tbaa !5
  %1581 = load i32, ptr %16, align 4, !tbaa !9
  %1582 = sub nsw i32 %1581, 1
  %1583 = sext i32 %1582 to i64
  %1584 = getelementptr inbounds %struct.cellb, ptr %1580, i64 %1583
  %1585 = getelementptr inbounds %struct.cellb, ptr %1584, i32 0, i32 0
  %1586 = load double, ptr %1585, align 8, !tbaa !130
  %1587 = fadd double %1570, %1586
  %1588 = fmul double 1.250000e-01, %1587
  %1589 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1590 = load i32, ptr %15, align 4, !tbaa !9
  %1591 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1589, i32 noundef %1590)
  %1592 = load ptr, ptr %1591, align 8, !tbaa !5
  %1593 = load i32, ptr %12, align 4, !tbaa !9
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds ptr, ptr %1592, i64 %1594
  %1596 = load ptr, ptr %1595, align 8, !tbaa !5
  %1597 = load i32, ptr %16, align 4, !tbaa !9
  %1598 = sext i32 %1597 to i64
  %1599 = getelementptr inbounds %struct.cellbe, ptr %1596, i64 %1598
  %1600 = getelementptr inbounds %struct.cellbe, ptr %1599, i32 0, i32 0
  store double %1588, ptr %1600, align 8, !tbaa !132
  %1601 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1602 = load i32, ptr %15, align 4, !tbaa !9
  %1603 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1601, i32 noundef %1602)
  %1604 = load ptr, ptr %1603, align 8, !tbaa !5
  %1605 = load i32, ptr %12, align 4, !tbaa !9
  %1606 = sext i32 %1605 to i64
  %1607 = getelementptr inbounds ptr, ptr %1604, i64 %1606
  %1608 = load ptr, ptr %1607, align 8, !tbaa !5
  %1609 = load i32, ptr %16, align 4, !tbaa !9
  %1610 = sext i32 %1609 to i64
  %1611 = getelementptr inbounds %struct.cellb, ptr %1608, i64 %1610
  %1612 = getelementptr inbounds %struct.cellb, ptr %1611, i32 0, i32 1
  %1613 = load double, ptr %1612, align 8, !tbaa !134
  %1614 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1615 = load i32, ptr %15, align 4, !tbaa !9
  %1616 = sub nsw i32 %1615, 1
  %1617 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1614, i32 noundef %1616)
  %1618 = load ptr, ptr %1617, align 8, !tbaa !5
  %1619 = load i32, ptr %12, align 4, !tbaa !9
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds ptr, ptr %1618, i64 %1620
  %1622 = load ptr, ptr %1621, align 8, !tbaa !5
  %1623 = load i32, ptr %16, align 4, !tbaa !9
  %1624 = sext i32 %1623 to i64
  %1625 = getelementptr inbounds %struct.cellb, ptr %1622, i64 %1624
  %1626 = getelementptr inbounds %struct.cellb, ptr %1625, i32 0, i32 1
  %1627 = load double, ptr %1626, align 8, !tbaa !134
  %1628 = fadd double %1613, %1627
  %1629 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1630 = load i32, ptr %15, align 4, !tbaa !9
  %1631 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1629, i32 noundef %1630)
  %1632 = load ptr, ptr %1631, align 8, !tbaa !5
  %1633 = load i32, ptr %12, align 4, !tbaa !9
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds ptr, ptr %1632, i64 %1634
  %1636 = load ptr, ptr %1635, align 8, !tbaa !5
  %1637 = load i32, ptr %16, align 4, !tbaa !9
  %1638 = sub nsw i32 %1637, 1
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds %struct.cellb, ptr %1636, i64 %1639
  %1641 = getelementptr inbounds %struct.cellb, ptr %1640, i32 0, i32 1
  %1642 = load double, ptr %1641, align 8, !tbaa !134
  %1643 = fadd double %1628, %1642
  %1644 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1645 = load i32, ptr %15, align 4, !tbaa !9
  %1646 = sub nsw i32 %1645, 1
  %1647 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1644, i32 noundef %1646)
  %1648 = load ptr, ptr %1647, align 8, !tbaa !5
  %1649 = load i32, ptr %12, align 4, !tbaa !9
  %1650 = sext i32 %1649 to i64
  %1651 = getelementptr inbounds ptr, ptr %1648, i64 %1650
  %1652 = load ptr, ptr %1651, align 8, !tbaa !5
  %1653 = load i32, ptr %16, align 4, !tbaa !9
  %1654 = sub nsw i32 %1653, 1
  %1655 = sext i32 %1654 to i64
  %1656 = getelementptr inbounds %struct.cellb, ptr %1652, i64 %1655
  %1657 = getelementptr inbounds %struct.cellb, ptr %1656, i32 0, i32 1
  %1658 = load double, ptr %1657, align 8, !tbaa !134
  %1659 = fadd double %1643, %1658
  %1660 = fmul double 2.500000e-01, %1659
  %1661 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1662 = load i32, ptr %15, align 4, !tbaa !9
  %1663 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1661, i32 noundef %1662)
  %1664 = load ptr, ptr %1663, align 8, !tbaa !5
  %1665 = load i32, ptr %12, align 4, !tbaa !9
  %1666 = sext i32 %1665 to i64
  %1667 = getelementptr inbounds ptr, ptr %1664, i64 %1666
  %1668 = load ptr, ptr %1667, align 8, !tbaa !5
  %1669 = load i32, ptr %16, align 4, !tbaa !9
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds %struct.cellbe, ptr %1668, i64 %1670
  %1672 = getelementptr inbounds %struct.cellbe, ptr %1671, i32 0, i32 1
  store double %1660, ptr %1672, align 8, !tbaa !135
  %1673 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1674 = load i32, ptr %15, align 4, !tbaa !9
  %1675 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1673, i32 noundef %1674)
  %1676 = load ptr, ptr %1675, align 8, !tbaa !5
  %1677 = load i32, ptr %12, align 4, !tbaa !9
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds ptr, ptr %1676, i64 %1678
  %1680 = load ptr, ptr %1679, align 8, !tbaa !5
  %1681 = load i32, ptr %16, align 4, !tbaa !9
  %1682 = sext i32 %1681 to i64
  %1683 = getelementptr inbounds %struct.cellb, ptr %1680, i64 %1682
  %1684 = getelementptr inbounds %struct.cellb, ptr %1683, i32 0, i32 2
  %1685 = load double, ptr %1684, align 8, !tbaa !136
  %1686 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1687 = load i32, ptr %15, align 4, !tbaa !9
  %1688 = sub nsw i32 %1687, 1
  %1689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1686, i32 noundef %1688)
  %1690 = load ptr, ptr %1689, align 8, !tbaa !5
  %1691 = load i32, ptr %12, align 4, !tbaa !9
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds ptr, ptr %1690, i64 %1692
  %1694 = load ptr, ptr %1693, align 8, !tbaa !5
  %1695 = load i32, ptr %16, align 4, !tbaa !9
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds %struct.cellb, ptr %1694, i64 %1696
  %1698 = getelementptr inbounds %struct.cellb, ptr %1697, i32 0, i32 2
  %1699 = load double, ptr %1698, align 8, !tbaa !136
  %1700 = fadd double %1685, %1699
  %1701 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1702 = load i32, ptr %15, align 4, !tbaa !9
  %1703 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1701, i32 noundef %1702)
  %1704 = load ptr, ptr %1703, align 8, !tbaa !5
  %1705 = load i32, ptr %12, align 4, !tbaa !9
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds ptr, ptr %1704, i64 %1706
  %1708 = load ptr, ptr %1707, align 8, !tbaa !5
  %1709 = load i32, ptr %16, align 4, !tbaa !9
  %1710 = add nsw i32 %1709, 1
  %1711 = sext i32 %1710 to i64
  %1712 = getelementptr inbounds %struct.cellb, ptr %1708, i64 %1711
  %1713 = getelementptr inbounds %struct.cellb, ptr %1712, i32 0, i32 2
  %1714 = load double, ptr %1713, align 8, !tbaa !136
  %1715 = fadd double %1700, %1714
  %1716 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1717 = load i32, ptr %15, align 4, !tbaa !9
  %1718 = sub nsw i32 %1717, 1
  %1719 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1716, i32 noundef %1718)
  %1720 = load ptr, ptr %1719, align 8, !tbaa !5
  %1721 = load i32, ptr %12, align 4, !tbaa !9
  %1722 = sext i32 %1721 to i64
  %1723 = getelementptr inbounds ptr, ptr %1720, i64 %1722
  %1724 = load ptr, ptr %1723, align 8, !tbaa !5
  %1725 = load i32, ptr %16, align 4, !tbaa !9
  %1726 = add nsw i32 %1725, 1
  %1727 = sext i32 %1726 to i64
  %1728 = getelementptr inbounds %struct.cellb, ptr %1724, i64 %1727
  %1729 = getelementptr inbounds %struct.cellb, ptr %1728, i32 0, i32 2
  %1730 = load double, ptr %1729, align 8, !tbaa !136
  %1731 = fadd double %1715, %1730
  %1732 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1733 = load i32, ptr %15, align 4, !tbaa !9
  %1734 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1732, i32 noundef %1733)
  %1735 = load ptr, ptr %1734, align 8, !tbaa !5
  %1736 = load i32, ptr %12, align 4, !tbaa !9
  %1737 = sub nsw i32 %1736, 1
  %1738 = sext i32 %1737 to i64
  %1739 = getelementptr inbounds ptr, ptr %1735, i64 %1738
  %1740 = load ptr, ptr %1739, align 8, !tbaa !5
  %1741 = load i32, ptr %16, align 4, !tbaa !9
  %1742 = sext i32 %1741 to i64
  %1743 = getelementptr inbounds %struct.cellb, ptr %1740, i64 %1742
  %1744 = getelementptr inbounds %struct.cellb, ptr %1743, i32 0, i32 2
  %1745 = load double, ptr %1744, align 8, !tbaa !136
  %1746 = fadd double %1731, %1745
  %1747 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1748 = load i32, ptr %15, align 4, !tbaa !9
  %1749 = sub nsw i32 %1748, 1
  %1750 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1747, i32 noundef %1749)
  %1751 = load ptr, ptr %1750, align 8, !tbaa !5
  %1752 = load i32, ptr %12, align 4, !tbaa !9
  %1753 = sub nsw i32 %1752, 1
  %1754 = sext i32 %1753 to i64
  %1755 = getelementptr inbounds ptr, ptr %1751, i64 %1754
  %1756 = load ptr, ptr %1755, align 8, !tbaa !5
  %1757 = load i32, ptr %16, align 4, !tbaa !9
  %1758 = sext i32 %1757 to i64
  %1759 = getelementptr inbounds %struct.cellb, ptr %1756, i64 %1758
  %1760 = getelementptr inbounds %struct.cellb, ptr %1759, i32 0, i32 2
  %1761 = load double, ptr %1760, align 8, !tbaa !136
  %1762 = fadd double %1746, %1761
  %1763 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1764 = load i32, ptr %15, align 4, !tbaa !9
  %1765 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1763, i32 noundef %1764)
  %1766 = load ptr, ptr %1765, align 8, !tbaa !5
  %1767 = load i32, ptr %12, align 4, !tbaa !9
  %1768 = sub nsw i32 %1767, 1
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds ptr, ptr %1766, i64 %1769
  %1771 = load ptr, ptr %1770, align 8, !tbaa !5
  %1772 = load i32, ptr %16, align 4, !tbaa !9
  %1773 = add nsw i32 %1772, 1
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds %struct.cellb, ptr %1771, i64 %1774
  %1776 = getelementptr inbounds %struct.cellb, ptr %1775, i32 0, i32 2
  %1777 = load double, ptr %1776, align 8, !tbaa !136
  %1778 = fadd double %1762, %1777
  %1779 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1780 = load i32, ptr %15, align 4, !tbaa !9
  %1781 = sub nsw i32 %1780, 1
  %1782 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1779, i32 noundef %1781)
  %1783 = load ptr, ptr %1782, align 8, !tbaa !5
  %1784 = load i32, ptr %12, align 4, !tbaa !9
  %1785 = sub nsw i32 %1784, 1
  %1786 = sext i32 %1785 to i64
  %1787 = getelementptr inbounds ptr, ptr %1783, i64 %1786
  %1788 = load ptr, ptr %1787, align 8, !tbaa !5
  %1789 = load i32, ptr %16, align 4, !tbaa !9
  %1790 = add nsw i32 %1789, 1
  %1791 = sext i32 %1790 to i64
  %1792 = getelementptr inbounds %struct.cellb, ptr %1788, i64 %1791
  %1793 = getelementptr inbounds %struct.cellb, ptr %1792, i32 0, i32 2
  %1794 = load double, ptr %1793, align 8, !tbaa !136
  %1795 = fadd double %1778, %1794
  %1796 = fmul double 1.250000e-01, %1795
  %1797 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1798 = load i32, ptr %15, align 4, !tbaa !9
  %1799 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1797, i32 noundef %1798)
  %1800 = load ptr, ptr %1799, align 8, !tbaa !5
  %1801 = load i32, ptr %12, align 4, !tbaa !9
  %1802 = sext i32 %1801 to i64
  %1803 = getelementptr inbounds ptr, ptr %1800, i64 %1802
  %1804 = load ptr, ptr %1803, align 8, !tbaa !5
  %1805 = load i32, ptr %16, align 4, !tbaa !9
  %1806 = sext i32 %1805 to i64
  %1807 = getelementptr inbounds %struct.cellbe, ptr %1804, i64 %1806
  %1808 = getelementptr inbounds %struct.cellbe, ptr %1807, i32 0, i32 2
  store double %1796, ptr %1808, align 8, !tbaa !137
  br label %1809

1809:                                             ; preds = %1464
  %1810 = load i32, ptr %16, align 4, !tbaa !9
  %1811 = add nsw i32 %1810, 1
  store i32 %1811, ptr %16, align 4, !tbaa !9
  br label %1457, !llvm.loop !148

1812:                                             ; preds = %1463
  br label %1813

1813:                                             ; preds = %1812
  %1814 = load i32, ptr %15, align 4, !tbaa !9
  %1815 = add nsw i32 %1814, 1
  store i32 %1815, ptr %15, align 4, !tbaa !9
  br label %1449, !llvm.loop !149

1816:                                             ; preds = %1455
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #3
  store i32 0, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  store i32 1, ptr %18, align 4, !tbaa !9
  br label %1817

1817:                                             ; preds = %2117, %1816
  %1818 = load i32, ptr %18, align 4, !tbaa !9
  %1819 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 0
  %1820 = load i32, ptr %1819, align 8, !tbaa !11
  %1821 = sub nsw i32 %1820, 1
  %1822 = icmp slt i32 %1818, %1821
  br i1 %1822, label %1824, label %1823

1823:                                             ; preds = %1817
  store i32 35, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  br label %2120

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

1825:                                             ; preds = %2113, %1824
  %1826 = load i32, ptr %19, align 4, !tbaa !9
  %1827 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 1
  %1828 = load i32, ptr %1827, align 4, !tbaa !128
  %1829 = sub nsw i32 %1828, 1
  %1830 = icmp slt i32 %1826, %1829
  br i1 %1830, label %1832, label %1831

1831:                                             ; preds = %1825
  store i32 38, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  br label %2116

1832:                                             ; preds = %1825
  %1833 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1834 = load i32, ptr %18, align 4, !tbaa !9
  %1835 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1833, i32 noundef %1834)
  %1836 = load ptr, ptr %1835, align 8, !tbaa !5
  %1837 = load i32, ptr %19, align 4, !tbaa !9
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds ptr, ptr %1836, i64 %1838
  %1840 = load ptr, ptr %1839, align 8, !tbaa !5
  %1841 = load i32, ptr %17, align 4, !tbaa !9
  %1842 = sext i32 %1841 to i64
  %1843 = getelementptr inbounds %struct.cellb, ptr %1840, i64 %1842
  %1844 = getelementptr inbounds %struct.cellb, ptr %1843, i32 0, i32 0
  %1845 = load double, ptr %1844, align 8, !tbaa !130
  %1846 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1847 = load i32, ptr %18, align 4, !tbaa !9
  %1848 = add nsw i32 %1847, 1
  %1849 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1846, i32 noundef %1848)
  %1850 = load ptr, ptr %1849, align 8, !tbaa !5
  %1851 = load i32, ptr %19, align 4, !tbaa !9
  %1852 = sext i32 %1851 to i64
  %1853 = getelementptr inbounds ptr, ptr %1850, i64 %1852
  %1854 = load ptr, ptr %1853, align 8, !tbaa !5
  %1855 = load i32, ptr %17, align 4, !tbaa !9
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds %struct.cellb, ptr %1854, i64 %1856
  %1858 = getelementptr inbounds %struct.cellb, ptr %1857, i32 0, i32 0
  %1859 = load double, ptr %1858, align 8, !tbaa !130
  %1860 = fadd double %1845, %1859
  %1861 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1862 = load i32, ptr %18, align 4, !tbaa !9
  %1863 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1861, i32 noundef %1862)
  %1864 = load ptr, ptr %1863, align 8, !tbaa !5
  %1865 = load i32, ptr %19, align 4, !tbaa !9
  %1866 = sub nsw i32 %1865, 1
  %1867 = sext i32 %1866 to i64
  %1868 = getelementptr inbounds ptr, ptr %1864, i64 %1867
  %1869 = load ptr, ptr %1868, align 8, !tbaa !5
  %1870 = load i32, ptr %17, align 4, !tbaa !9
  %1871 = sext i32 %1870 to i64
  %1872 = getelementptr inbounds %struct.cellb, ptr %1869, i64 %1871
  %1873 = getelementptr inbounds %struct.cellb, ptr %1872, i32 0, i32 0
  %1874 = load double, ptr %1873, align 8, !tbaa !130
  %1875 = fadd double %1860, %1874
  %1876 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1877 = load i32, ptr %18, align 4, !tbaa !9
  %1878 = add nsw i32 %1877, 1
  %1879 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1876, i32 noundef %1878)
  %1880 = load ptr, ptr %1879, align 8, !tbaa !5
  %1881 = load i32, ptr %19, align 4, !tbaa !9
  %1882 = sub nsw i32 %1881, 1
  %1883 = sext i32 %1882 to i64
  %1884 = getelementptr inbounds ptr, ptr %1880, i64 %1883
  %1885 = load ptr, ptr %1884, align 8, !tbaa !5
  %1886 = load i32, ptr %17, align 4, !tbaa !9
  %1887 = sext i32 %1886 to i64
  %1888 = getelementptr inbounds %struct.cellb, ptr %1885, i64 %1887
  %1889 = getelementptr inbounds %struct.cellb, ptr %1888, i32 0, i32 0
  %1890 = load double, ptr %1889, align 8, !tbaa !130
  %1891 = fadd double %1875, %1890
  %1892 = fmul double 2.500000e-01, %1891
  %1893 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1894 = load i32, ptr %18, align 4, !tbaa !9
  %1895 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1893, i32 noundef %1894)
  %1896 = load ptr, ptr %1895, align 8, !tbaa !5
  %1897 = load i32, ptr %19, align 4, !tbaa !9
  %1898 = sext i32 %1897 to i64
  %1899 = getelementptr inbounds ptr, ptr %1896, i64 %1898
  %1900 = load ptr, ptr %1899, align 8, !tbaa !5
  %1901 = load i32, ptr %17, align 4, !tbaa !9
  %1902 = sext i32 %1901 to i64
  %1903 = getelementptr inbounds %struct.cellbe, ptr %1900, i64 %1902
  %1904 = getelementptr inbounds %struct.cellbe, ptr %1903, i32 0, i32 0
  store double %1892, ptr %1904, align 8, !tbaa !132
  %1905 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1906 = load i32, ptr %18, align 4, !tbaa !9
  %1907 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1905, i32 noundef %1906)
  %1908 = load ptr, ptr %1907, align 8, !tbaa !5
  %1909 = load i32, ptr %19, align 4, !tbaa !9
  %1910 = sext i32 %1909 to i64
  %1911 = getelementptr inbounds ptr, ptr %1908, i64 %1910
  %1912 = load ptr, ptr %1911, align 8, !tbaa !5
  %1913 = load i32, ptr %17, align 4, !tbaa !9
  %1914 = sext i32 %1913 to i64
  %1915 = getelementptr inbounds %struct.cellb, ptr %1912, i64 %1914
  %1916 = getelementptr inbounds %struct.cellb, ptr %1915, i32 0, i32 1
  %1917 = load double, ptr %1916, align 8, !tbaa !134
  %1918 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1919 = load i32, ptr %18, align 4, !tbaa !9
  %1920 = sub nsw i32 %1919, 1
  %1921 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1918, i32 noundef %1920)
  %1922 = load ptr, ptr %1921, align 8, !tbaa !5
  %1923 = load i32, ptr %19, align 4, !tbaa !9
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds ptr, ptr %1922, i64 %1924
  %1926 = load ptr, ptr %1925, align 8, !tbaa !5
  %1927 = load i32, ptr %17, align 4, !tbaa !9
  %1928 = sext i32 %1927 to i64
  %1929 = getelementptr inbounds %struct.cellb, ptr %1926, i64 %1928
  %1930 = getelementptr inbounds %struct.cellb, ptr %1929, i32 0, i32 1
  %1931 = load double, ptr %1930, align 8, !tbaa !134
  %1932 = fadd double %1917, %1931
  %1933 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1934 = load i32, ptr %18, align 4, !tbaa !9
  %1935 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1933, i32 noundef %1934)
  %1936 = load ptr, ptr %1935, align 8, !tbaa !5
  %1937 = load i32, ptr %19, align 4, !tbaa !9
  %1938 = add nsw i32 %1937, 1
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds ptr, ptr %1936, i64 %1939
  %1941 = load ptr, ptr %1940, align 8, !tbaa !5
  %1942 = load i32, ptr %17, align 4, !tbaa !9
  %1943 = sext i32 %1942 to i64
  %1944 = getelementptr inbounds %struct.cellb, ptr %1941, i64 %1943
  %1945 = getelementptr inbounds %struct.cellb, ptr %1944, i32 0, i32 1
  %1946 = load double, ptr %1945, align 8, !tbaa !134
  %1947 = fadd double %1932, %1946
  %1948 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1949 = load i32, ptr %18, align 4, !tbaa !9
  %1950 = sub nsw i32 %1949, 1
  %1951 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1948, i32 noundef %1950)
  %1952 = load ptr, ptr %1951, align 8, !tbaa !5
  %1953 = load i32, ptr %19, align 4, !tbaa !9
  %1954 = add nsw i32 %1953, 1
  %1955 = sext i32 %1954 to i64
  %1956 = getelementptr inbounds ptr, ptr %1952, i64 %1955
  %1957 = load ptr, ptr %1956, align 8, !tbaa !5
  %1958 = load i32, ptr %17, align 4, !tbaa !9
  %1959 = sext i32 %1958 to i64
  %1960 = getelementptr inbounds %struct.cellb, ptr %1957, i64 %1959
  %1961 = getelementptr inbounds %struct.cellb, ptr %1960, i32 0, i32 1
  %1962 = load double, ptr %1961, align 8, !tbaa !134
  %1963 = fadd double %1947, %1962
  %1964 = fmul double 2.500000e-01, %1963
  %1965 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %1966 = load i32, ptr %18, align 4, !tbaa !9
  %1967 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1965, i32 noundef %1966)
  %1968 = load ptr, ptr %1967, align 8, !tbaa !5
  %1969 = load i32, ptr %19, align 4, !tbaa !9
  %1970 = sext i32 %1969 to i64
  %1971 = getelementptr inbounds ptr, ptr %1968, i64 %1970
  %1972 = load ptr, ptr %1971, align 8, !tbaa !5
  %1973 = load i32, ptr %17, align 4, !tbaa !9
  %1974 = sext i32 %1973 to i64
  %1975 = getelementptr inbounds %struct.cellbe, ptr %1972, i64 %1974
  %1976 = getelementptr inbounds %struct.cellbe, ptr %1975, i32 0, i32 1
  store double %1964, ptr %1976, align 8, !tbaa !135
  %1977 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1978 = load i32, ptr %18, align 4, !tbaa !9
  %1979 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1977, i32 noundef %1978)
  %1980 = load ptr, ptr %1979, align 8, !tbaa !5
  %1981 = load i32, ptr %19, align 4, !tbaa !9
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds ptr, ptr %1980, i64 %1982
  %1984 = load ptr, ptr %1983, align 8, !tbaa !5
  %1985 = load i32, ptr %17, align 4, !tbaa !9
  %1986 = sext i32 %1985 to i64
  %1987 = getelementptr inbounds %struct.cellb, ptr %1984, i64 %1986
  %1988 = getelementptr inbounds %struct.cellb, ptr %1987, i32 0, i32 2
  %1989 = load double, ptr %1988, align 8, !tbaa !136
  %1990 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %1991 = load i32, ptr %18, align 4, !tbaa !9
  %1992 = sub nsw i32 %1991, 1
  %1993 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %1990, i32 noundef %1992)
  %1994 = load ptr, ptr %1993, align 8, !tbaa !5
  %1995 = load i32, ptr %19, align 4, !tbaa !9
  %1996 = sext i32 %1995 to i64
  %1997 = getelementptr inbounds ptr, ptr %1994, i64 %1996
  %1998 = load ptr, ptr %1997, align 8, !tbaa !5
  %1999 = load i32, ptr %17, align 4, !tbaa !9
  %2000 = sext i32 %1999 to i64
  %2001 = getelementptr inbounds %struct.cellb, ptr %1998, i64 %2000
  %2002 = getelementptr inbounds %struct.cellb, ptr %2001, i32 0, i32 2
  %2003 = load double, ptr %2002, align 8, !tbaa !136
  %2004 = fadd double %1989, %2003
  %2005 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2006 = load i32, ptr %18, align 4, !tbaa !9
  %2007 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2005, i32 noundef %2006)
  %2008 = load ptr, ptr %2007, align 8, !tbaa !5
  %2009 = load i32, ptr %19, align 4, !tbaa !9
  %2010 = sext i32 %2009 to i64
  %2011 = getelementptr inbounds ptr, ptr %2008, i64 %2010
  %2012 = load ptr, ptr %2011, align 8, !tbaa !5
  %2013 = load i32, ptr %17, align 4, !tbaa !9
  %2014 = add nsw i32 %2013, 1
  %2015 = sext i32 %2014 to i64
  %2016 = getelementptr inbounds %struct.cellb, ptr %2012, i64 %2015
  %2017 = getelementptr inbounds %struct.cellb, ptr %2016, i32 0, i32 2
  %2018 = load double, ptr %2017, align 8, !tbaa !136
  %2019 = fadd double %2004, %2018
  %2020 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2021 = load i32, ptr %18, align 4, !tbaa !9
  %2022 = sub nsw i32 %2021, 1
  %2023 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2020, i32 noundef %2022)
  %2024 = load ptr, ptr %2023, align 8, !tbaa !5
  %2025 = load i32, ptr %19, align 4, !tbaa !9
  %2026 = sext i32 %2025 to i64
  %2027 = getelementptr inbounds ptr, ptr %2024, i64 %2026
  %2028 = load ptr, ptr %2027, align 8, !tbaa !5
  %2029 = load i32, ptr %17, align 4, !tbaa !9
  %2030 = add nsw i32 %2029, 1
  %2031 = sext i32 %2030 to i64
  %2032 = getelementptr inbounds %struct.cellb, ptr %2028, i64 %2031
  %2033 = getelementptr inbounds %struct.cellb, ptr %2032, i32 0, i32 2
  %2034 = load double, ptr %2033, align 8, !tbaa !136
  %2035 = fadd double %2019, %2034
  %2036 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2037 = load i32, ptr %18, align 4, !tbaa !9
  %2038 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2036, i32 noundef %2037)
  %2039 = load ptr, ptr %2038, align 8, !tbaa !5
  %2040 = load i32, ptr %19, align 4, !tbaa !9
  %2041 = sub nsw i32 %2040, 1
  %2042 = sext i32 %2041 to i64
  %2043 = getelementptr inbounds ptr, ptr %2039, i64 %2042
  %2044 = load ptr, ptr %2043, align 8, !tbaa !5
  %2045 = load i32, ptr %17, align 4, !tbaa !9
  %2046 = sext i32 %2045 to i64
  %2047 = getelementptr inbounds %struct.cellb, ptr %2044, i64 %2046
  %2048 = getelementptr inbounds %struct.cellb, ptr %2047, i32 0, i32 2
  %2049 = load double, ptr %2048, align 8, !tbaa !136
  %2050 = fadd double %2035, %2049
  %2051 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2052 = load i32, ptr %18, align 4, !tbaa !9
  %2053 = sub nsw i32 %2052, 1
  %2054 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2051, i32 noundef %2053)
  %2055 = load ptr, ptr %2054, align 8, !tbaa !5
  %2056 = load i32, ptr %19, align 4, !tbaa !9
  %2057 = sub nsw i32 %2056, 1
  %2058 = sext i32 %2057 to i64
  %2059 = getelementptr inbounds ptr, ptr %2055, i64 %2058
  %2060 = load ptr, ptr %2059, align 8, !tbaa !5
  %2061 = load i32, ptr %17, align 4, !tbaa !9
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds %struct.cellb, ptr %2060, i64 %2062
  %2064 = getelementptr inbounds %struct.cellb, ptr %2063, i32 0, i32 2
  %2065 = load double, ptr %2064, align 8, !tbaa !136
  %2066 = fadd double %2050, %2065
  %2067 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2068 = load i32, ptr %18, align 4, !tbaa !9
  %2069 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2067, i32 noundef %2068)
  %2070 = load ptr, ptr %2069, align 8, !tbaa !5
  %2071 = load i32, ptr %19, align 4, !tbaa !9
  %2072 = sub nsw i32 %2071, 1
  %2073 = sext i32 %2072 to i64
  %2074 = getelementptr inbounds ptr, ptr %2070, i64 %2073
  %2075 = load ptr, ptr %2074, align 8, !tbaa !5
  %2076 = load i32, ptr %17, align 4, !tbaa !9
  %2077 = add nsw i32 %2076, 1
  %2078 = sext i32 %2077 to i64
  %2079 = getelementptr inbounds %struct.cellb, ptr %2075, i64 %2078
  %2080 = getelementptr inbounds %struct.cellb, ptr %2079, i32 0, i32 2
  %2081 = load double, ptr %2080, align 8, !tbaa !136
  %2082 = fadd double %2066, %2081
  %2083 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2084 = load i32, ptr %18, align 4, !tbaa !9
  %2085 = sub nsw i32 %2084, 1
  %2086 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2083, i32 noundef %2085)
  %2087 = load ptr, ptr %2086, align 8, !tbaa !5
  %2088 = load i32, ptr %19, align 4, !tbaa !9
  %2089 = sub nsw i32 %2088, 1
  %2090 = sext i32 %2089 to i64
  %2091 = getelementptr inbounds ptr, ptr %2087, i64 %2090
  %2092 = load ptr, ptr %2091, align 8, !tbaa !5
  %2093 = load i32, ptr %17, align 4, !tbaa !9
  %2094 = add nsw i32 %2093, 1
  %2095 = sext i32 %2094 to i64
  %2096 = getelementptr inbounds %struct.cellb, ptr %2092, i64 %2095
  %2097 = getelementptr inbounds %struct.cellb, ptr %2096, i32 0, i32 2
  %2098 = load double, ptr %2097, align 8, !tbaa !136
  %2099 = fadd double %2082, %2098
  %2100 = fmul double 1.250000e-01, %2099
  %2101 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %2102 = load i32, ptr %18, align 4, !tbaa !9
  %2103 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2101, i32 noundef %2102)
  %2104 = load ptr, ptr %2103, align 8, !tbaa !5
  %2105 = load i32, ptr %19, align 4, !tbaa !9
  %2106 = sext i32 %2105 to i64
  %2107 = getelementptr inbounds ptr, ptr %2104, i64 %2106
  %2108 = load ptr, ptr %2107, align 8, !tbaa !5
  %2109 = load i32, ptr %17, align 4, !tbaa !9
  %2110 = sext i32 %2109 to i64
  %2111 = getelementptr inbounds %struct.cellbe, ptr %2108, i64 %2110
  %2112 = getelementptr inbounds %struct.cellbe, ptr %2111, i32 0, i32 2
  store double %2100, ptr %2112, align 8, !tbaa !137
  br label %2113

2113:                                             ; preds = %1832
  %2114 = load i32, ptr %19, align 4, !tbaa !9
  %2115 = add nsw i32 %2114, 1
  store i32 %2115, ptr %19, align 4, !tbaa !9
  br label %1825, !llvm.loop !150

2116:                                             ; preds = %1831
  br label %2117

2117:                                             ; preds = %2116
  %2118 = load i32, ptr %18, align 4, !tbaa !9
  %2119 = add nsw i32 %2118, 1
  store i32 %2119, ptr %18, align 4, !tbaa !9
  br label %1817, !llvm.loop !151

2120:                                             ; preds = %1823
  %2121 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 2
  %2122 = load i32, ptr %2121, align 8, !tbaa !129
  %2123 = sub nsw i32 %2122, 1
  store i32 %2123, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #3
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %2124

2124:                                             ; preds = %2488, %2120
  %2125 = load i32, ptr %20, align 4, !tbaa !9
  %2126 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 0
  %2127 = load i32, ptr %2126, align 8, !tbaa !11
  %2128 = sub nsw i32 %2127, 1
  %2129 = icmp slt i32 %2125, %2128
  br i1 %2129, label %2131, label %2130

2130:                                             ; preds = %2124
  store i32 41, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  br label %2491

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

2132:                                             ; preds = %2484, %2131
  %2133 = load i32, ptr %21, align 4, !tbaa !9
  %2134 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 1
  %2135 = load i32, ptr %2134, align 4, !tbaa !128
  %2136 = sub nsw i32 %2135, 1
  %2137 = icmp slt i32 %2133, %2136
  br i1 %2137, label %2139, label %2138

2138:                                             ; preds = %2132
  store i32 44, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #3
  br label %2487

2139:                                             ; preds = %2132
  %2140 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2141 = load i32, ptr %20, align 4, !tbaa !9
  %2142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2140, i32 noundef %2141)
  %2143 = load ptr, ptr %2142, align 8, !tbaa !5
  %2144 = load i32, ptr %21, align 4, !tbaa !9
  %2145 = sext i32 %2144 to i64
  %2146 = getelementptr inbounds ptr, ptr %2143, i64 %2145
  %2147 = load ptr, ptr %2146, align 8, !tbaa !5
  %2148 = load i32, ptr %17, align 4, !tbaa !9
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds %struct.cellb, ptr %2147, i64 %2149
  %2151 = getelementptr inbounds %struct.cellb, ptr %2150, i32 0, i32 0
  %2152 = load double, ptr %2151, align 8, !tbaa !130
  %2153 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2154 = load i32, ptr %20, align 4, !tbaa !9
  %2155 = add nsw i32 %2154, 1
  %2156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2153, i32 noundef %2155)
  %2157 = load ptr, ptr %2156, align 8, !tbaa !5
  %2158 = load i32, ptr %21, align 4, !tbaa !9
  %2159 = sext i32 %2158 to i64
  %2160 = getelementptr inbounds ptr, ptr %2157, i64 %2159
  %2161 = load ptr, ptr %2160, align 8, !tbaa !5
  %2162 = load i32, ptr %17, align 4, !tbaa !9
  %2163 = sext i32 %2162 to i64
  %2164 = getelementptr inbounds %struct.cellb, ptr %2161, i64 %2163
  %2165 = getelementptr inbounds %struct.cellb, ptr %2164, i32 0, i32 0
  %2166 = load double, ptr %2165, align 8, !tbaa !130
  %2167 = fadd double %2152, %2166
  %2168 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2169 = load i32, ptr %20, align 4, !tbaa !9
  %2170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2168, i32 noundef %2169)
  %2171 = load ptr, ptr %2170, align 8, !tbaa !5
  %2172 = load i32, ptr %21, align 4, !tbaa !9
  %2173 = sext i32 %2172 to i64
  %2174 = getelementptr inbounds ptr, ptr %2171, i64 %2173
  %2175 = load ptr, ptr %2174, align 8, !tbaa !5
  %2176 = load i32, ptr %17, align 4, !tbaa !9
  %2177 = sub nsw i32 %2176, 1
  %2178 = sext i32 %2177 to i64
  %2179 = getelementptr inbounds %struct.cellb, ptr %2175, i64 %2178
  %2180 = getelementptr inbounds %struct.cellb, ptr %2179, i32 0, i32 0
  %2181 = load double, ptr %2180, align 8, !tbaa !130
  %2182 = fadd double %2167, %2181
  %2183 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2184 = load i32, ptr %20, align 4, !tbaa !9
  %2185 = add nsw i32 %2184, 1
  %2186 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2183, i32 noundef %2185)
  %2187 = load ptr, ptr %2186, align 8, !tbaa !5
  %2188 = load i32, ptr %21, align 4, !tbaa !9
  %2189 = sext i32 %2188 to i64
  %2190 = getelementptr inbounds ptr, ptr %2187, i64 %2189
  %2191 = load ptr, ptr %2190, align 8, !tbaa !5
  %2192 = load i32, ptr %17, align 4, !tbaa !9
  %2193 = sub nsw i32 %2192, 1
  %2194 = sext i32 %2193 to i64
  %2195 = getelementptr inbounds %struct.cellb, ptr %2191, i64 %2194
  %2196 = getelementptr inbounds %struct.cellb, ptr %2195, i32 0, i32 0
  %2197 = load double, ptr %2196, align 8, !tbaa !130
  %2198 = fadd double %2182, %2197
  %2199 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2200 = load i32, ptr %20, align 4, !tbaa !9
  %2201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2199, i32 noundef %2200)
  %2202 = load ptr, ptr %2201, align 8, !tbaa !5
  %2203 = load i32, ptr %21, align 4, !tbaa !9
  %2204 = sub nsw i32 %2203, 1
  %2205 = sext i32 %2204 to i64
  %2206 = getelementptr inbounds ptr, ptr %2202, i64 %2205
  %2207 = load ptr, ptr %2206, align 8, !tbaa !5
  %2208 = load i32, ptr %17, align 4, !tbaa !9
  %2209 = sext i32 %2208 to i64
  %2210 = getelementptr inbounds %struct.cellb, ptr %2207, i64 %2209
  %2211 = getelementptr inbounds %struct.cellb, ptr %2210, i32 0, i32 0
  %2212 = load double, ptr %2211, align 8, !tbaa !130
  %2213 = fadd double %2198, %2212
  %2214 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2215 = load i32, ptr %20, align 4, !tbaa !9
  %2216 = add nsw i32 %2215, 1
  %2217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2214, i32 noundef %2216)
  %2218 = load ptr, ptr %2217, align 8, !tbaa !5
  %2219 = load i32, ptr %21, align 4, !tbaa !9
  %2220 = sub nsw i32 %2219, 1
  %2221 = sext i32 %2220 to i64
  %2222 = getelementptr inbounds ptr, ptr %2218, i64 %2221
  %2223 = load ptr, ptr %2222, align 8, !tbaa !5
  %2224 = load i32, ptr %17, align 4, !tbaa !9
  %2225 = sext i32 %2224 to i64
  %2226 = getelementptr inbounds %struct.cellb, ptr %2223, i64 %2225
  %2227 = getelementptr inbounds %struct.cellb, ptr %2226, i32 0, i32 0
  %2228 = load double, ptr %2227, align 8, !tbaa !130
  %2229 = fadd double %2213, %2228
  %2230 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2231 = load i32, ptr %20, align 4, !tbaa !9
  %2232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2230, i32 noundef %2231)
  %2233 = load ptr, ptr %2232, align 8, !tbaa !5
  %2234 = load i32, ptr %21, align 4, !tbaa !9
  %2235 = sub nsw i32 %2234, 1
  %2236 = sext i32 %2235 to i64
  %2237 = getelementptr inbounds ptr, ptr %2233, i64 %2236
  %2238 = load ptr, ptr %2237, align 8, !tbaa !5
  %2239 = load i32, ptr %17, align 4, !tbaa !9
  %2240 = sub nsw i32 %2239, 1
  %2241 = sext i32 %2240 to i64
  %2242 = getelementptr inbounds %struct.cellb, ptr %2238, i64 %2241
  %2243 = getelementptr inbounds %struct.cellb, ptr %2242, i32 0, i32 0
  %2244 = load double, ptr %2243, align 8, !tbaa !130
  %2245 = fadd double %2229, %2244
  %2246 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2247 = load i32, ptr %20, align 4, !tbaa !9
  %2248 = add nsw i32 %2247, 1
  %2249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2246, i32 noundef %2248)
  %2250 = load ptr, ptr %2249, align 8, !tbaa !5
  %2251 = load i32, ptr %21, align 4, !tbaa !9
  %2252 = sub nsw i32 %2251, 1
  %2253 = sext i32 %2252 to i64
  %2254 = getelementptr inbounds ptr, ptr %2250, i64 %2253
  %2255 = load ptr, ptr %2254, align 8, !tbaa !5
  %2256 = load i32, ptr %17, align 4, !tbaa !9
  %2257 = sub nsw i32 %2256, 1
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds %struct.cellb, ptr %2255, i64 %2258
  %2260 = getelementptr inbounds %struct.cellb, ptr %2259, i32 0, i32 0
  %2261 = load double, ptr %2260, align 8, !tbaa !130
  %2262 = fadd double %2245, %2261
  %2263 = fmul double 1.250000e-01, %2262
  %2264 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %2265 = load i32, ptr %20, align 4, !tbaa !9
  %2266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2264, i32 noundef %2265)
  %2267 = load ptr, ptr %2266, align 8, !tbaa !5
  %2268 = load i32, ptr %21, align 4, !tbaa !9
  %2269 = sext i32 %2268 to i64
  %2270 = getelementptr inbounds ptr, ptr %2267, i64 %2269
  %2271 = load ptr, ptr %2270, align 8, !tbaa !5
  %2272 = load i32, ptr %17, align 4, !tbaa !9
  %2273 = sext i32 %2272 to i64
  %2274 = getelementptr inbounds %struct.cellbe, ptr %2271, i64 %2273
  %2275 = getelementptr inbounds %struct.cellbe, ptr %2274, i32 0, i32 0
  store double %2263, ptr %2275, align 8, !tbaa !132
  %2276 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2277 = load i32, ptr %20, align 4, !tbaa !9
  %2278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2276, i32 noundef %2277)
  %2279 = load ptr, ptr %2278, align 8, !tbaa !5
  %2280 = load i32, ptr %21, align 4, !tbaa !9
  %2281 = sext i32 %2280 to i64
  %2282 = getelementptr inbounds ptr, ptr %2279, i64 %2281
  %2283 = load ptr, ptr %2282, align 8, !tbaa !5
  %2284 = load i32, ptr %17, align 4, !tbaa !9
  %2285 = sext i32 %2284 to i64
  %2286 = getelementptr inbounds %struct.cellb, ptr %2283, i64 %2285
  %2287 = getelementptr inbounds %struct.cellb, ptr %2286, i32 0, i32 1
  %2288 = load double, ptr %2287, align 8, !tbaa !134
  %2289 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2290 = load i32, ptr %20, align 4, !tbaa !9
  %2291 = sub nsw i32 %2290, 1
  %2292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2289, i32 noundef %2291)
  %2293 = load ptr, ptr %2292, align 8, !tbaa !5
  %2294 = load i32, ptr %21, align 4, !tbaa !9
  %2295 = sext i32 %2294 to i64
  %2296 = getelementptr inbounds ptr, ptr %2293, i64 %2295
  %2297 = load ptr, ptr %2296, align 8, !tbaa !5
  %2298 = load i32, ptr %17, align 4, !tbaa !9
  %2299 = sext i32 %2298 to i64
  %2300 = getelementptr inbounds %struct.cellb, ptr %2297, i64 %2299
  %2301 = getelementptr inbounds %struct.cellb, ptr %2300, i32 0, i32 1
  %2302 = load double, ptr %2301, align 8, !tbaa !134
  %2303 = fadd double %2288, %2302
  %2304 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2305 = load i32, ptr %20, align 4, !tbaa !9
  %2306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2304, i32 noundef %2305)
  %2307 = load ptr, ptr %2306, align 8, !tbaa !5
  %2308 = load i32, ptr %21, align 4, !tbaa !9
  %2309 = sext i32 %2308 to i64
  %2310 = getelementptr inbounds ptr, ptr %2307, i64 %2309
  %2311 = load ptr, ptr %2310, align 8, !tbaa !5
  %2312 = load i32, ptr %17, align 4, !tbaa !9
  %2313 = sub nsw i32 %2312, 1
  %2314 = sext i32 %2313 to i64
  %2315 = getelementptr inbounds %struct.cellb, ptr %2311, i64 %2314
  %2316 = getelementptr inbounds %struct.cellb, ptr %2315, i32 0, i32 1
  %2317 = load double, ptr %2316, align 8, !tbaa !134
  %2318 = fadd double %2303, %2317
  %2319 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2320 = load i32, ptr %20, align 4, !tbaa !9
  %2321 = sub nsw i32 %2320, 1
  %2322 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2319, i32 noundef %2321)
  %2323 = load ptr, ptr %2322, align 8, !tbaa !5
  %2324 = load i32, ptr %21, align 4, !tbaa !9
  %2325 = sext i32 %2324 to i64
  %2326 = getelementptr inbounds ptr, ptr %2323, i64 %2325
  %2327 = load ptr, ptr %2326, align 8, !tbaa !5
  %2328 = load i32, ptr %17, align 4, !tbaa !9
  %2329 = sub nsw i32 %2328, 1
  %2330 = sext i32 %2329 to i64
  %2331 = getelementptr inbounds %struct.cellb, ptr %2327, i64 %2330
  %2332 = getelementptr inbounds %struct.cellb, ptr %2331, i32 0, i32 1
  %2333 = load double, ptr %2332, align 8, !tbaa !134
  %2334 = fadd double %2318, %2333
  %2335 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2336 = load i32, ptr %20, align 4, !tbaa !9
  %2337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2335, i32 noundef %2336)
  %2338 = load ptr, ptr %2337, align 8, !tbaa !5
  %2339 = load i32, ptr %21, align 4, !tbaa !9
  %2340 = add nsw i32 %2339, 1
  %2341 = sext i32 %2340 to i64
  %2342 = getelementptr inbounds ptr, ptr %2338, i64 %2341
  %2343 = load ptr, ptr %2342, align 8, !tbaa !5
  %2344 = load i32, ptr %17, align 4, !tbaa !9
  %2345 = sext i32 %2344 to i64
  %2346 = getelementptr inbounds %struct.cellb, ptr %2343, i64 %2345
  %2347 = getelementptr inbounds %struct.cellb, ptr %2346, i32 0, i32 1
  %2348 = load double, ptr %2347, align 8, !tbaa !134
  %2349 = fadd double %2334, %2348
  %2350 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2351 = load i32, ptr %20, align 4, !tbaa !9
  %2352 = sub nsw i32 %2351, 1
  %2353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2350, i32 noundef %2352)
  %2354 = load ptr, ptr %2353, align 8, !tbaa !5
  %2355 = load i32, ptr %21, align 4, !tbaa !9
  %2356 = add nsw i32 %2355, 1
  %2357 = sext i32 %2356 to i64
  %2358 = getelementptr inbounds ptr, ptr %2354, i64 %2357
  %2359 = load ptr, ptr %2358, align 8, !tbaa !5
  %2360 = load i32, ptr %17, align 4, !tbaa !9
  %2361 = sext i32 %2360 to i64
  %2362 = getelementptr inbounds %struct.cellb, ptr %2359, i64 %2361
  %2363 = getelementptr inbounds %struct.cellb, ptr %2362, i32 0, i32 1
  %2364 = load double, ptr %2363, align 8, !tbaa !134
  %2365 = fadd double %2349, %2364
  %2366 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2367 = load i32, ptr %20, align 4, !tbaa !9
  %2368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2366, i32 noundef %2367)
  %2369 = load ptr, ptr %2368, align 8, !tbaa !5
  %2370 = load i32, ptr %21, align 4, !tbaa !9
  %2371 = add nsw i32 %2370, 1
  %2372 = sext i32 %2371 to i64
  %2373 = getelementptr inbounds ptr, ptr %2369, i64 %2372
  %2374 = load ptr, ptr %2373, align 8, !tbaa !5
  %2375 = load i32, ptr %17, align 4, !tbaa !9
  %2376 = sub nsw i32 %2375, 1
  %2377 = sext i32 %2376 to i64
  %2378 = getelementptr inbounds %struct.cellb, ptr %2374, i64 %2377
  %2379 = getelementptr inbounds %struct.cellb, ptr %2378, i32 0, i32 1
  %2380 = load double, ptr %2379, align 8, !tbaa !134
  %2381 = fadd double %2365, %2380
  %2382 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2383 = load i32, ptr %20, align 4, !tbaa !9
  %2384 = sub nsw i32 %2383, 1
  %2385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2382, i32 noundef %2384)
  %2386 = load ptr, ptr %2385, align 8, !tbaa !5
  %2387 = load i32, ptr %21, align 4, !tbaa !9
  %2388 = add nsw i32 %2387, 1
  %2389 = sext i32 %2388 to i64
  %2390 = getelementptr inbounds ptr, ptr %2386, i64 %2389
  %2391 = load ptr, ptr %2390, align 8, !tbaa !5
  %2392 = load i32, ptr %17, align 4, !tbaa !9
  %2393 = sub nsw i32 %2392, 1
  %2394 = sext i32 %2393 to i64
  %2395 = getelementptr inbounds %struct.cellb, ptr %2391, i64 %2394
  %2396 = getelementptr inbounds %struct.cellb, ptr %2395, i32 0, i32 1
  %2397 = load double, ptr %2396, align 8, !tbaa !134
  %2398 = fadd double %2381, %2397
  %2399 = fmul double 1.250000e-01, %2398
  %2400 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %2401 = load i32, ptr %20, align 4, !tbaa !9
  %2402 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2400, i32 noundef %2401)
  %2403 = load ptr, ptr %2402, align 8, !tbaa !5
  %2404 = load i32, ptr %21, align 4, !tbaa !9
  %2405 = sext i32 %2404 to i64
  %2406 = getelementptr inbounds ptr, ptr %2403, i64 %2405
  %2407 = load ptr, ptr %2406, align 8, !tbaa !5
  %2408 = load i32, ptr %17, align 4, !tbaa !9
  %2409 = sext i32 %2408 to i64
  %2410 = getelementptr inbounds %struct.cellbe, ptr %2407, i64 %2409
  %2411 = getelementptr inbounds %struct.cellbe, ptr %2410, i32 0, i32 1
  store double %2399, ptr %2411, align 8, !tbaa !135
  %2412 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2413 = load i32, ptr %20, align 4, !tbaa !9
  %2414 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2412, i32 noundef %2413)
  %2415 = load ptr, ptr %2414, align 8, !tbaa !5
  %2416 = load i32, ptr %21, align 4, !tbaa !9
  %2417 = sext i32 %2416 to i64
  %2418 = getelementptr inbounds ptr, ptr %2415, i64 %2417
  %2419 = load ptr, ptr %2418, align 8, !tbaa !5
  %2420 = load i32, ptr %17, align 4, !tbaa !9
  %2421 = sext i32 %2420 to i64
  %2422 = getelementptr inbounds %struct.cellb, ptr %2419, i64 %2421
  %2423 = getelementptr inbounds %struct.cellb, ptr %2422, i32 0, i32 2
  %2424 = load double, ptr %2423, align 8, !tbaa !136
  %2425 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2426 = load i32, ptr %20, align 4, !tbaa !9
  %2427 = sub nsw i32 %2426, 1
  %2428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2425, i32 noundef %2427)
  %2429 = load ptr, ptr %2428, align 8, !tbaa !5
  %2430 = load i32, ptr %21, align 4, !tbaa !9
  %2431 = sext i32 %2430 to i64
  %2432 = getelementptr inbounds ptr, ptr %2429, i64 %2431
  %2433 = load ptr, ptr %2432, align 8, !tbaa !5
  %2434 = load i32, ptr %17, align 4, !tbaa !9
  %2435 = sext i32 %2434 to i64
  %2436 = getelementptr inbounds %struct.cellb, ptr %2433, i64 %2435
  %2437 = getelementptr inbounds %struct.cellb, ptr %2436, i32 0, i32 2
  %2438 = load double, ptr %2437, align 8, !tbaa !136
  %2439 = fadd double %2424, %2438
  %2440 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2441 = load i32, ptr %20, align 4, !tbaa !9
  %2442 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2440, i32 noundef %2441)
  %2443 = load ptr, ptr %2442, align 8, !tbaa !5
  %2444 = load i32, ptr %21, align 4, !tbaa !9
  %2445 = sub nsw i32 %2444, 1
  %2446 = sext i32 %2445 to i64
  %2447 = getelementptr inbounds ptr, ptr %2443, i64 %2446
  %2448 = load ptr, ptr %2447, align 8, !tbaa !5
  %2449 = load i32, ptr %17, align 4, !tbaa !9
  %2450 = sext i32 %2449 to i64
  %2451 = getelementptr inbounds %struct.cellb, ptr %2448, i64 %2450
  %2452 = getelementptr inbounds %struct.cellb, ptr %2451, i32 0, i32 2
  %2453 = load double, ptr %2452, align 8, !tbaa !136
  %2454 = fadd double %2439, %2453
  %2455 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 47
  %2456 = load i32, ptr %20, align 4, !tbaa !9
  %2457 = sub nsw i32 %2456, 1
  %2458 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2455, i32 noundef %2457)
  %2459 = load ptr, ptr %2458, align 8, !tbaa !5
  %2460 = load i32, ptr %21, align 4, !tbaa !9
  %2461 = sub nsw i32 %2460, 1
  %2462 = sext i32 %2461 to i64
  %2463 = getelementptr inbounds ptr, ptr %2459, i64 %2462
  %2464 = load ptr, ptr %2463, align 8, !tbaa !5
  %2465 = load i32, ptr %17, align 4, !tbaa !9
  %2466 = sext i32 %2465 to i64
  %2467 = getelementptr inbounds %struct.cellb, ptr %2464, i64 %2466
  %2468 = getelementptr inbounds %struct.cellb, ptr %2467, i32 0, i32 2
  %2469 = load double, ptr %2468, align 8, !tbaa !136
  %2470 = fadd double %2454, %2469
  %2471 = fmul double 2.500000e-01, %2470
  %2472 = getelementptr inbounds %class.spatial_region, ptr %22, i32 0, i32 49
  %2473 = load i32, ptr %20, align 4, !tbaa !9
  %2474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %2472, i32 noundef %2473)
  %2475 = load ptr, ptr %2474, align 8, !tbaa !5
  %2476 = load i32, ptr %21, align 4, !tbaa !9
  %2477 = sext i32 %2476 to i64
  %2478 = getelementptr inbounds ptr, ptr %2475, i64 %2477
  %2479 = load ptr, ptr %2478, align 8, !tbaa !5
  %2480 = load i32, ptr %17, align 4, !tbaa !9
  %2481 = sext i32 %2480 to i64
  %2482 = getelementptr inbounds %struct.cellbe, ptr %2479, i64 %2481
  %2483 = getelementptr inbounds %struct.cellbe, ptr %2482, i32 0, i32 2
  store double %2471, ptr %2483, align 8, !tbaa !137
  br label %2484

2484:                                             ; preds = %2139
  %2485 = load i32, ptr %21, align 4, !tbaa !9
  %2486 = add nsw i32 %2485, 1
  store i32 %2486, ptr %21, align 4, !tbaa !9
  br label %2132, !llvm.loop !152

2487:                                             ; preds = %2138
  br label %2488

2488:                                             ; preds = %2487
  %2489 = load i32, ptr %20, align 4, !tbaa !9
  %2490 = add nsw i32 %2489, 1
  store i32 %2490, ptr %20, align 4, !tbaa !9
  br label %2124, !llvm.loop !153

2491:                                             ; preds = %2130
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  ret void
}

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) #2 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 = { 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 #3 = { 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, !10, i64 0}
!12 = !{!"_ZTS14spatial_region", !10, i64 0, !10, i64 4, !10, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !10, i64 48, !10, i64 52, !10, i64 56, !13, i64 64, !6, i64 72, !10, i64 80, !10, i64 84, !10, i64 88, !6, i64 96, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !14, i64 136, !20, i64 144, !13, i64 176, !13, i64 184, !13, i64 192, !10, i64 200, !10, i64 204, !10, i64 208, !6, i64 216, !13, i64 224, !13, i64 232, !13, i64 240, !13, i64 248, !6, i64 256, !13, i64 264, !13, i64 272, !13, i64 280, !6, i64 288, !22, i64 296, !6, i64 328, !6, i64 336, !6, i64 344, !6, i64 352, !25, i64 360, !44, i64 400, !63, i64 440, !82, i64 480, !101, i64 520, !120, i64 560, !124, i64 584}
!13 = !{!"double", !7, i64 0}
!14 = !{!"_ZTSSt10unique_ptrI14maxwell_solverSt14default_deleteIS0_EE", !15, i64 0}
!15 = !{!"_ZTSSt15__uniq_ptr_dataI14maxwell_solverSt14default_deleteIS0_ELb1ELb1EE", !16, i64 0}
!16 = !{!"_ZTSSt15__uniq_ptr_implI14maxwell_solverSt14default_deleteIS0_EE", !17, i64 0}
!17 = !{!"_ZTSSt5tupleIJP14maxwell_solverSt14default_deleteIS0_EEE", !18, i64 0}
!18 = !{!"_ZTSSt11_Tuple_implILm0EJP14maxwell_solverSt14default_deleteIS0_EEE", !19, i64 0}
!19 = !{!"_ZTSSt10_Head_baseILm0EP14maxwell_solverLb0EE", !6, i64 0}
!20 = !{!"_ZTSSt8functionIFvR8particleR8vector3dS3_RdEE", !21, i64 0, !6, i64 24}
!21 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !24, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTS7field3dI5celleE", !10, i64 0, !10, i64 4, !10, i64 8, !26, i64 16, !32, i64 24, !38, i64 32}
!26 = !{!"_ZTSSt10unique_ptrIA_PP5celleSt14default_deleteIS3_EE", !27, i64 0}
!27 = !{!"_ZTSSt15__uniq_ptr_dataIPP5celleSt14default_deleteIA_S2_ELb1ELb1EE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_implIPP5celleSt14default_deleteIA_S2_EE", !29, i64 0}
!29 = !{!"_ZTSSt5tupleIJPPP5celleSt14default_deleteIA_S2_EEE", !30, i64 0}
!30 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5celleSt14default_deleteIA_S2_EEE", !31, i64 0}
!31 = !{!"_ZTSSt10_Head_baseILm0EPPP5celleLb0EE", !6, i64 0}
!32 = !{!"_ZTSSt10unique_ptrIA_P5celleSt14default_deleteIS2_EE", !33, i64 0}
!33 = !{!"_ZTSSt15__uniq_ptr_dataIP5celleSt14default_deleteIA_S1_ELb1ELb1EE", !34, i64 0}
!34 = !{!"_ZTSSt15__uniq_ptr_implIP5celleSt14default_deleteIA_S1_EE", !35, i64 0}
!35 = !{!"_ZTSSt5tupleIJPP5celleSt14default_deleteIA_S1_EEE", !36, i64 0}
!36 = !{!"_ZTSSt11_Tuple_implILm0EJPP5celleSt14default_deleteIA_S1_EEE", !37, i64 0}
!37 = !{!"_ZTSSt10_Head_baseILm0EPP5celleLb0EE", !6, i64 0}
!38 = !{!"_ZTSSt10unique_ptrIA_5celleSt14default_deleteIS1_EE", !39, i64 0}
!39 = !{!"_ZTSSt15__uniq_ptr_dataI5celleSt14default_deleteIA_S0_ELb1ELb1EE", !40, i64 0}
!40 = !{!"_ZTSSt15__uniq_ptr_implI5celleSt14default_deleteIA_S0_EE", !41, i64 0}
!41 = !{!"_ZTSSt5tupleIJP5celleSt14default_deleteIA_S0_EEE", !42, i64 0}
!42 = !{!"_ZTSSt11_Tuple_implILm0EJP5celleSt14default_deleteIA_S0_EEE", !43, i64 0}
!43 = !{!"_ZTSSt10_Head_baseILm0EP5celleLb0EE", !6, i64 0}
!44 = !{!"_ZTS7field3dI5cellbE", !10, i64 0, !10, i64 4, !10, i64 8, !45, i64 16, !51, i64 24, !57, i64 32}
!45 = !{!"_ZTSSt10unique_ptrIA_PP5cellbSt14default_deleteIS3_EE", !46, i64 0}
!46 = !{!"_ZTSSt15__uniq_ptr_dataIPP5cellbSt14default_deleteIA_S2_ELb1ELb1EE", !47, i64 0}
!47 = !{!"_ZTSSt15__uniq_ptr_implIPP5cellbSt14default_deleteIA_S2_EE", !48, i64 0}
!48 = !{!"_ZTSSt5tupleIJPPP5cellbSt14default_deleteIA_S2_EEE", !49, i64 0}
!49 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5cellbSt14default_deleteIA_S2_EEE", !50, i64 0}
!50 = !{!"_ZTSSt10_Head_baseILm0EPPP5cellbLb0EE", !6, i64 0}
!51 = !{!"_ZTSSt10unique_ptrIA_P5cellbSt14default_deleteIS2_EE", !52, i64 0}
!52 = !{!"_ZTSSt15__uniq_ptr_dataIP5cellbSt14default_deleteIA_S1_ELb1ELb1EE", !53, i64 0}
!53 = !{!"_ZTSSt15__uniq_ptr_implIP5cellbSt14default_deleteIA_S1_EE", !54, i64 0}
!54 = !{!"_ZTSSt5tupleIJPP5cellbSt14default_deleteIA_S1_EEE", !55, i64 0}
!55 = !{!"_ZTSSt11_Tuple_implILm0EJPP5cellbSt14default_deleteIA_S1_EEE", !56, i64 0}
!56 = !{!"_ZTSSt10_Head_baseILm0EPP5cellbLb0EE", !6, i64 0}
!57 = !{!"_ZTSSt10unique_ptrIA_5cellbSt14default_deleteIS1_EE", !58, i64 0}
!58 = !{!"_ZTSSt15__uniq_ptr_dataI5cellbSt14default_deleteIA_S0_ELb1ELb1EE", !59, i64 0}
!59 = !{!"_ZTSSt15__uniq_ptr_implI5cellbSt14default_deleteIA_S0_EE", !60, i64 0}
!60 = !{!"_ZTSSt5tupleIJP5cellbSt14default_deleteIA_S0_EEE", !61, i64 0}
!61 = !{!"_ZTSSt11_Tuple_implILm0EJP5cellbSt14default_deleteIA_S0_EEE", !62, i64 0}
!62 = !{!"_ZTSSt10_Head_baseILm0EP5cellbLb0EE", !6, i64 0}
!63 = !{!"_ZTS7field3dI5celljE", !10, i64 0, !10, i64 4, !10, i64 8, !64, i64 16, !70, i64 24, !76, i64 32}
!64 = !{!"_ZTSSt10unique_ptrIA_PP5celljSt14default_deleteIS3_EE", !65, i64 0}
!65 = !{!"_ZTSSt15__uniq_ptr_dataIPP5celljSt14default_deleteIA_S2_ELb1ELb1EE", !66, i64 0}
!66 = !{!"_ZTSSt15__uniq_ptr_implIPP5celljSt14default_deleteIA_S2_EE", !67, i64 0}
!67 = !{!"_ZTSSt5tupleIJPPP5celljSt14default_deleteIA_S2_EEE", !68, i64 0}
!68 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5celljSt14default_deleteIA_S2_EEE", !69, i64 0}
!69 = !{!"_ZTSSt10_Head_baseILm0EPPP5celljLb0EE", !6, i64 0}
!70 = !{!"_ZTSSt10unique_ptrIA_P5celljSt14default_deleteIS2_EE", !71, i64 0}
!71 = !{!"_ZTSSt15__uniq_ptr_dataIP5celljSt14default_deleteIA_S1_ELb1ELb1EE", !72, i64 0}
!72 = !{!"_ZTSSt15__uniq_ptr_implIP5celljSt14default_deleteIA_S1_EE", !73, i64 0}
!73 = !{!"_ZTSSt5tupleIJPP5celljSt14default_deleteIA_S1_EEE", !74, i64 0}
!74 = !{!"_ZTSSt11_Tuple_implILm0EJPP5celljSt14default_deleteIA_S1_EEE", !75, i64 0}
!75 = !{!"_ZTSSt10_Head_baseILm0EPP5celljLb0EE", !6, i64 0}
!76 = !{!"_ZTSSt10unique_ptrIA_5celljSt14default_deleteIS1_EE", !77, i64 0}
!77 = !{!"_ZTSSt15__uniq_ptr_dataI5celljSt14default_deleteIA_S0_ELb1ELb1EE", !78, i64 0}
!78 = !{!"_ZTSSt15__uniq_ptr_implI5celljSt14default_deleteIA_S0_EE", !79, i64 0}
!79 = !{!"_ZTSSt5tupleIJP5celljSt14default_deleteIA_S0_EEE", !80, i64 0}
!80 = !{!"_ZTSSt11_Tuple_implILm0EJP5celljSt14default_deleteIA_S0_EEE", !81, i64 0}
!81 = !{!"_ZTSSt10_Head_baseILm0EP5celljLb0EE", !6, i64 0}
!82 = !{!"_ZTS7field3dI6cellbeE", !10, i64 0, !10, i64 4, !10, i64 8, !83, i64 16, !89, i64 24, !95, i64 32}
!83 = !{!"_ZTSSt10unique_ptrIA_PP6cellbeSt14default_deleteIS3_EE", !84, i64 0}
!84 = !{!"_ZTSSt15__uniq_ptr_dataIPP6cellbeSt14default_deleteIA_S2_ELb1ELb1EE", !85, i64 0}
!85 = !{!"_ZTSSt15__uniq_ptr_implIPP6cellbeSt14default_deleteIA_S2_EE", !86, i64 0}
!86 = !{!"_ZTSSt5tupleIJPPP6cellbeSt14default_deleteIA_S2_EEE", !87, i64 0}
!87 = !{!"_ZTSSt11_Tuple_implILm0EJPPP6cellbeSt14default_deleteIA_S2_EEE", !88, i64 0}
!88 = !{!"_ZTSSt10_Head_baseILm0EPPP6cellbeLb0EE", !6, i64 0}
!89 = !{!"_ZTSSt10unique_ptrIA_P6cellbeSt14default_deleteIS2_EE", !90, i64 0}
!90 = !{!"_ZTSSt15__uniq_ptr_dataIP6cellbeSt14default_deleteIA_S1_ELb1ELb1EE", !91, i64 0}
!91 = !{!"_ZTSSt15__uniq_ptr_implIP6cellbeSt14default_deleteIA_S1_EE", !92, i64 0}
!92 = !{!"_ZTSSt5tupleIJPP6cellbeSt14default_deleteIA_S1_EEE", !93, i64 0}
!93 = !{!"_ZTSSt11_Tuple_implILm0EJPP6cellbeSt14default_deleteIA_S1_EEE", !94, i64 0}
!94 = !{!"_ZTSSt10_Head_baseILm0EPP6cellbeLb0EE", !6, i64 0}
!95 = !{!"_ZTSSt10unique_ptrIA_6cellbeSt14default_deleteIS1_EE", !96, i64 0}
!96 = !{!"_ZTSSt15__uniq_ptr_dataI6cellbeSt14default_deleteIA_S0_ELb1ELb1EE", !97, i64 0}
!97 = !{!"_ZTSSt15__uniq_ptr_implI6cellbeSt14default_deleteIA_S0_EE", !98, i64 0}
!98 = !{!"_ZTSSt5tupleIJP6cellbeSt14default_deleteIA_S0_EEE", !99, i64 0}
!99 = !{!"_ZTSSt11_Tuple_implILm0EJP6cellbeSt14default_deleteIA_S0_EEE", !100, i64 0}
!100 = !{!"_ZTSSt10_Head_baseILm0EP6cellbeLb0EE", !6, i64 0}
!101 = !{!"_ZTS7field3dI5cellpE", !10, i64 0, !10, i64 4, !10, i64 8, !102, i64 16, !108, i64 24, !114, i64 32}
!102 = !{!"_ZTSSt10unique_ptrIA_PP5cellpSt14default_deleteIS3_EE", !103, i64 0}
!103 = !{!"_ZTSSt15__uniq_ptr_dataIPP5cellpSt14default_deleteIA_S2_ELb1ELb1EE", !104, i64 0}
!104 = !{!"_ZTSSt15__uniq_ptr_implIPP5cellpSt14default_deleteIA_S2_EE", !105, i64 0}
!105 = !{!"_ZTSSt5tupleIJPPP5cellpSt14default_deleteIA_S2_EEE", !106, i64 0}
!106 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5cellpSt14default_deleteIA_S2_EEE", !107, i64 0}
!107 = !{!"_ZTSSt10_Head_baseILm0EPPP5cellpLb0EE", !6, i64 0}
!108 = !{!"_ZTSSt10unique_ptrIA_P5cellpSt14default_deleteIS2_EE", !109, i64 0}
!109 = !{!"_ZTSSt15__uniq_ptr_dataIP5cellpSt14default_deleteIA_S1_ELb1ELb1EE", !110, i64 0}
!110 = !{!"_ZTSSt15__uniq_ptr_implIP5cellpSt14default_deleteIA_S1_EE", !111, i64 0}
!111 = !{!"_ZTSSt5tupleIJPP5cellpSt14default_deleteIA_S1_EEE", !112, i64 0}
!112 = !{!"_ZTSSt11_Tuple_implILm0EJPP5cellpSt14default_deleteIA_S1_EEE", !113, i64 0}
!113 = !{!"_ZTSSt10_Head_baseILm0EPP5cellpLb0EE", !6, i64 0}
!114 = !{!"_ZTSSt10unique_ptrIA_5cellpSt14default_deleteIS1_EE", !115, i64 0}
!115 = !{!"_ZTSSt15__uniq_ptr_dataI5cellpSt14default_deleteIA_S0_ELb1ELb1EE", !116, i64 0}
!116 = !{!"_ZTSSt15__uniq_ptr_implI5cellpSt14default_deleteIA_S0_EE", !117, i64 0}
!117 = !{!"_ZTSSt5tupleIJP5cellpSt14default_deleteIA_S0_EEE", !118, i64 0}
!118 = !{!"_ZTSSt11_Tuple_implILm0EJP5cellpSt14default_deleteIA_S0_EEE", !119, i64 0}
!119 = !{!"_ZTSSt10_Head_baseILm0EP5cellpLb0EE", !6, i64 0}
!120 = !{!"_ZTSSt6vectorI7field3dIdESaIS1_EE", !121, i64 0}
!121 = !{!"_ZTSSt12_Vector_baseI7field3dIdESaIS1_EE", !122, i64 0}
!122 = !{!"_ZTSNSt12_Vector_baseI7field3dIdESaIS1_EE12_Vector_implE", !123, i64 0}
!123 = !{!"_ZTSNSt12_Vector_baseI7field3dIdESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!124 = !{!"_ZTSSt6vectorIN14spatial_region16deleted_particleESaIS1_EE", !125, i64 0}
!125 = !{!"_ZTSSt12_Vector_baseIN14spatial_region16deleted_particleESaIS1_EE", !126, i64 0}
!126 = !{!"_ZTSNSt12_Vector_baseIN14spatial_region16deleted_particleESaIS1_EE12_Vector_implE", !127, i64 0}
!127 = !{!"_ZTSNSt12_Vector_baseIN14spatial_region16deleted_particleESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!128 = !{!12, !10, i64 4}
!129 = !{!12, !10, i64 8}
!130 = !{!131, !13, i64 0}
!131 = !{!"_ZTS5cellb", !13, i64 0, !13, i64 8, !13, i64 16}
!132 = !{!133, !13, i64 0}
!133 = !{!"_ZTS6cellbe", !13, i64 0, !13, i64 8, !13, i64 16}
!134 = !{!131, !13, i64 8}
!135 = !{!133, !13, i64 8}
!136 = !{!131, !13, i64 16}
!137 = !{!133, !13, i64 16}
!138 = distinct !{!138, !139}
!139 = !{!"llvm.loop.mustprogress"}
!140 = distinct !{!140, !139}
!141 = distinct !{!141, !139}
!142 = distinct !{!142, !139}
!143 = distinct !{!143, !139}
!144 = distinct !{!144, !139}
!145 = distinct !{!145, !139}
!146 = distinct !{!146, !139}
!147 = distinct !{!147, !139}
!148 = distinct !{!148, !139}
!149 = distinct !{!149, !139}
!150 = distinct !{!150, !139}
!151 = distinct !{!151, !139}
!152 = distinct !{!152, !139}
!153 = distinct !{!153, !139}


; 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"

%struct.cellb = type { double, double, double }
%struct.cellbe = type { double, double, double }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14spatial_region14interpolate_beEv(ptr noundef nonnull align 8 dereferenceable(608) %0) local_unnamed_addr #0 align 2 {
  %2 = load i32, ptr %0, align 8, !tbaa !5
  %3 = icmp sgt i32 %2, 2
  %4 = getelementptr inbounds i8, ptr %0, i64 4
  br i1 %3, label %.preheader512.lr.ph, label %..preheader510_crit_edge

..preheader510_crit_edge:                         ; preds = %1
  %.pre583 = load i32, ptr %4, align 4, !tbaa !126
  br label %.preheader510

.preheader512.lr.ph:                              ; preds = %1
  %5 = getelementptr inbounds i8, ptr %0, i64 8
  %6 = getelementptr inbounds i8, ptr %0, i64 400
  %7 = getelementptr inbounds i8, ptr %0, i64 480
  %8 = load i32, ptr %4, align 4, !tbaa !126
  %9 = icmp sgt i32 %8, 2
  br i1 %9, label %.preheader512, label %.preheader507.thread

.preheader507.thread:                             ; preds = %.preheader512.lr.ph
  %10 = getelementptr inbounds i8, ptr %0, i64 4
  br label %.preheader506.lr.ph

.preheader512:                                    ; preds = %.preheader512.lr.ph, %._crit_edge515
  %11 = phi i32 [ %33, %._crit_edge515 ], [ %2, %.preheader512.lr.ph ]
  %12 = phi i32 [ %34, %._crit_edge515 ], [ %8, %.preheader512.lr.ph ]
  %13 = phi i32 [ %35, %._crit_edge515 ], [ %8, %.preheader512.lr.ph ]
  %.0502516 = phi i32 [ %15, %._crit_edge515 ], [ 1, %.preheader512.lr.ph ]
  %14 = icmp sgt i32 %13, 2
  %15 = add nuw nsw i32 %.0502516, 1
  br i1 %14, label %.preheader511.lr.ph, label %._crit_edge515

.preheader511.lr.ph:                              ; preds = %.preheader512
  %16 = add nsw i32 %.0502516, -1
  %17 = load i32, ptr %5, align 8, !tbaa !127
  %18 = icmp sgt i32 %17, 2
  br i1 %18, label %.preheader511, label %._crit_edge515

.preheader510:                                    ; preds = %._crit_edge515, %..preheader510_crit_edge
  %19 = phi i32 [ %2, %..preheader510_crit_edge ], [ %33, %._crit_edge515 ]
  %20 = phi i32 [ %.pre583, %..preheader510_crit_edge ], [ %34, %._crit_edge515 ]
  %21 = getelementptr inbounds i8, ptr %0, i64 4
  %22 = icmp sgt i32 %20, 2
  br i1 %22, label %.preheader509.lr.ph, label %.preheader507

.preheader509.lr.ph:                              ; preds = %.preheader510
  %23 = getelementptr inbounds i8, ptr %0, i64 8
  %24 = getelementptr inbounds i8, ptr %0, i64 400
  %25 = getelementptr inbounds i8, ptr %0, i64 480
  %26 = load i32, ptr %23, align 8, !tbaa !127
  %27 = icmp sgt i32 %26, 2
  br i1 %27, label %.preheader509, label %.preheader508.lr.ph

.preheader511:                                    ; preds = %.preheader511.lr.ph, %._crit_edge
  %28 = phi i32 [ %38, %._crit_edge ], [ %12, %.preheader511.lr.ph ]
  %29 = phi i32 [ %39, %._crit_edge ], [ %17, %.preheader511.lr.ph ]
  %indvars.iv555 = phi i64 [ %indvars.iv.next556.pre-phi, %._crit_edge ], [ 1, %.preheader511.lr.ph ]
  %30 = icmp sgt i32 %29, 2
  br i1 %30, label %.lr.ph, label %.preheader511.._crit_edge_crit_edge

.preheader511.._crit_edge_crit_edge:              ; preds = %.preheader511
  %.pre592 = add nuw nsw i64 %indvars.iv555, 1
  br label %._crit_edge

.lr.ph:                                           ; preds = %.preheader511
  %31 = add nsw i64 %indvars.iv555, -1
  %32 = add nuw nsw i64 %indvars.iv555, 1
  br label %43

._crit_edge515.loopexit:                          ; preds = %._crit_edge
  %.pre582 = load i32, ptr %0, align 8, !tbaa !5
  br label %._crit_edge515

._crit_edge515:                                   ; preds = %.preheader512, %.preheader511.lr.ph, %._crit_edge515.loopexit
  %33 = phi i32 [ %.pre582, %._crit_edge515.loopexit ], [ %11, %.preheader511.lr.ph ], [ %11, %.preheader512 ]
  %34 = phi i32 [ %38, %._crit_edge515.loopexit ], [ %12, %.preheader511.lr.ph ], [ %12, %.preheader512 ]
  %35 = phi i32 [ %38, %._crit_edge515.loopexit ], [ %13, %.preheader511.lr.ph ], [ %13, %.preheader512 ]
  %36 = add nsw i32 %33, -1
  %37 = icmp slt i32 %15, %36
  br i1 %37, label %.preheader512, label %.preheader510, !llvm.loop !128

._crit_edge.loopexit:                             ; preds = %43
  %.pre = load i32, ptr %4, align 4, !tbaa !126
  br label %._crit_edge

._crit_edge:                                      ; preds = %.preheader511.._crit_edge_crit_edge, %._crit_edge.loopexit
  %indvars.iv.next556.pre-phi = phi i64 [ %.pre592, %.preheader511.._crit_edge_crit_edge ], [ %32, %._crit_edge.loopexit ]
  %38 = phi i32 [ %28, %.preheader511.._crit_edge_crit_edge ], [ %.pre, %._crit_edge.loopexit ]
  %39 = phi i32 [ %29, %.preheader511.._crit_edge_crit_edge ], [ %228, %._crit_edge.loopexit ]
  %40 = add nsw i32 %38, -1
  %41 = sext i32 %40 to i64
  %42 = icmp slt i64 %indvars.iv.next556.pre-phi, %41
  br i1 %42, label %.preheader511, label %._crit_edge515.loopexit, !llvm.loop !131

43:                                               ; preds = %.lr.ph, %43
  %indvars.iv = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next, %43 ]
  %44 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %45 = load ptr, ptr %44, align 8, !tbaa !132
  %46 = getelementptr inbounds ptr, ptr %45, i64 %indvars.iv555
  %47 = load ptr, ptr %46, align 8, !tbaa !132
  %48 = getelementptr inbounds %struct.cellb, ptr %47, i64 %indvars.iv
  %49 = load double, ptr %48, align 8, !tbaa !133
  %50 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %15)
  %51 = load ptr, ptr %50, align 8, !tbaa !132
  %52 = getelementptr inbounds ptr, ptr %51, i64 %indvars.iv555
  %53 = load ptr, ptr %52, align 8, !tbaa !132
  %54 = getelementptr inbounds %struct.cellb, ptr %53, i64 %indvars.iv
  %55 = load double, ptr %54, align 8, !tbaa !133
  %56 = fadd double %49, %55
  %57 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %58 = load ptr, ptr %57, align 8, !tbaa !132
  %59 = getelementptr inbounds ptr, ptr %58, i64 %indvars.iv555
  %60 = load ptr, ptr %59, align 8, !tbaa !132
  %61 = add nsw i64 %indvars.iv, -1
  %62 = getelementptr inbounds %struct.cellb, ptr %60, i64 %61
  %63 = load double, ptr %62, align 8, !tbaa !133
  %64 = fadd double %56, %63
  %65 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %15)
  %66 = load ptr, ptr %65, align 8, !tbaa !132
  %67 = getelementptr inbounds ptr, ptr %66, i64 %indvars.iv555
  %68 = load ptr, ptr %67, align 8, !tbaa !132
  %69 = getelementptr inbounds %struct.cellb, ptr %68, i64 %61
  %70 = load double, ptr %69, align 8, !tbaa !133
  %71 = fadd double %64, %70
  %72 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %73 = load ptr, ptr %72, align 8, !tbaa !132
  %74 = getelementptr inbounds ptr, ptr %73, i64 %31
  %75 = load ptr, ptr %74, align 8, !tbaa !132
  %76 = getelementptr inbounds %struct.cellb, ptr %75, i64 %indvars.iv
  %77 = load double, ptr %76, align 8, !tbaa !133
  %78 = fadd double %71, %77
  %79 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %15)
  %80 = load ptr, ptr %79, align 8, !tbaa !132
  %81 = getelementptr inbounds ptr, ptr %80, i64 %31
  %82 = load ptr, ptr %81, align 8, !tbaa !132
  %83 = getelementptr inbounds %struct.cellb, ptr %82, i64 %indvars.iv
  %84 = load double, ptr %83, align 8, !tbaa !133
  %85 = fadd double %78, %84
  %86 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %87 = load ptr, ptr %86, align 8, !tbaa !132
  %88 = getelementptr inbounds ptr, ptr %87, i64 %31
  %89 = load ptr, ptr %88, align 8, !tbaa !132
  %90 = getelementptr inbounds %struct.cellb, ptr %89, i64 %61
  %91 = load double, ptr %90, align 8, !tbaa !133
  %92 = fadd double %85, %91
  %93 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %15)
  %94 = load ptr, ptr %93, align 8, !tbaa !132
  %95 = getelementptr inbounds ptr, ptr %94, i64 %31
  %96 = load ptr, ptr %95, align 8, !tbaa !132
  %97 = getelementptr inbounds %struct.cellb, ptr %96, i64 %61
  %98 = load double, ptr %97, align 8, !tbaa !133
  %99 = fadd double %92, %98
  %100 = fmul double %99, 1.250000e-01
  %101 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %7, i32 noundef %.0502516)
  %102 = load ptr, ptr %101, align 8, !tbaa !132
  %103 = getelementptr inbounds ptr, ptr %102, i64 %indvars.iv555
  %104 = load ptr, ptr %103, align 8, !tbaa !132
  %105 = getelementptr inbounds %struct.cellbe, ptr %104, i64 %indvars.iv
  store double %100, ptr %105, align 8, !tbaa !135
  %106 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %107 = load ptr, ptr %106, align 8, !tbaa !132
  %108 = getelementptr inbounds ptr, ptr %107, i64 %indvars.iv555
  %109 = load ptr, ptr %108, align 8, !tbaa !132
  %110 = getelementptr inbounds %struct.cellb, ptr %109, i64 %indvars.iv, i32 1
  %111 = load double, ptr %110, align 8, !tbaa !137
  %112 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %113 = load ptr, ptr %112, align 8, !tbaa !132
  %114 = getelementptr inbounds ptr, ptr %113, i64 %indvars.iv555
  %115 = load ptr, ptr %114, align 8, !tbaa !132
  %116 = getelementptr inbounds %struct.cellb, ptr %115, i64 %indvars.iv, i32 1
  %117 = load double, ptr %116, align 8, !tbaa !137
  %118 = fadd double %111, %117
  %119 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %120 = load ptr, ptr %119, align 8, !tbaa !132
  %121 = getelementptr inbounds ptr, ptr %120, i64 %indvars.iv555
  %122 = load ptr, ptr %121, align 8, !tbaa !132
  %123 = getelementptr inbounds %struct.cellb, ptr %122, i64 %61, i32 1
  %124 = load double, ptr %123, align 8, !tbaa !137
  %125 = fadd double %118, %124
  %126 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %127 = load ptr, ptr %126, align 8, !tbaa !132
  %128 = getelementptr inbounds ptr, ptr %127, i64 %indvars.iv555
  %129 = load ptr, ptr %128, align 8, !tbaa !132
  %130 = getelementptr inbounds %struct.cellb, ptr %129, i64 %61, i32 1
  %131 = load double, ptr %130, align 8, !tbaa !137
  %132 = fadd double %125, %131
  %133 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %134 = load ptr, ptr %133, align 8, !tbaa !132
  %135 = getelementptr inbounds ptr, ptr %134, i64 %32
  %136 = load ptr, ptr %135, align 8, !tbaa !132
  %137 = getelementptr inbounds %struct.cellb, ptr %136, i64 %indvars.iv, i32 1
  %138 = load double, ptr %137, align 8, !tbaa !137
  %139 = fadd double %132, %138
  %140 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %141 = load ptr, ptr %140, align 8, !tbaa !132
  %142 = getelementptr inbounds ptr, ptr %141, i64 %32
  %143 = load ptr, ptr %142, align 8, !tbaa !132
  %144 = getelementptr inbounds %struct.cellb, ptr %143, i64 %indvars.iv, i32 1
  %145 = load double, ptr %144, align 8, !tbaa !137
  %146 = fadd double %139, %145
  %147 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %148 = load ptr, ptr %147, align 8, !tbaa !132
  %149 = getelementptr inbounds ptr, ptr %148, i64 %32
  %150 = load ptr, ptr %149, align 8, !tbaa !132
  %151 = getelementptr inbounds %struct.cellb, ptr %150, i64 %61, i32 1
  %152 = load double, ptr %151, align 8, !tbaa !137
  %153 = fadd double %146, %152
  %154 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %155 = load ptr, ptr %154, align 8, !tbaa !132
  %156 = getelementptr inbounds ptr, ptr %155, i64 %32
  %157 = load ptr, ptr %156, align 8, !tbaa !132
  %158 = getelementptr inbounds %struct.cellb, ptr %157, i64 %61, i32 1
  %159 = load double, ptr %158, align 8, !tbaa !137
  %160 = fadd double %153, %159
  %161 = fmul double %160, 1.250000e-01
  %162 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %7, i32 noundef %.0502516)
  %163 = load ptr, ptr %162, align 8, !tbaa !132
  %164 = getelementptr inbounds ptr, ptr %163, i64 %indvars.iv555
  %165 = load ptr, ptr %164, align 8, !tbaa !132
  %166 = getelementptr inbounds %struct.cellbe, ptr %165, i64 %indvars.iv, i32 1
  store double %161, ptr %166, align 8, !tbaa !138
  %167 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %168 = load ptr, ptr %167, align 8, !tbaa !132
  %169 = getelementptr inbounds ptr, ptr %168, i64 %indvars.iv555
  %170 = load ptr, ptr %169, align 8, !tbaa !132
  %171 = getelementptr inbounds %struct.cellb, ptr %170, i64 %indvars.iv, i32 2
  %172 = load double, ptr %171, align 8, !tbaa !139
  %173 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %174 = load ptr, ptr %173, align 8, !tbaa !132
  %175 = getelementptr inbounds ptr, ptr %174, i64 %indvars.iv555
  %176 = load ptr, ptr %175, align 8, !tbaa !132
  %177 = getelementptr inbounds %struct.cellb, ptr %176, i64 %indvars.iv, i32 2
  %178 = load double, ptr %177, align 8, !tbaa !139
  %179 = fadd double %172, %178
  %180 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %181 = load ptr, ptr %180, align 8, !tbaa !132
  %182 = getelementptr inbounds ptr, ptr %181, i64 %indvars.iv555
  %183 = load ptr, ptr %182, align 8, !tbaa !132
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %184 = getelementptr inbounds %struct.cellb, ptr %183, i64 %indvars.iv.next, i32 2
  %185 = load double, ptr %184, align 8, !tbaa !139
  %186 = fadd double %179, %185
  %187 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %188 = load ptr, ptr %187, align 8, !tbaa !132
  %189 = getelementptr inbounds ptr, ptr %188, i64 %indvars.iv555
  %190 = load ptr, ptr %189, align 8, !tbaa !132
  %191 = getelementptr inbounds %struct.cellb, ptr %190, i64 %indvars.iv.next, i32 2
  %192 = load double, ptr %191, align 8, !tbaa !139
  %193 = fadd double %186, %192
  %194 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %195 = load ptr, ptr %194, align 8, !tbaa !132
  %196 = getelementptr inbounds ptr, ptr %195, i64 %31
  %197 = load ptr, ptr %196, align 8, !tbaa !132
  %198 = getelementptr inbounds %struct.cellb, ptr %197, i64 %indvars.iv, i32 2
  %199 = load double, ptr %198, align 8, !tbaa !139
  %200 = fadd double %193, %199
  %201 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %202 = load ptr, ptr %201, align 8, !tbaa !132
  %203 = getelementptr inbounds ptr, ptr %202, i64 %31
  %204 = load ptr, ptr %203, align 8, !tbaa !132
  %205 = getelementptr inbounds %struct.cellb, ptr %204, i64 %indvars.iv, i32 2
  %206 = load double, ptr %205, align 8, !tbaa !139
  %207 = fadd double %200, %206
  %208 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %.0502516)
  %209 = load ptr, ptr %208, align 8, !tbaa !132
  %210 = getelementptr inbounds ptr, ptr %209, i64 %31
  %211 = load ptr, ptr %210, align 8, !tbaa !132
  %212 = getelementptr inbounds %struct.cellb, ptr %211, i64 %indvars.iv.next, i32 2
  %213 = load double, ptr %212, align 8, !tbaa !139
  %214 = fadd double %207, %213
  %215 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %16)
  %216 = load ptr, ptr %215, align 8, !tbaa !132
  %217 = getelementptr inbounds ptr, ptr %216, i64 %31
  %218 = load ptr, ptr %217, align 8, !tbaa !132
  %219 = getelementptr inbounds %struct.cellb, ptr %218, i64 %indvars.iv.next, i32 2
  %220 = load double, ptr %219, align 8, !tbaa !139
  %221 = fadd double %214, %220
  %222 = fmul double %221, 1.250000e-01
  %223 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %7, i32 noundef %.0502516)
  %224 = load ptr, ptr %223, align 8, !tbaa !132
  %225 = getelementptr inbounds ptr, ptr %224, i64 %indvars.iv555
  %226 = load ptr, ptr %225, align 8, !tbaa !132
  %227 = getelementptr inbounds %struct.cellbe, ptr %226, i64 %indvars.iv, i32 2
  store double %222, ptr %227, align 8, !tbaa !140
  %228 = load i32, ptr %5, align 8, !tbaa !127
  %229 = add nsw i32 %228, -1
  %230 = sext i32 %229 to i64
  %231 = icmp slt i64 %indvars.iv.next, %230
  br i1 %231, label %43, label %._crit_edge.loopexit, !llvm.loop !141

.preheader509:                                    ; preds = %.preheader509.lr.ph, %._crit_edge520
  %232 = phi i32 [ %247, %._crit_edge520 ], [ %20, %.preheader509.lr.ph ]
  %233 = phi i32 [ %248, %._crit_edge520 ], [ %26, %.preheader509.lr.ph ]
  %indvars.iv561 = phi i64 [ %indvars.iv.next562.pre-phi, %._crit_edge520 ], [ 1, %.preheader509.lr.ph ]
  %234 = icmp sgt i32 %233, 2
  br i1 %234, label %.lr.ph519, label %.preheader509.._crit_edge520_crit_edge

.preheader509.._crit_edge520_crit_edge:           ; preds = %.preheader509
  %.pre594 = add nuw nsw i64 %indvars.iv561, 1
  br label %._crit_edge520

.lr.ph519:                                        ; preds = %.preheader509
  %235 = add nsw i64 %indvars.iv561, -1
  %236 = add nuw nsw i64 %indvars.iv561, 1
  br label %252

._crit_edge522:                                   ; preds = %._crit_edge520
  %.pre585 = load i32, ptr %0, align 8, !tbaa !5
  %237 = icmp sgt i32 %247, 2
  br i1 %237, label %.preheader508.lr.ph, label %.preheader507

.preheader508.lr.ph:                              ; preds = %.preheader509.lr.ph, %._crit_edge522
  %238 = phi i32 [ %.pre585, %._crit_edge522 ], [ %19, %.preheader509.lr.ph ]
  %239 = phi i32 [ %247, %._crit_edge522 ], [ %20, %.preheader509.lr.ph ]
  %240 = add nsw i32 %238, -1
  %241 = getelementptr inbounds i8, ptr %0, i64 8
  %242 = getelementptr inbounds i8, ptr %0, i64 400
  %243 = getelementptr inbounds i8, ptr %0, i64 480
  %244 = add nsw i32 %238, -2
  %245 = load i32, ptr %241, align 8, !tbaa !127
  %246 = icmp sgt i32 %245, 2
  br i1 %246, label %.preheader508, label %.preheader507

._crit_edge520.loopexit:                          ; preds = %252
  %.pre584 = load i32, ptr %21, align 4, !tbaa !126
  br label %._crit_edge520

._crit_edge520:                                   ; preds = %.preheader509.._crit_edge520_crit_edge, %._crit_edge520.loopexit
  %indvars.iv.next562.pre-phi = phi i64 [ %.pre594, %.preheader509.._crit_edge520_crit_edge ], [ %236, %._crit_edge520.loopexit ]
  %247 = phi i32 [ %232, %.preheader509.._crit_edge520_crit_edge ], [ %.pre584, %._crit_edge520.loopexit ]
  %248 = phi i32 [ %233, %.preheader509.._crit_edge520_crit_edge ], [ %381, %._crit_edge520.loopexit ]
  %249 = add nsw i32 %247, -1
  %250 = sext i32 %249 to i64
  %251 = icmp slt i64 %indvars.iv.next562.pre-phi, %250
  br i1 %251, label %.preheader509, label %._crit_edge522, !llvm.loop !142

252:                                              ; preds = %.lr.ph519, %252
  %indvars.iv558 = phi i64 [ 1, %.lr.ph519 ], [ %indvars.iv.next559, %252 ]
  %253 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %254 = load ptr, ptr %253, align 8, !tbaa !132
  %255 = getelementptr inbounds ptr, ptr %254, i64 %indvars.iv561
  %256 = load ptr, ptr %255, align 8, !tbaa !132
  %257 = getelementptr inbounds %struct.cellb, ptr %256, i64 %indvars.iv558
  %258 = load double, ptr %257, align 8, !tbaa !133
  %259 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 1)
  %260 = load ptr, ptr %259, align 8, !tbaa !132
  %261 = getelementptr inbounds ptr, ptr %260, i64 %indvars.iv561
  %262 = load ptr, ptr %261, align 8, !tbaa !132
  %263 = getelementptr inbounds %struct.cellb, ptr %262, i64 %indvars.iv558
  %264 = load double, ptr %263, align 8, !tbaa !133
  %265 = fadd double %258, %264
  %266 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %267 = load ptr, ptr %266, align 8, !tbaa !132
  %268 = getelementptr inbounds ptr, ptr %267, i64 %indvars.iv561
  %269 = load ptr, ptr %268, align 8, !tbaa !132
  %270 = add nsw i64 %indvars.iv558, -1
  %271 = getelementptr inbounds %struct.cellb, ptr %269, i64 %270
  %272 = load double, ptr %271, align 8, !tbaa !133
  %273 = fadd double %265, %272
  %274 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 1)
  %275 = load ptr, ptr %274, align 8, !tbaa !132
  %276 = getelementptr inbounds ptr, ptr %275, i64 %indvars.iv561
  %277 = load ptr, ptr %276, align 8, !tbaa !132
  %278 = getelementptr inbounds %struct.cellb, ptr %277, i64 %270
  %279 = load double, ptr %278, align 8, !tbaa !133
  %280 = fadd double %273, %279
  %281 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %282 = load ptr, ptr %281, align 8, !tbaa !132
  %283 = getelementptr inbounds ptr, ptr %282, i64 %235
  %284 = load ptr, ptr %283, align 8, !tbaa !132
  %285 = getelementptr inbounds %struct.cellb, ptr %284, i64 %indvars.iv558
  %286 = load double, ptr %285, align 8, !tbaa !133
  %287 = fadd double %280, %286
  %288 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 1)
  %289 = load ptr, ptr %288, align 8, !tbaa !132
  %290 = getelementptr inbounds ptr, ptr %289, i64 %235
  %291 = load ptr, ptr %290, align 8, !tbaa !132
  %292 = getelementptr inbounds %struct.cellb, ptr %291, i64 %indvars.iv558
  %293 = load double, ptr %292, align 8, !tbaa !133
  %294 = fadd double %287, %293
  %295 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %296 = load ptr, ptr %295, align 8, !tbaa !132
  %297 = getelementptr inbounds ptr, ptr %296, i64 %235
  %298 = load ptr, ptr %297, align 8, !tbaa !132
  %299 = getelementptr inbounds %struct.cellb, ptr %298, i64 %270
  %300 = load double, ptr %299, align 8, !tbaa !133
  %301 = fadd double %294, %300
  %302 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 1)
  %303 = load ptr, ptr %302, align 8, !tbaa !132
  %304 = getelementptr inbounds ptr, ptr %303, i64 %235
  %305 = load ptr, ptr %304, align 8, !tbaa !132
  %306 = getelementptr inbounds %struct.cellb, ptr %305, i64 %270
  %307 = load double, ptr %306, align 8, !tbaa !133
  %308 = fadd double %301, %307
  %309 = fmul double %308, 1.250000e-01
  %310 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %25, i32 noundef 0)
  %311 = load ptr, ptr %310, align 8, !tbaa !132
  %312 = getelementptr inbounds ptr, ptr %311, i64 %indvars.iv561
  %313 = load ptr, ptr %312, align 8, !tbaa !132
  %314 = getelementptr inbounds %struct.cellbe, ptr %313, i64 %indvars.iv558
  store double %309, ptr %314, align 8, !tbaa !135
  %315 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %316 = load ptr, ptr %315, align 8, !tbaa !132
  %317 = getelementptr inbounds ptr, ptr %316, i64 %indvars.iv561
  %318 = load ptr, ptr %317, align 8, !tbaa !132
  %319 = getelementptr inbounds %struct.cellb, ptr %318, i64 %indvars.iv558, i32 1
  %320 = load double, ptr %319, align 8, !tbaa !137
  %321 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %322 = load ptr, ptr %321, align 8, !tbaa !132
  %323 = getelementptr inbounds ptr, ptr %322, i64 %indvars.iv561
  %324 = load ptr, ptr %323, align 8, !tbaa !132
  %325 = getelementptr inbounds %struct.cellb, ptr %324, i64 %270, i32 1
  %326 = load double, ptr %325, align 8, !tbaa !137
  %327 = fadd double %320, %326
  %328 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %329 = load ptr, ptr %328, align 8, !tbaa !132
  %330 = getelementptr inbounds ptr, ptr %329, i64 %236
  %331 = load ptr, ptr %330, align 8, !tbaa !132
  %332 = getelementptr inbounds %struct.cellb, ptr %331, i64 %indvars.iv558, i32 1
  %333 = load double, ptr %332, align 8, !tbaa !137
  %334 = fadd double %327, %333
  %335 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %336 = load ptr, ptr %335, align 8, !tbaa !132
  %337 = getelementptr inbounds ptr, ptr %336, i64 %236
  %338 = load ptr, ptr %337, align 8, !tbaa !132
  %339 = getelementptr inbounds %struct.cellb, ptr %338, i64 %270, i32 1
  %340 = load double, ptr %339, align 8, !tbaa !137
  %341 = fadd double %334, %340
  %342 = fmul double %341, 2.500000e-01
  %343 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %25, i32 noundef 0)
  %344 = load ptr, ptr %343, align 8, !tbaa !132
  %345 = getelementptr inbounds ptr, ptr %344, i64 %indvars.iv561
  %346 = load ptr, ptr %345, align 8, !tbaa !132
  %347 = getelementptr inbounds %struct.cellbe, ptr %346, i64 %indvars.iv558, i32 1
  store double %342, ptr %347, align 8, !tbaa !138
  %348 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %349 = load ptr, ptr %348, align 8, !tbaa !132
  %350 = getelementptr inbounds ptr, ptr %349, i64 %indvars.iv561
  %351 = load ptr, ptr %350, align 8, !tbaa !132
  %352 = getelementptr inbounds %struct.cellb, ptr %351, i64 %indvars.iv558, i32 2
  %353 = load double, ptr %352, align 8, !tbaa !139
  %354 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %355 = load ptr, ptr %354, align 8, !tbaa !132
  %356 = getelementptr inbounds ptr, ptr %355, i64 %indvars.iv561
  %357 = load ptr, ptr %356, align 8, !tbaa !132
  %indvars.iv.next559 = add nuw nsw i64 %indvars.iv558, 1
  %358 = getelementptr inbounds %struct.cellb, ptr %357, i64 %indvars.iv.next559, i32 2
  %359 = load double, ptr %358, align 8, !tbaa !139
  %360 = fadd double %353, %359
  %361 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %362 = load ptr, ptr %361, align 8, !tbaa !132
  %363 = getelementptr inbounds ptr, ptr %362, i64 %235
  %364 = load ptr, ptr %363, align 8, !tbaa !132
  %365 = getelementptr inbounds %struct.cellb, ptr %364, i64 %indvars.iv558, i32 2
  %366 = load double, ptr %365, align 8, !tbaa !139
  %367 = fadd double %360, %366
  %368 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
  %369 = load ptr, ptr %368, align 8, !tbaa !132
  %370 = getelementptr inbounds ptr, ptr %369, i64 %235
  %371 = load ptr, ptr %370, align 8, !tbaa !132
  %372 = getelementptr inbounds %struct.cellb, ptr %371, i64 %indvars.iv.next559, i32 2
  %373 = load double, ptr %372, align 8, !tbaa !139
  %374 = fadd double %367, %373
  %375 = fmul double %374, 2.500000e-01
  %376 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %25, i32 noundef 0)
  %377 = load ptr, ptr %376, align 8, !tbaa !132
  %378 = getelementptr inbounds ptr, ptr %377, i64 %indvars.iv561
  %379 = load ptr, ptr %378, align 8, !tbaa !132
  %380 = getelementptr inbounds %struct.cellbe, ptr %379, i64 %indvars.iv558, i32 2
  store double %375, ptr %380, align 8, !tbaa !140
  %381 = load i32, ptr %23, align 8, !tbaa !127
  %382 = add nsw i32 %381, -1
  %383 = sext i32 %382 to i64
  %384 = icmp slt i64 %indvars.iv.next559, %383
  br i1 %384, label %252, label %._crit_edge520.loopexit, !llvm.loop !143

.preheader508:                                    ; preds = %.preheader508.lr.ph, %._crit_edge525
  %385 = phi i32 [ %399, %._crit_edge525 ], [ %239, %.preheader508.lr.ph ]
  %386 = phi i32 [ %400, %._crit_edge525 ], [ %245, %.preheader508.lr.ph ]
  %indvars.iv567 = phi i64 [ %indvars.iv.next568.pre-phi, %._crit_edge525 ], [ 1, %.preheader508.lr.ph ]
  %387 = icmp sgt i32 %386, 2
  br i1 %387, label %.lr.ph524, label %.preheader508.._crit_edge525_crit_edge

.preheader508.._crit_edge525_crit_edge:           ; preds = %.preheader508
  %.pre595 = add nuw nsw i64 %indvars.iv567, 1
  br label %._crit_edge525

.lr.ph524:                                        ; preds = %.preheader508
  %388 = add nsw i64 %indvars.iv567, -1
  %389 = add nuw nsw i64 %indvars.iv567, 1
  br label %404

.preheader507.loopexit:                           ; preds = %._crit_edge525
  %.pre587 = load i32, ptr %0, align 8, !tbaa !5
  br label %.preheader507

.preheader507:                                    ; preds = %.preheader510, %.preheader508.lr.ph, %.preheader507.loopexit, %._crit_edge522
  %390 = phi i32 [ %.pre587, %.preheader507.loopexit ], [ %.pre585, %._crit_edge522 ], [ %238, %.preheader508.lr.ph ], [ %19, %.preheader510 ]
  %391 = icmp sgt i32 %390, 2
  br i1 %391, label %.preheader506.lr.ph, label %._crit_edge545

.preheader506.lr.ph:                              ; preds = %.preheader507.thread, %.preheader507
  %392 = phi i32 [ %2, %.preheader507.thread ], [ %390, %.preheader507 ]
  %393 = phi ptr [ %10, %.preheader507.thread ], [ %21, %.preheader507 ]
  %394 = getelementptr inbounds i8, ptr %0, i64 8
  %395 = getelementptr inbounds i8, ptr %0, i64 400
  %396 = getelementptr inbounds i8, ptr %0, i64 480
  %397 = load i32, ptr %394, align 8, !tbaa !127
  %398 = icmp sgt i32 %397, 2
  br i1 %398, label %.preheader506, label %.preheader505.lr.ph

._crit_edge525.loopexit:                          ; preds = %404
  %.pre586 = load i32, ptr %21, align 4, !tbaa !126
  br label %._crit_edge525

._crit_edge525:                                   ; preds = %.preheader508.._crit_edge525_crit_edge, %._crit_edge525.loopexit
  %indvars.iv.next568.pre-phi = phi i64 [ %.pre595, %.preheader508.._crit_edge525_crit_edge ], [ %389, %._crit_edge525.loopexit ]
  %399 = phi i32 [ %385, %.preheader508.._crit_edge525_crit_edge ], [ %.pre586, %._crit_edge525.loopexit ]
  %400 = phi i32 [ %386, %.preheader508.._crit_edge525_crit_edge ], [ %561, %._crit_edge525.loopexit ]
  %401 = add nsw i32 %399, -1
  %402 = sext i32 %401 to i64
  %403 = icmp slt i64 %indvars.iv.next568.pre-phi, %402
  br i1 %403, label %.preheader508, label %.preheader507.loopexit, !llvm.loop !144

404:                                              ; preds = %.lr.ph524, %404
  %indvars.iv564 = phi i64 [ 1, %.lr.ph524 ], [ %indvars.iv.next565, %404 ]
  %405 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %406 = load ptr, ptr %405, align 8, !tbaa !132
  %407 = getelementptr inbounds ptr, ptr %406, i64 %indvars.iv567
  %408 = load ptr, ptr %407, align 8, !tbaa !132
  %409 = getelementptr inbounds %struct.cellb, ptr %408, i64 %indvars.iv564
  %410 = load double, ptr %409, align 8, !tbaa !133
  %411 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %412 = load ptr, ptr %411, align 8, !tbaa !132
  %413 = getelementptr inbounds ptr, ptr %412, i64 %indvars.iv567
  %414 = load ptr, ptr %413, align 8, !tbaa !132
  %415 = add nsw i64 %indvars.iv564, -1
  %416 = getelementptr inbounds %struct.cellb, ptr %414, i64 %415
  %417 = load double, ptr %416, align 8, !tbaa !133
  %418 = fadd double %410, %417
  %419 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %420 = load ptr, ptr %419, align 8, !tbaa !132
  %421 = getelementptr inbounds ptr, ptr %420, i64 %388
  %422 = load ptr, ptr %421, align 8, !tbaa !132
  %423 = getelementptr inbounds %struct.cellb, ptr %422, i64 %indvars.iv564
  %424 = load double, ptr %423, align 8, !tbaa !133
  %425 = fadd double %418, %424
  %426 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %427 = load ptr, ptr %426, align 8, !tbaa !132
  %428 = getelementptr inbounds ptr, ptr %427, i64 %388
  %429 = load ptr, ptr %428, align 8, !tbaa !132
  %430 = getelementptr inbounds %struct.cellb, ptr %429, i64 %415
  %431 = load double, ptr %430, align 8, !tbaa !133
  %432 = fadd double %425, %431
  %433 = fmul double %432, 2.500000e-01
  %434 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %243, i32 noundef %240)
  %435 = load ptr, ptr %434, align 8, !tbaa !132
  %436 = getelementptr inbounds ptr, ptr %435, i64 %indvars.iv567
  %437 = load ptr, ptr %436, align 8, !tbaa !132
  %438 = getelementptr inbounds %struct.cellbe, ptr %437, i64 %indvars.iv564
  store double %433, ptr %438, align 8, !tbaa !135
  %439 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %440 = load ptr, ptr %439, align 8, !tbaa !132
  %441 = getelementptr inbounds ptr, ptr %440, i64 %indvars.iv567
  %442 = load ptr, ptr %441, align 8, !tbaa !132
  %443 = getelementptr inbounds %struct.cellb, ptr %442, i64 %indvars.iv564, i32 1
  %444 = load double, ptr %443, align 8, !tbaa !137
  %445 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %446 = load ptr, ptr %445, align 8, !tbaa !132
  %447 = getelementptr inbounds ptr, ptr %446, i64 %indvars.iv567
  %448 = load ptr, ptr %447, align 8, !tbaa !132
  %449 = getelementptr inbounds %struct.cellb, ptr %448, i64 %indvars.iv564, i32 1
  %450 = load double, ptr %449, align 8, !tbaa !137
  %451 = fadd double %444, %450
  %452 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %453 = load ptr, ptr %452, align 8, !tbaa !132
  %454 = getelementptr inbounds ptr, ptr %453, i64 %indvars.iv567
  %455 = load ptr, ptr %454, align 8, !tbaa !132
  %456 = getelementptr inbounds %struct.cellb, ptr %455, i64 %415, i32 1
  %457 = load double, ptr %456, align 8, !tbaa !137
  %458 = fadd double %451, %457
  %459 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %460 = load ptr, ptr %459, align 8, !tbaa !132
  %461 = getelementptr inbounds ptr, ptr %460, i64 %indvars.iv567
  %462 = load ptr, ptr %461, align 8, !tbaa !132
  %463 = getelementptr inbounds %struct.cellb, ptr %462, i64 %415, i32 1
  %464 = load double, ptr %463, align 8, !tbaa !137
  %465 = fadd double %458, %464
  %466 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %467 = load ptr, ptr %466, align 8, !tbaa !132
  %468 = getelementptr inbounds ptr, ptr %467, i64 %389
  %469 = load ptr, ptr %468, align 8, !tbaa !132
  %470 = getelementptr inbounds %struct.cellb, ptr %469, i64 %indvars.iv564, i32 1
  %471 = load double, ptr %470, align 8, !tbaa !137
  %472 = fadd double %465, %471
  %473 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %474 = load ptr, ptr %473, align 8, !tbaa !132
  %475 = getelementptr inbounds ptr, ptr %474, i64 %389
  %476 = load ptr, ptr %475, align 8, !tbaa !132
  %477 = getelementptr inbounds %struct.cellb, ptr %476, i64 %indvars.iv564, i32 1
  %478 = load double, ptr %477, align 8, !tbaa !137
  %479 = fadd double %472, %478
  %480 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %481 = load ptr, ptr %480, align 8, !tbaa !132
  %482 = getelementptr inbounds ptr, ptr %481, i64 %389
  %483 = load ptr, ptr %482, align 8, !tbaa !132
  %484 = getelementptr inbounds %struct.cellb, ptr %483, i64 %415, i32 1
  %485 = load double, ptr %484, align 8, !tbaa !137
  %486 = fadd double %479, %485
  %487 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %488 = load ptr, ptr %487, align 8, !tbaa !132
  %489 = getelementptr inbounds ptr, ptr %488, i64 %389
  %490 = load ptr, ptr %489, align 8, !tbaa !132
  %491 = getelementptr inbounds %struct.cellb, ptr %490, i64 %415, i32 1
  %492 = load double, ptr %491, align 8, !tbaa !137
  %493 = fadd double %486, %492
  %494 = fmul double %493, 1.250000e-01
  %495 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %243, i32 noundef %240)
  %496 = load ptr, ptr %495, align 8, !tbaa !132
  %497 = getelementptr inbounds ptr, ptr %496, i64 %indvars.iv567
  %498 = load ptr, ptr %497, align 8, !tbaa !132
  %499 = getelementptr inbounds %struct.cellbe, ptr %498, i64 %indvars.iv564, i32 1
  store double %494, ptr %499, align 8, !tbaa !138
  %500 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %501 = load ptr, ptr %500, align 8, !tbaa !132
  %502 = getelementptr inbounds ptr, ptr %501, i64 %indvars.iv567
  %503 = load ptr, ptr %502, align 8, !tbaa !132
  %504 = getelementptr inbounds %struct.cellb, ptr %503, i64 %indvars.iv564, i32 2
  %505 = load double, ptr %504, align 8, !tbaa !139
  %506 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %507 = load ptr, ptr %506, align 8, !tbaa !132
  %508 = getelementptr inbounds ptr, ptr %507, i64 %indvars.iv567
  %509 = load ptr, ptr %508, align 8, !tbaa !132
  %510 = getelementptr inbounds %struct.cellb, ptr %509, i64 %indvars.iv564, i32 2
  %511 = load double, ptr %510, align 8, !tbaa !139
  %512 = fadd double %505, %511
  %513 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %514 = load ptr, ptr %513, align 8, !tbaa !132
  %515 = getelementptr inbounds ptr, ptr %514, i64 %indvars.iv567
  %516 = load ptr, ptr %515, align 8, !tbaa !132
  %indvars.iv.next565 = add nuw nsw i64 %indvars.iv564, 1
  %517 = getelementptr inbounds %struct.cellb, ptr %516, i64 %indvars.iv.next565, i32 2
  %518 = load double, ptr %517, align 8, !tbaa !139
  %519 = fadd double %512, %518
  %520 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %521 = load ptr, ptr %520, align 8, !tbaa !132
  %522 = getelementptr inbounds ptr, ptr %521, i64 %indvars.iv567
  %523 = load ptr, ptr %522, align 8, !tbaa !132
  %524 = getelementptr inbounds %struct.cellb, ptr %523, i64 %indvars.iv.next565, i32 2
  %525 = load double, ptr %524, align 8, !tbaa !139
  %526 = fadd double %519, %525
  %527 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %528 = load ptr, ptr %527, align 8, !tbaa !132
  %529 = getelementptr inbounds ptr, ptr %528, i64 %388
  %530 = load ptr, ptr %529, align 8, !tbaa !132
  %531 = getelementptr inbounds %struct.cellb, ptr %530, i64 %indvars.iv564, i32 2
  %532 = load double, ptr %531, align 8, !tbaa !139
  %533 = fadd double %526, %532
  %534 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %535 = load ptr, ptr %534, align 8, !tbaa !132
  %536 = getelementptr inbounds ptr, ptr %535, i64 %388
  %537 = load ptr, ptr %536, align 8, !tbaa !132
  %538 = getelementptr inbounds %struct.cellb, ptr %537, i64 %indvars.iv564, i32 2
  %539 = load double, ptr %538, align 8, !tbaa !139
  %540 = fadd double %533, %539
  %541 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %240)
  %542 = load ptr, ptr %541, align 8, !tbaa !132
  %543 = getelementptr inbounds ptr, ptr %542, i64 %388
  %544 = load ptr, ptr %543, align 8, !tbaa !132
  %545 = getelementptr inbounds %struct.cellb, ptr %544, i64 %indvars.iv.next565, i32 2
  %546 = load double, ptr %545, align 8, !tbaa !139
  %547 = fadd double %540, %546
  %548 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef %244)
  %549 = load ptr, ptr %548, align 8, !tbaa !132
  %550 = getelementptr inbounds ptr, ptr %549, i64 %388
  %551 = load ptr, ptr %550, align 8, !tbaa !132
  %552 = getelementptr inbounds %struct.cellb, ptr %551, i64 %indvars.iv.next565, i32 2
  %553 = load double, ptr %552, align 8, !tbaa !139
  %554 = fadd double %547, %553
  %555 = fmul double %554, 1.250000e-01
  %556 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %243, i32 noundef %240)
  %557 = load ptr, ptr %556, align 8, !tbaa !132
  %558 = getelementptr inbounds ptr, ptr %557, i64 %indvars.iv567
  %559 = load ptr, ptr %558, align 8, !tbaa !132
  %560 = getelementptr inbounds %struct.cellbe, ptr %559, i64 %indvars.iv564, i32 2
  store double %555, ptr %560, align 8, !tbaa !140
  %561 = load i32, ptr %241, align 8, !tbaa !127
  %562 = add nsw i32 %561, -1
  %563 = sext i32 %562 to i64
  %564 = icmp slt i64 %indvars.iv.next565, %563
  br i1 %564, label %404, label %._crit_edge525.loopexit, !llvm.loop !145

.preheader506:                                    ; preds = %.preheader506.lr.ph, %._crit_edge529
  %565 = phi i32 [ %582, %._crit_edge529 ], [ %392, %.preheader506.lr.ph ]
  %566 = phi i32 [ %583, %._crit_edge529 ], [ %397, %.preheader506.lr.ph ]
  %.0495530 = phi i32 [ %568, %._crit_edge529 ], [ 1, %.preheader506.lr.ph ]
  %567 = icmp sgt i32 %566, 2
  %568 = add nuw nsw i32 %.0495530, 1
  br i1 %567, label %.lr.ph528, label %._crit_edge529

.lr.ph528:                                        ; preds = %.preheader506
  %569 = add nsw i32 %.0495530, -1
  br label %586

._crit_edge531:                                   ; preds = %._crit_edge529
  %570 = icmp sgt i32 %582, 2
  br i1 %570, label %.preheader505.lr.ph, label %._crit_edge545

.preheader505.lr.ph:                              ; preds = %.preheader506.lr.ph, %._crit_edge531
  %571 = phi i32 [ %582, %._crit_edge531 ], [ %392, %.preheader506.lr.ph ]
  %572 = load i32, ptr %393, align 4, !tbaa !126
  %573 = add nsw i32 %572, -1
  %574 = getelementptr inbounds i8, ptr %0, i64 8
  %575 = getelementptr inbounds i8, ptr %0, i64 400
  %576 = sext i32 %573 to i64
  %577 = add nsw i32 %572, -2
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds i8, ptr %0, i64 480
  %580 = load i32, ptr %574, align 8, !tbaa !127
  %581 = icmp sgt i32 %580, 2
  br i1 %581, label %.preheader505, label %.preheader503.lr.ph

._crit_edge529.loopexit:                          ; preds = %586
  %.pre588 = load i32, ptr %0, align 8, !tbaa !5
  br label %._crit_edge529

._crit_edge529:                                   ; preds = %.preheader506, %._crit_edge529.loopexit
  %582 = phi i32 [ %.pre588, %._crit_edge529.loopexit ], [ %565, %.preheader506 ]
  %583 = phi i32 [ %700, %._crit_edge529.loopexit ], [ %566, %.preheader506 ]
  %584 = add nsw i32 %582, -1
  %585 = icmp slt i32 %568, %584
  br i1 %585, label %.preheader506, label %._crit_edge531, !llvm.loop !146

586:                                              ; preds = %.lr.ph528, %586
  %indvars.iv570 = phi i64 [ 1, %.lr.ph528 ], [ %indvars.iv.next571, %586 ]
  %587 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %588 = load ptr, ptr %587, align 8, !tbaa !132
  %589 = load ptr, ptr %588, align 8, !tbaa !132
  %590 = getelementptr inbounds %struct.cellb, ptr %589, i64 %indvars.iv570
  %591 = load double, ptr %590, align 8, !tbaa !133
  %592 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %568)
  %593 = load ptr, ptr %592, align 8, !tbaa !132
  %594 = load ptr, ptr %593, align 8, !tbaa !132
  %595 = getelementptr inbounds %struct.cellb, ptr %594, i64 %indvars.iv570
  %596 = load double, ptr %595, align 8, !tbaa !133
  %597 = fadd double %591, %596
  %598 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %599 = load ptr, ptr %598, align 8, !tbaa !132
  %600 = load ptr, ptr %599, align 8, !tbaa !132
  %601 = add nsw i64 %indvars.iv570, -1
  %602 = getelementptr inbounds %struct.cellb, ptr %600, i64 %601
  %603 = load double, ptr %602, align 8, !tbaa !133
  %604 = fadd double %597, %603
  %605 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %568)
  %606 = load ptr, ptr %605, align 8, !tbaa !132
  %607 = load ptr, ptr %606, align 8, !tbaa !132
  %608 = getelementptr inbounds %struct.cellb, ptr %607, i64 %601
  %609 = load double, ptr %608, align 8, !tbaa !133
  %610 = fadd double %604, %609
  %611 = fmul double %610, 2.500000e-01
  %612 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %396, i32 noundef %.0495530)
  %613 = load ptr, ptr %612, align 8, !tbaa !132
  %614 = load ptr, ptr %613, align 8, !tbaa !132
  %615 = getelementptr inbounds %struct.cellbe, ptr %614, i64 %indvars.iv570
  store double %611, ptr %615, align 8, !tbaa !135
  %616 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %617 = load ptr, ptr %616, align 8, !tbaa !132
  %618 = load ptr, ptr %617, align 8, !tbaa !132
  %619 = getelementptr inbounds %struct.cellb, ptr %618, i64 %indvars.iv570, i32 1
  %620 = load double, ptr %619, align 8, !tbaa !137
  %621 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %569)
  %622 = load ptr, ptr %621, align 8, !tbaa !132
  %623 = load ptr, ptr %622, align 8, !tbaa !132
  %624 = getelementptr inbounds %struct.cellb, ptr %623, i64 %indvars.iv570, i32 1
  %625 = load double, ptr %624, align 8, !tbaa !137
  %626 = fadd double %620, %625
  %627 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %628 = load ptr, ptr %627, align 8, !tbaa !132
  %629 = load ptr, ptr %628, align 8, !tbaa !132
  %630 = getelementptr inbounds %struct.cellb, ptr %629, i64 %601, i32 1
  %631 = load double, ptr %630, align 8, !tbaa !137
  %632 = fadd double %626, %631
  %633 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %569)
  %634 = load ptr, ptr %633, align 8, !tbaa !132
  %635 = load ptr, ptr %634, align 8, !tbaa !132
  %636 = getelementptr inbounds %struct.cellb, ptr %635, i64 %601, i32 1
  %637 = load double, ptr %636, align 8, !tbaa !137
  %638 = fadd double %632, %637
  %639 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %640 = load ptr, ptr %639, align 8, !tbaa !132
  %641 = getelementptr inbounds i8, ptr %640, i64 8
  %642 = load ptr, ptr %641, align 8, !tbaa !132
  %643 = getelementptr inbounds %struct.cellb, ptr %642, i64 %indvars.iv570, i32 1
  %644 = load double, ptr %643, align 8, !tbaa !137
  %645 = fadd double %638, %644
  %646 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %569)
  %647 = load ptr, ptr %646, align 8, !tbaa !132
  %648 = getelementptr inbounds i8, ptr %647, i64 8
  %649 = load ptr, ptr %648, align 8, !tbaa !132
  %650 = getelementptr inbounds %struct.cellb, ptr %649, i64 %indvars.iv570, i32 1
  %651 = load double, ptr %650, align 8, !tbaa !137
  %652 = fadd double %645, %651
  %653 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %654 = load ptr, ptr %653, align 8, !tbaa !132
  %655 = getelementptr inbounds i8, ptr %654, i64 8
  %656 = load ptr, ptr %655, align 8, !tbaa !132
  %657 = getelementptr inbounds %struct.cellb, ptr %656, i64 %601, i32 1
  %658 = load double, ptr %657, align 8, !tbaa !137
  %659 = fadd double %652, %658
  %660 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %569)
  %661 = load ptr, ptr %660, align 8, !tbaa !132
  %662 = getelementptr inbounds i8, ptr %661, i64 8
  %663 = load ptr, ptr %662, align 8, !tbaa !132
  %664 = getelementptr inbounds %struct.cellb, ptr %663, i64 %601, i32 1
  %665 = load double, ptr %664, align 8, !tbaa !137
  %666 = fadd double %659, %665
  %667 = fmul double %666, 1.250000e-01
  %668 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %396, i32 noundef %.0495530)
  %669 = load ptr, ptr %668, align 8, !tbaa !132
  %670 = load ptr, ptr %669, align 8, !tbaa !132
  %671 = getelementptr inbounds %struct.cellbe, ptr %670, i64 %indvars.iv570, i32 1
  store double %667, ptr %671, align 8, !tbaa !138
  %672 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %673 = load ptr, ptr %672, align 8, !tbaa !132
  %674 = load ptr, ptr %673, align 8, !tbaa !132
  %675 = getelementptr inbounds %struct.cellb, ptr %674, i64 %indvars.iv570, i32 2
  %676 = load double, ptr %675, align 8, !tbaa !139
  %677 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %569)
  %678 = load ptr, ptr %677, align 8, !tbaa !132
  %679 = load ptr, ptr %678, align 8, !tbaa !132
  %680 = getelementptr inbounds %struct.cellb, ptr %679, i64 %indvars.iv570, i32 2
  %681 = load double, ptr %680, align 8, !tbaa !139
  %682 = fadd double %676, %681
  %683 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %.0495530)
  %684 = load ptr, ptr %683, align 8, !tbaa !132
  %685 = load ptr, ptr %684, align 8, !tbaa !132
  %indvars.iv.next571 = add nuw nsw i64 %indvars.iv570, 1
  %686 = getelementptr inbounds %struct.cellb, ptr %685, i64 %indvars.iv.next571, i32 2
  %687 = load double, ptr %686, align 8, !tbaa !139
  %688 = fadd double %682, %687
  %689 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %395, i32 noundef %569)
  %690 = load ptr, ptr %689, align 8, !tbaa !132
  %691 = load ptr, ptr %690, align 8, !tbaa !132
  %692 = getelementptr inbounds %struct.cellb, ptr %691, i64 %indvars.iv.next571, i32 2
  %693 = load double, ptr %692, align 8, !tbaa !139
  %694 = fadd double %688, %693
  %695 = fmul double %694, 2.500000e-01
  %696 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %396, i32 noundef %.0495530)
  %697 = load ptr, ptr %696, align 8, !tbaa !132
  %698 = load ptr, ptr %697, align 8, !tbaa !132
  %699 = getelementptr inbounds %struct.cellbe, ptr %698, i64 %indvars.iv570, i32 2
  store double %695, ptr %699, align 8, !tbaa !140
  %700 = load i32, ptr %394, align 8, !tbaa !127
  %701 = add nsw i32 %700, -1
  %702 = sext i32 %701 to i64
  %703 = icmp slt i64 %indvars.iv.next571, %702
  br i1 %703, label %586, label %._crit_edge529.loopexit, !llvm.loop !147

.preheader505:                                    ; preds = %.preheader505.lr.ph, %._crit_edge534
  %704 = phi i32 [ %715, %._crit_edge534 ], [ %571, %.preheader505.lr.ph ]
  %705 = phi i32 [ %716, %._crit_edge534 ], [ %580, %.preheader505.lr.ph ]
  %.0493535 = phi i32 [ %707, %._crit_edge534 ], [ 1, %.preheader505.lr.ph ]
  %706 = icmp sgt i32 %705, 2
  %707 = add nuw nsw i32 %.0493535, 1
  br i1 %706, label %.lr.ph533, label %._crit_edge534

.lr.ph533:                                        ; preds = %.preheader505
  %708 = add nsw i32 %.0493535, -1
  br label %719

.preheader504:                                    ; preds = %._crit_edge534
  %709 = icmp sgt i32 %715, 2
  br i1 %709, label %.preheader503.lr.ph, label %._crit_edge545

.preheader503.lr.ph:                              ; preds = %.preheader505.lr.ph, %.preheader504
  %710 = phi i32 [ %715, %.preheader504 ], [ %571, %.preheader505.lr.ph ]
  %711 = getelementptr inbounds i8, ptr %0, i64 400
  %712 = getelementptr inbounds i8, ptr %0, i64 480
  %713 = load i32, ptr %393, align 4, !tbaa !126
  %714 = icmp sgt i32 %713, 2
  br i1 %714, label %.preheader503, label %.preheader.lr.ph

._crit_edge534.loopexit:                          ; preds = %719
  %.pre589 = load i32, ptr %0, align 8, !tbaa !5
  br label %._crit_edge534

._crit_edge534:                                   ; preds = %.preheader505, %._crit_edge534.loopexit
  %715 = phi i32 [ %.pre589, %._crit_edge534.loopexit ], [ %704, %.preheader505 ]
  %716 = phi i32 [ %876, %._crit_edge534.loopexit ], [ %705, %.preheader505 ]
  %717 = add nsw i32 %715, -1
  %718 = icmp slt i32 %707, %717
  br i1 %718, label %.preheader505, label %.preheader504, !llvm.loop !148

719:                                              ; preds = %.lr.ph533, %719
  %indvars.iv573 = phi i64 [ 1, %.lr.ph533 ], [ %indvars.iv.next574, %719 ]
  %720 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %721 = load ptr, ptr %720, align 8, !tbaa !132
  %722 = getelementptr inbounds ptr, ptr %721, i64 %576
  %723 = load ptr, ptr %722, align 8, !tbaa !132
  %724 = getelementptr inbounds %struct.cellb, ptr %723, i64 %indvars.iv573
  %725 = load double, ptr %724, align 8, !tbaa !133
  %726 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %707)
  %727 = load ptr, ptr %726, align 8, !tbaa !132
  %728 = getelementptr inbounds ptr, ptr %727, i64 %576
  %729 = load ptr, ptr %728, align 8, !tbaa !132
  %730 = getelementptr inbounds %struct.cellb, ptr %729, i64 %indvars.iv573
  %731 = load double, ptr %730, align 8, !tbaa !133
  %732 = fadd double %725, %731
  %733 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %734 = load ptr, ptr %733, align 8, !tbaa !132
  %735 = getelementptr inbounds ptr, ptr %734, i64 %576
  %736 = load ptr, ptr %735, align 8, !tbaa !132
  %737 = add nsw i64 %indvars.iv573, -1
  %738 = getelementptr inbounds %struct.cellb, ptr %736, i64 %737
  %739 = load double, ptr %738, align 8, !tbaa !133
  %740 = fadd double %732, %739
  %741 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %707)
  %742 = load ptr, ptr %741, align 8, !tbaa !132
  %743 = getelementptr inbounds ptr, ptr %742, i64 %576
  %744 = load ptr, ptr %743, align 8, !tbaa !132
  %745 = getelementptr inbounds %struct.cellb, ptr %744, i64 %737
  %746 = load double, ptr %745, align 8, !tbaa !133
  %747 = fadd double %740, %746
  %748 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %749 = load ptr, ptr %748, align 8, !tbaa !132
  %750 = getelementptr inbounds ptr, ptr %749, i64 %578
  %751 = load ptr, ptr %750, align 8, !tbaa !132
  %752 = getelementptr inbounds %struct.cellb, ptr %751, i64 %indvars.iv573
  %753 = load double, ptr %752, align 8, !tbaa !133
  %754 = fadd double %747, %753
  %755 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %707)
  %756 = load ptr, ptr %755, align 8, !tbaa !132
  %757 = getelementptr inbounds ptr, ptr %756, i64 %578
  %758 = load ptr, ptr %757, align 8, !tbaa !132
  %759 = getelementptr inbounds %struct.cellb, ptr %758, i64 %indvars.iv573
  %760 = load double, ptr %759, align 8, !tbaa !133
  %761 = fadd double %754, %760
  %762 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %763 = load ptr, ptr %762, align 8, !tbaa !132
  %764 = getelementptr inbounds ptr, ptr %763, i64 %578
  %765 = load ptr, ptr %764, align 8, !tbaa !132
  %766 = getelementptr inbounds %struct.cellb, ptr %765, i64 %737
  %767 = load double, ptr %766, align 8, !tbaa !133
  %768 = fadd double %761, %767
  %769 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %707)
  %770 = load ptr, ptr %769, align 8, !tbaa !132
  %771 = getelementptr inbounds ptr, ptr %770, i64 %578
  %772 = load ptr, ptr %771, align 8, !tbaa !132
  %773 = getelementptr inbounds %struct.cellb, ptr %772, i64 %737
  %774 = load double, ptr %773, align 8, !tbaa !133
  %775 = fadd double %768, %774
  %776 = fmul double %775, 1.250000e-01
  %777 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %579, i32 noundef %.0493535)
  %778 = load ptr, ptr %777, align 8, !tbaa !132
  %779 = getelementptr inbounds ptr, ptr %778, i64 %576
  %780 = load ptr, ptr %779, align 8, !tbaa !132
  %781 = getelementptr inbounds %struct.cellbe, ptr %780, i64 %indvars.iv573
  store double %776, ptr %781, align 8, !tbaa !135
  %782 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %783 = load ptr, ptr %782, align 8, !tbaa !132
  %784 = getelementptr inbounds ptr, ptr %783, i64 %576
  %785 = load ptr, ptr %784, align 8, !tbaa !132
  %786 = getelementptr inbounds %struct.cellb, ptr %785, i64 %indvars.iv573, i32 1
  %787 = load double, ptr %786, align 8, !tbaa !137
  %788 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %708)
  %789 = load ptr, ptr %788, align 8, !tbaa !132
  %790 = getelementptr inbounds ptr, ptr %789, i64 %576
  %791 = load ptr, ptr %790, align 8, !tbaa !132
  %792 = getelementptr inbounds %struct.cellb, ptr %791, i64 %indvars.iv573, i32 1
  %793 = load double, ptr %792, align 8, !tbaa !137
  %794 = fadd double %787, %793
  %795 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %796 = load ptr, ptr %795, align 8, !tbaa !132
  %797 = getelementptr inbounds ptr, ptr %796, i64 %576
  %798 = load ptr, ptr %797, align 8, !tbaa !132
  %799 = getelementptr inbounds %struct.cellb, ptr %798, i64 %737, i32 1
  %800 = load double, ptr %799, align 8, !tbaa !137
  %801 = fadd double %794, %800
  %802 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %708)
  %803 = load ptr, ptr %802, align 8, !tbaa !132
  %804 = getelementptr inbounds ptr, ptr %803, i64 %576
  %805 = load ptr, ptr %804, align 8, !tbaa !132
  %806 = getelementptr inbounds %struct.cellb, ptr %805, i64 %737, i32 1
  %807 = load double, ptr %806, align 8, !tbaa !137
  %808 = fadd double %801, %807
  %809 = fmul double %808, 2.500000e-01
  %810 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %579, i32 noundef %.0493535)
  %811 = load ptr, ptr %810, align 8, !tbaa !132
  %812 = getelementptr inbounds ptr, ptr %811, i64 %576
  %813 = load ptr, ptr %812, align 8, !tbaa !132
  %814 = getelementptr inbounds %struct.cellbe, ptr %813, i64 %indvars.iv573, i32 1
  store double %809, ptr %814, align 8, !tbaa !138
  %815 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %816 = load ptr, ptr %815, align 8, !tbaa !132
  %817 = getelementptr inbounds ptr, ptr %816, i64 %576
  %818 = load ptr, ptr %817, align 8, !tbaa !132
  %819 = getelementptr inbounds %struct.cellb, ptr %818, i64 %indvars.iv573, i32 2
  %820 = load double, ptr %819, align 8, !tbaa !139
  %821 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %708)
  %822 = load ptr, ptr %821, align 8, !tbaa !132
  %823 = getelementptr inbounds ptr, ptr %822, i64 %576
  %824 = load ptr, ptr %823, align 8, !tbaa !132
  %825 = getelementptr inbounds %struct.cellb, ptr %824, i64 %indvars.iv573, i32 2
  %826 = load double, ptr %825, align 8, !tbaa !139
  %827 = fadd double %820, %826
  %828 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %829 = load ptr, ptr %828, align 8, !tbaa !132
  %830 = getelementptr inbounds ptr, ptr %829, i64 %576
  %831 = load ptr, ptr %830, align 8, !tbaa !132
  %indvars.iv.next574 = add nuw nsw i64 %indvars.iv573, 1
  %832 = getelementptr inbounds %struct.cellb, ptr %831, i64 %indvars.iv.next574, i32 2
  %833 = load double, ptr %832, align 8, !tbaa !139
  %834 = fadd double %827, %833
  %835 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %708)
  %836 = load ptr, ptr %835, align 8, !tbaa !132
  %837 = getelementptr inbounds ptr, ptr %836, i64 %576
  %838 = load ptr, ptr %837, align 8, !tbaa !132
  %839 = getelementptr inbounds %struct.cellb, ptr %838, i64 %indvars.iv.next574, i32 2
  %840 = load double, ptr %839, align 8, !tbaa !139
  %841 = fadd double %834, %840
  %842 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %843 = load ptr, ptr %842, align 8, !tbaa !132
  %844 = getelementptr inbounds ptr, ptr %843, i64 %578
  %845 = load ptr, ptr %844, align 8, !tbaa !132
  %846 = getelementptr inbounds %struct.cellb, ptr %845, i64 %indvars.iv573, i32 2
  %847 = load double, ptr %846, align 8, !tbaa !139
  %848 = fadd double %841, %847
  %849 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %708)
  %850 = load ptr, ptr %849, align 8, !tbaa !132
  %851 = getelementptr inbounds ptr, ptr %850, i64 %578
  %852 = load ptr, ptr %851, align 8, !tbaa !132
  %853 = getelementptr inbounds %struct.cellb, ptr %852, i64 %indvars.iv573, i32 2
  %854 = load double, ptr %853, align 8, !tbaa !139
  %855 = fadd double %848, %854
  %856 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %.0493535)
  %857 = load ptr, ptr %856, align 8, !tbaa !132
  %858 = getelementptr inbounds ptr, ptr %857, i64 %578
  %859 = load ptr, ptr %858, align 8, !tbaa !132
  %860 = getelementptr inbounds %struct.cellb, ptr %859, i64 %indvars.iv.next574, i32 2
  %861 = load double, ptr %860, align 8, !tbaa !139
  %862 = fadd double %855, %861
  %863 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %575, i32 noundef %708)
  %864 = load ptr, ptr %863, align 8, !tbaa !132
  %865 = getelementptr inbounds ptr, ptr %864, i64 %578
  %866 = load ptr, ptr %865, align 8, !tbaa !132
  %867 = getelementptr inbounds %struct.cellb, ptr %866, i64 %indvars.iv.next574, i32 2
  %868 = load double, ptr %867, align 8, !tbaa !139
  %869 = fadd double %862, %868
  %870 = fmul double %869, 1.250000e-01
  %871 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %579, i32 noundef %.0493535)
  %872 = load ptr, ptr %871, align 8, !tbaa !132
  %873 = getelementptr inbounds ptr, ptr %872, i64 %576
  %874 = load ptr, ptr %873, align 8, !tbaa !132
  %875 = getelementptr inbounds %struct.cellbe, ptr %874, i64 %indvars.iv573, i32 2
  store double %870, ptr %875, align 8, !tbaa !140
  %876 = load i32, ptr %574, align 8, !tbaa !127
  %877 = add nsw i32 %876, -1
  %878 = sext i32 %877 to i64
  %879 = icmp slt i64 %indvars.iv.next574, %878
  br i1 %879, label %719, label %._crit_edge534.loopexit, !llvm.loop !149

.preheader503:                                    ; preds = %.preheader503.lr.ph, %._crit_edge538
  %880 = phi i32 [ %897, %._crit_edge538 ], [ %710, %.preheader503.lr.ph ]
  %881 = phi i32 [ %898, %._crit_edge538 ], [ %713, %.preheader503.lr.ph ]
  %.0491539 = phi i32 [ %883, %._crit_edge538 ], [ 1, %.preheader503.lr.ph ]
  %882 = icmp sgt i32 %881, 2
  %883 = add nuw nsw i32 %.0491539, 1
  br i1 %882, label %.lr.ph537, label %._crit_edge538

.lr.ph537:                                        ; preds = %.preheader503
  %884 = add nsw i32 %.0491539, -1
  br label %901

._crit_edge540:                                   ; preds = %._crit_edge538
  %885 = icmp sgt i32 %897, 2
  br i1 %885, label %.preheader.lr.ph, label %._crit_edge545

.preheader.lr.ph:                                 ; preds = %.preheader503.lr.ph, %._crit_edge540
  %886 = phi i32 [ %897, %._crit_edge540 ], [ %710, %.preheader503.lr.ph ]
  %887 = getelementptr inbounds i8, ptr %0, i64 8
  %888 = load i32, ptr %887, align 8, !tbaa !127
  %889 = add nsw i32 %888, -1
  %890 = getelementptr inbounds i8, ptr %0, i64 400
  %891 = sext i32 %889 to i64
  %892 = add nsw i32 %888, -2
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds i8, ptr %0, i64 480
  %895 = load i32, ptr %393, align 4, !tbaa !126
  %896 = icmp sgt i32 %895, 2
  br i1 %896, label %.preheader, label %._crit_edge545

._crit_edge538.loopexit:                          ; preds = %901
  %.pre590 = load i32, ptr %0, align 8, !tbaa !5
  br label %._crit_edge538

._crit_edge538:                                   ; preds = %.preheader503, %._crit_edge538.loopexit
  %897 = phi i32 [ %.pre590, %._crit_edge538.loopexit ], [ %880, %.preheader503 ]
  %898 = phi i32 [ %1025, %._crit_edge538.loopexit ], [ %881, %.preheader503 ]
  %899 = add nsw i32 %897, -1
  %900 = icmp slt i32 %883, %899
  br i1 %900, label %.preheader503, label %._crit_edge540, !llvm.loop !150

901:                                              ; preds = %.lr.ph537, %901
  %indvars.iv576 = phi i64 [ 1, %.lr.ph537 ], [ %indvars.iv.next577, %901 ]
  %902 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %903 = load ptr, ptr %902, align 8, !tbaa !132
  %904 = getelementptr inbounds ptr, ptr %903, i64 %indvars.iv576
  %905 = load ptr, ptr %904, align 8, !tbaa !132
  %906 = load double, ptr %905, align 8, !tbaa !133
  %907 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %883)
  %908 = load ptr, ptr %907, align 8, !tbaa !132
  %909 = getelementptr inbounds ptr, ptr %908, i64 %indvars.iv576
  %910 = load ptr, ptr %909, align 8, !tbaa !132
  %911 = load double, ptr %910, align 8, !tbaa !133
  %912 = fadd double %906, %911
  %913 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %914 = load ptr, ptr %913, align 8, !tbaa !132
  %915 = add nsw i64 %indvars.iv576, -1
  %916 = getelementptr inbounds ptr, ptr %914, i64 %915
  %917 = load ptr, ptr %916, align 8, !tbaa !132
  %918 = load double, ptr %917, align 8, !tbaa !133
  %919 = fadd double %912, %918
  %920 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %883)
  %921 = load ptr, ptr %920, align 8, !tbaa !132
  %922 = getelementptr inbounds ptr, ptr %921, i64 %915
  %923 = load ptr, ptr %922, align 8, !tbaa !132
  %924 = load double, ptr %923, align 8, !tbaa !133
  %925 = fadd double %919, %924
  %926 = fmul double %925, 2.500000e-01
  %927 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %712, i32 noundef %.0491539)
  %928 = load ptr, ptr %927, align 8, !tbaa !132
  %929 = getelementptr inbounds ptr, ptr %928, i64 %indvars.iv576
  %930 = load ptr, ptr %929, align 8, !tbaa !132
  store double %926, ptr %930, align 8, !tbaa !135
  %931 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %932 = load ptr, ptr %931, align 8, !tbaa !132
  %933 = getelementptr inbounds ptr, ptr %932, i64 %indvars.iv576
  %934 = load ptr, ptr %933, align 8, !tbaa !132
  %935 = getelementptr inbounds i8, ptr %934, i64 8
  %936 = load double, ptr %935, align 8, !tbaa !137
  %937 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %884)
  %938 = load ptr, ptr %937, align 8, !tbaa !132
  %939 = getelementptr inbounds ptr, ptr %938, i64 %indvars.iv576
  %940 = load ptr, ptr %939, align 8, !tbaa !132
  %941 = getelementptr inbounds i8, ptr %940, i64 8
  %942 = load double, ptr %941, align 8, !tbaa !137
  %943 = fadd double %936, %942
  %944 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %945 = load ptr, ptr %944, align 8, !tbaa !132
  %indvars.iv.next577 = add nuw nsw i64 %indvars.iv576, 1
  %946 = getelementptr inbounds ptr, ptr %945, i64 %indvars.iv.next577
  %947 = load ptr, ptr %946, align 8, !tbaa !132
  %948 = getelementptr inbounds i8, ptr %947, i64 8
  %949 = load double, ptr %948, align 8, !tbaa !137
  %950 = fadd double %943, %949
  %951 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %884)
  %952 = load ptr, ptr %951, align 8, !tbaa !132
  %953 = getelementptr inbounds ptr, ptr %952, i64 %indvars.iv.next577
  %954 = load ptr, ptr %953, align 8, !tbaa !132
  %955 = getelementptr inbounds i8, ptr %954, i64 8
  %956 = load double, ptr %955, align 8, !tbaa !137
  %957 = fadd double %950, %956
  %958 = fmul double %957, 2.500000e-01
  %959 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %712, i32 noundef %.0491539)
  %960 = load ptr, ptr %959, align 8, !tbaa !132
  %961 = getelementptr inbounds ptr, ptr %960, i64 %indvars.iv576
  %962 = load ptr, ptr %961, align 8, !tbaa !132
  %963 = getelementptr inbounds i8, ptr %962, i64 8
  store double %958, ptr %963, align 8, !tbaa !138
  %964 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %965 = load ptr, ptr %964, align 8, !tbaa !132
  %966 = getelementptr inbounds ptr, ptr %965, i64 %indvars.iv576
  %967 = load ptr, ptr %966, align 8, !tbaa !132
  %968 = getelementptr inbounds i8, ptr %967, i64 16
  %969 = load double, ptr %968, align 8, !tbaa !139
  %970 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %884)
  %971 = load ptr, ptr %970, align 8, !tbaa !132
  %972 = getelementptr inbounds ptr, ptr %971, i64 %indvars.iv576
  %973 = load ptr, ptr %972, align 8, !tbaa !132
  %974 = getelementptr inbounds i8, ptr %973, i64 16
  %975 = load double, ptr %974, align 8, !tbaa !139
  %976 = fadd double %969, %975
  %977 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %978 = load ptr, ptr %977, align 8, !tbaa !132
  %979 = getelementptr inbounds ptr, ptr %978, i64 %indvars.iv576
  %980 = load ptr, ptr %979, align 8, !tbaa !132
  %981 = getelementptr inbounds i8, ptr %980, i64 40
  %982 = load double, ptr %981, align 8, !tbaa !139
  %983 = fadd double %976, %982
  %984 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %884)
  %985 = load ptr, ptr %984, align 8, !tbaa !132
  %986 = getelementptr inbounds ptr, ptr %985, i64 %indvars.iv576
  %987 = load ptr, ptr %986, align 8, !tbaa !132
  %988 = getelementptr inbounds i8, ptr %987, i64 40
  %989 = load double, ptr %988, align 8, !tbaa !139
  %990 = fadd double %983, %989
  %991 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %992 = load ptr, ptr %991, align 8, !tbaa !132
  %993 = getelementptr inbounds ptr, ptr %992, i64 %915
  %994 = load ptr, ptr %993, align 8, !tbaa !132
  %995 = getelementptr inbounds i8, ptr %994, i64 16
  %996 = load double, ptr %995, align 8, !tbaa !139
  %997 = fadd double %990, %996
  %998 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %884)
  %999 = load ptr, ptr %998, align 8, !tbaa !132
  %1000 = getelementptr inbounds ptr, ptr %999, i64 %915
  %1001 = load ptr, ptr %1000, align 8, !tbaa !132
  %1002 = getelementptr inbounds i8, ptr %1001, i64 16
  %1003 = load double, ptr %1002, align 8, !tbaa !139
  %1004 = fadd double %997, %1003
  %1005 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %.0491539)
  %1006 = load ptr, ptr %1005, align 8, !tbaa !132
  %1007 = getelementptr inbounds ptr, ptr %1006, i64 %915
  %1008 = load ptr, ptr %1007, align 8, !tbaa !132
  %1009 = getelementptr inbounds i8, ptr %1008, i64 40
  %1010 = load double, ptr %1009, align 8, !tbaa !139
  %1011 = fadd double %1004, %1010
  %1012 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %711, i32 noundef %884)
  %1013 = load ptr, ptr %1012, align 8, !tbaa !132
  %1014 = getelementptr inbounds ptr, ptr %1013, i64 %915
  %1015 = load ptr, ptr %1014, align 8, !tbaa !132
  %1016 = getelementptr inbounds i8, ptr %1015, i64 40
  %1017 = load double, ptr %1016, align 8, !tbaa !139
  %1018 = fadd double %1011, %1017
  %1019 = fmul double %1018, 1.250000e-01
  %1020 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %712, i32 noundef %.0491539)
  %1021 = load ptr, ptr %1020, align 8, !tbaa !132
  %1022 = getelementptr inbounds ptr, ptr %1021, i64 %indvars.iv576
  %1023 = load ptr, ptr %1022, align 8, !tbaa !132
  %1024 = getelementptr inbounds i8, ptr %1023, i64 16
  store double %1019, ptr %1024, align 8, !tbaa !140
  %1025 = load i32, ptr %393, align 4, !tbaa !126
  %1026 = add nsw i32 %1025, -1
  %1027 = sext i32 %1026 to i64
  %1028 = icmp slt i64 %indvars.iv.next577, %1027
  br i1 %1028, label %901, label %._crit_edge538.loopexit, !llvm.loop !151

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge543
  %1029 = phi i32 [ %1034, %._crit_edge543 ], [ %886, %.preheader.lr.ph ]
  %1030 = phi i32 [ %1035, %._crit_edge543 ], [ %895, %.preheader.lr.ph ]
  %.0489544 = phi i32 [ %1032, %._crit_edge543 ], [ 1, %.preheader.lr.ph ]
  %1031 = icmp sgt i32 %1030, 2
  %1032 = add nuw nsw i32 %.0489544, 1
  br i1 %1031, label %.lr.ph542, label %._crit_edge543

.lr.ph542:                                        ; preds = %.preheader
  %1033 = add nsw i32 %.0489544, -1
  br label %1038

._crit_edge545:                                   ; preds = %._crit_edge543, %.preheader507, %._crit_edge531, %.preheader504, %.preheader.lr.ph, %._crit_edge540
  ret void

._crit_edge543.loopexit:                          ; preds = %1038
  %.pre591 = load i32, ptr %0, align 8, !tbaa !5
  br label %._crit_edge543

._crit_edge543:                                   ; preds = %.preheader, %._crit_edge543.loopexit
  %1034 = phi i32 [ %.pre591, %._crit_edge543.loopexit ], [ %1029, %.preheader ]
  %1035 = phi i32 [ %1195, %._crit_edge543.loopexit ], [ %1030, %.preheader ]
  %1036 = add nsw i32 %1034, -1
  %1037 = icmp slt i32 %1032, %1036
  br i1 %1037, label %.preheader, label %._crit_edge545, !llvm.loop !152

1038:                                             ; preds = %.lr.ph542, %1038
  %indvars.iv579 = phi i64 [ 1, %.lr.ph542 ], [ %indvars.iv.next580, %1038 ]
  %1039 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1040 = load ptr, ptr %1039, align 8, !tbaa !132
  %1041 = getelementptr inbounds ptr, ptr %1040, i64 %indvars.iv579
  %1042 = load ptr, ptr %1041, align 8, !tbaa !132
  %1043 = getelementptr inbounds %struct.cellb, ptr %1042, i64 %891
  %1044 = load double, ptr %1043, align 8, !tbaa !133
  %1045 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1032)
  %1046 = load ptr, ptr %1045, align 8, !tbaa !132
  %1047 = getelementptr inbounds ptr, ptr %1046, i64 %indvars.iv579
  %1048 = load ptr, ptr %1047, align 8, !tbaa !132
  %1049 = getelementptr inbounds %struct.cellb, ptr %1048, i64 %891
  %1050 = load double, ptr %1049, align 8, !tbaa !133
  %1051 = fadd double %1044, %1050
  %1052 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1053 = load ptr, ptr %1052, align 8, !tbaa !132
  %1054 = getelementptr inbounds ptr, ptr %1053, i64 %indvars.iv579
  %1055 = load ptr, ptr %1054, align 8, !tbaa !132
  %1056 = getelementptr inbounds %struct.cellb, ptr %1055, i64 %893
  %1057 = load double, ptr %1056, align 8, !tbaa !133
  %1058 = fadd double %1051, %1057
  %1059 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1032)
  %1060 = load ptr, ptr %1059, align 8, !tbaa !132
  %1061 = getelementptr inbounds ptr, ptr %1060, i64 %indvars.iv579
  %1062 = load ptr, ptr %1061, align 8, !tbaa !132
  %1063 = getelementptr inbounds %struct.cellb, ptr %1062, i64 %893
  %1064 = load double, ptr %1063, align 8, !tbaa !133
  %1065 = fadd double %1058, %1064
  %1066 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1067 = load ptr, ptr %1066, align 8, !tbaa !132
  %1068 = add nsw i64 %indvars.iv579, -1
  %1069 = getelementptr inbounds ptr, ptr %1067, i64 %1068
  %1070 = load ptr, ptr %1069, align 8, !tbaa !132
  %1071 = getelementptr inbounds %struct.cellb, ptr %1070, i64 %891
  %1072 = load double, ptr %1071, align 8, !tbaa !133
  %1073 = fadd double %1065, %1072
  %1074 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1032)
  %1075 = load ptr, ptr %1074, align 8, !tbaa !132
  %1076 = getelementptr inbounds ptr, ptr %1075, i64 %1068
  %1077 = load ptr, ptr %1076, align 8, !tbaa !132
  %1078 = getelementptr inbounds %struct.cellb, ptr %1077, i64 %891
  %1079 = load double, ptr %1078, align 8, !tbaa !133
  %1080 = fadd double %1073, %1079
  %1081 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1082 = load ptr, ptr %1081, align 8, !tbaa !132
  %1083 = getelementptr inbounds ptr, ptr %1082, i64 %1068
  %1084 = load ptr, ptr %1083, align 8, !tbaa !132
  %1085 = getelementptr inbounds %struct.cellb, ptr %1084, i64 %893
  %1086 = load double, ptr %1085, align 8, !tbaa !133
  %1087 = fadd double %1080, %1086
  %1088 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1032)
  %1089 = load ptr, ptr %1088, align 8, !tbaa !132
  %1090 = getelementptr inbounds ptr, ptr %1089, i64 %1068
  %1091 = load ptr, ptr %1090, align 8, !tbaa !132
  %1092 = getelementptr inbounds %struct.cellb, ptr %1091, i64 %893
  %1093 = load double, ptr %1092, align 8, !tbaa !133
  %1094 = fadd double %1087, %1093
  %1095 = fmul double %1094, 1.250000e-01
  %1096 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %894, i32 noundef %.0489544)
  %1097 = load ptr, ptr %1096, align 8, !tbaa !132
  %1098 = getelementptr inbounds ptr, ptr %1097, i64 %indvars.iv579
  %1099 = load ptr, ptr %1098, align 8, !tbaa !132
  %1100 = getelementptr inbounds %struct.cellbe, ptr %1099, i64 %891
  store double %1095, ptr %1100, align 8, !tbaa !135
  %1101 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1102 = load ptr, ptr %1101, align 8, !tbaa !132
  %1103 = getelementptr inbounds ptr, ptr %1102, i64 %indvars.iv579
  %1104 = load ptr, ptr %1103, align 8, !tbaa !132
  %1105 = getelementptr inbounds %struct.cellb, ptr %1104, i64 %891, i32 1
  %1106 = load double, ptr %1105, align 8, !tbaa !137
  %1107 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1033)
  %1108 = load ptr, ptr %1107, align 8, !tbaa !132
  %1109 = getelementptr inbounds ptr, ptr %1108, i64 %indvars.iv579
  %1110 = load ptr, ptr %1109, align 8, !tbaa !132
  %1111 = getelementptr inbounds %struct.cellb, ptr %1110, i64 %891, i32 1
  %1112 = load double, ptr %1111, align 8, !tbaa !137
  %1113 = fadd double %1106, %1112
  %1114 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1115 = load ptr, ptr %1114, align 8, !tbaa !132
  %1116 = getelementptr inbounds ptr, ptr %1115, i64 %indvars.iv579
  %1117 = load ptr, ptr %1116, align 8, !tbaa !132
  %1118 = getelementptr inbounds %struct.cellb, ptr %1117, i64 %893, i32 1
  %1119 = load double, ptr %1118, align 8, !tbaa !137
  %1120 = fadd double %1113, %1119
  %1121 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1033)
  %1122 = load ptr, ptr %1121, align 8, !tbaa !132
  %1123 = getelementptr inbounds ptr, ptr %1122, i64 %indvars.iv579
  %1124 = load ptr, ptr %1123, align 8, !tbaa !132
  %1125 = getelementptr inbounds %struct.cellb, ptr %1124, i64 %893, i32 1
  %1126 = load double, ptr %1125, align 8, !tbaa !137
  %1127 = fadd double %1120, %1126
  %1128 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1129 = load ptr, ptr %1128, align 8, !tbaa !132
  %indvars.iv.next580 = add nuw nsw i64 %indvars.iv579, 1
  %1130 = getelementptr inbounds ptr, ptr %1129, i64 %indvars.iv.next580
  %1131 = load ptr, ptr %1130, align 8, !tbaa !132
  %1132 = getelementptr inbounds %struct.cellb, ptr %1131, i64 %891, i32 1
  %1133 = load double, ptr %1132, align 8, !tbaa !137
  %1134 = fadd double %1127, %1133
  %1135 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1033)
  %1136 = load ptr, ptr %1135, align 8, !tbaa !132
  %1137 = getelementptr inbounds ptr, ptr %1136, i64 %indvars.iv.next580
  %1138 = load ptr, ptr %1137, align 8, !tbaa !132
  %1139 = getelementptr inbounds %struct.cellb, ptr %1138, i64 %891, i32 1
  %1140 = load double, ptr %1139, align 8, !tbaa !137
  %1141 = fadd double %1134, %1140
  %1142 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1143 = load ptr, ptr %1142, align 8, !tbaa !132
  %1144 = getelementptr inbounds ptr, ptr %1143, i64 %indvars.iv.next580
  %1145 = load ptr, ptr %1144, align 8, !tbaa !132
  %1146 = getelementptr inbounds %struct.cellb, ptr %1145, i64 %893, i32 1
  %1147 = load double, ptr %1146, align 8, !tbaa !137
  %1148 = fadd double %1141, %1147
  %1149 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1033)
  %1150 = load ptr, ptr %1149, align 8, !tbaa !132
  %1151 = getelementptr inbounds ptr, ptr %1150, i64 %indvars.iv.next580
  %1152 = load ptr, ptr %1151, align 8, !tbaa !132
  %1153 = getelementptr inbounds %struct.cellb, ptr %1152, i64 %893, i32 1
  %1154 = load double, ptr %1153, align 8, !tbaa !137
  %1155 = fadd double %1148, %1154
  %1156 = fmul double %1155, 1.250000e-01
  %1157 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %894, i32 noundef %.0489544)
  %1158 = load ptr, ptr %1157, align 8, !tbaa !132
  %1159 = getelementptr inbounds ptr, ptr %1158, i64 %indvars.iv579
  %1160 = load ptr, ptr %1159, align 8, !tbaa !132
  %1161 = getelementptr inbounds %struct.cellbe, ptr %1160, i64 %891, i32 1
  store double %1156, ptr %1161, align 8, !tbaa !138
  %1162 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1163 = load ptr, ptr %1162, align 8, !tbaa !132
  %1164 = getelementptr inbounds ptr, ptr %1163, i64 %indvars.iv579
  %1165 = load ptr, ptr %1164, align 8, !tbaa !132
  %1166 = getelementptr inbounds %struct.cellb, ptr %1165, i64 %891, i32 2
  %1167 = load double, ptr %1166, align 8, !tbaa !139
  %1168 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1033)
  %1169 = load ptr, ptr %1168, align 8, !tbaa !132
  %1170 = getelementptr inbounds ptr, ptr %1169, i64 %indvars.iv579
  %1171 = load ptr, ptr %1170, align 8, !tbaa !132
  %1172 = getelementptr inbounds %struct.cellb, ptr %1171, i64 %891, i32 2
  %1173 = load double, ptr %1172, align 8, !tbaa !139
  %1174 = fadd double %1167, %1173
  %1175 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %.0489544)
  %1176 = load ptr, ptr %1175, align 8, !tbaa !132
  %1177 = getelementptr inbounds ptr, ptr %1176, i64 %1068
  %1178 = load ptr, ptr %1177, align 8, !tbaa !132
  %1179 = getelementptr inbounds %struct.cellb, ptr %1178, i64 %891, i32 2
  %1180 = load double, ptr %1179, align 8, !tbaa !139
  %1181 = fadd double %1174, %1180
  %1182 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI5cellbEixEi(ptr noundef nonnull align 8 dereferenceable(40) %890, i32 noundef %1033)
  %1183 = load ptr, ptr %1182, align 8, !tbaa !132
  %1184 = getelementptr inbounds ptr, ptr %1183, i64 %1068
  %1185 = load ptr, ptr %1184, align 8, !tbaa !132
  %1186 = getelementptr inbounds %struct.cellb, ptr %1185, i64 %891, i32 2
  %1187 = load double, ptr %1186, align 8, !tbaa !139
  %1188 = fadd double %1181, %1187
  %1189 = fmul double %1188, 2.500000e-01
  %1190 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7field3dI6cellbeEixEi(ptr noundef nonnull align 8 dereferenceable(40) %894, i32 noundef %.0489544)
  %1191 = load ptr, ptr %1190, align 8, !tbaa !132
  %1192 = getelementptr inbounds ptr, ptr %1191, i64 %indvars.iv579
  %1193 = load ptr, ptr %1192, align 8, !tbaa !132
  %1194 = getelementptr inbounds %struct.cellbe, ptr %1193, i64 %891, i32 2
  store double %1189, ptr %1194, align 8, !tbaa !140
  %1195 = load i32, ptr %393, align 4, !tbaa !126
  %1196 = add nsw i32 %1195, -1
  %1197 = sext i32 %1196 to i64
  %1198 = icmp slt i64 %indvars.iv.next580, %1197
  br i1 %1198, label %1038, label %._crit_edge543.loopexit, !llvm.loop !153
}

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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" }

!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 = !{!"_ZTS14spatial_region", !7, i64 0, !7, i64 4, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !7, i64 48, !7, i64 52, !7, i64 56, !10, i64 64, !11, i64 72, !7, i64 80, !7, i64 84, !7, i64 88, !11, i64 96, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !12, i64 136, !18, i64 144, !10, i64 176, !10, i64 184, !10, i64 192, !7, i64 200, !7, i64 204, !7, i64 208, !11, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !11, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !11, i64 288, !20, i64 296, !11, i64 328, !11, i64 336, !11, i64 344, !11, i64 352, !23, i64 360, !42, i64 400, !61, i64 440, !80, i64 480, !99, i64 520, !118, i64 560, !122, i64 584}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!"_ZTSSt10unique_ptrI14maxwell_solverSt14default_deleteIS0_EE", !13, i64 0}
!13 = !{!"_ZTSSt15__uniq_ptr_dataI14maxwell_solverSt14default_deleteIS0_ELb1ELb1EE", !14, i64 0}
!14 = !{!"_ZTSSt15__uniq_ptr_implI14maxwell_solverSt14default_deleteIS0_EE", !15, i64 0}
!15 = !{!"_ZTSSt5tupleIJP14maxwell_solverSt14default_deleteIS0_EEE", !16, i64 0}
!16 = !{!"_ZTSSt11_Tuple_implILm0EJP14maxwell_solverSt14default_deleteIS0_EEE", !17, i64 0}
!17 = !{!"_ZTSSt10_Head_baseILm0EP14maxwell_solverLb0EE", !11, i64 0}
!18 = !{!"_ZTSSt8functionIFvR8particleR8vector3dS3_RdEE", !19, i64 0, !11, i64 24}
!19 = !{!"_ZTSSt14_Function_base", !8, i64 0, !11, i64 16}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !22, i64 8, !8, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !11, i64 0}
!22 = !{!"long", !8, i64 0}
!23 = !{!"_ZTS7field3dI5celleE", !7, i64 0, !7, i64 4, !7, i64 8, !24, i64 16, !30, i64 24, !36, i64 32}
!24 = !{!"_ZTSSt10unique_ptrIA_PP5celleSt14default_deleteIS3_EE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_dataIPP5celleSt14default_deleteIA_S2_ELb1ELb1EE", !26, i64 0}
!26 = !{!"_ZTSSt15__uniq_ptr_implIPP5celleSt14default_deleteIA_S2_EE", !27, i64 0}
!27 = !{!"_ZTSSt5tupleIJPPP5celleSt14default_deleteIA_S2_EEE", !28, i64 0}
!28 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5celleSt14default_deleteIA_S2_EEE", !29, i64 0}
!29 = !{!"_ZTSSt10_Head_baseILm0EPPP5celleLb0EE", !11, i64 0}
!30 = !{!"_ZTSSt10unique_ptrIA_P5celleSt14default_deleteIS2_EE", !31, i64 0}
!31 = !{!"_ZTSSt15__uniq_ptr_dataIP5celleSt14default_deleteIA_S1_ELb1ELb1EE", !32, i64 0}
!32 = !{!"_ZTSSt15__uniq_ptr_implIP5celleSt14default_deleteIA_S1_EE", !33, i64 0}
!33 = !{!"_ZTSSt5tupleIJPP5celleSt14default_deleteIA_S1_EEE", !34, i64 0}
!34 = !{!"_ZTSSt11_Tuple_implILm0EJPP5celleSt14default_deleteIA_S1_EEE", !35, i64 0}
!35 = !{!"_ZTSSt10_Head_baseILm0EPP5celleLb0EE", !11, i64 0}
!36 = !{!"_ZTSSt10unique_ptrIA_5celleSt14default_deleteIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt15__uniq_ptr_dataI5celleSt14default_deleteIA_S0_ELb1ELb1EE", !38, i64 0}
!38 = !{!"_ZTSSt15__uniq_ptr_implI5celleSt14default_deleteIA_S0_EE", !39, i64 0}
!39 = !{!"_ZTSSt5tupleIJP5celleSt14default_deleteIA_S0_EEE", !40, i64 0}
!40 = !{!"_ZTSSt11_Tuple_implILm0EJP5celleSt14default_deleteIA_S0_EEE", !41, i64 0}
!41 = !{!"_ZTSSt10_Head_baseILm0EP5celleLb0EE", !11, i64 0}
!42 = !{!"_ZTS7field3dI5cellbE", !7, i64 0, !7, i64 4, !7, i64 8, !43, i64 16, !49, i64 24, !55, i64 32}
!43 = !{!"_ZTSSt10unique_ptrIA_PP5cellbSt14default_deleteIS3_EE", !44, i64 0}
!44 = !{!"_ZTSSt15__uniq_ptr_dataIPP5cellbSt14default_deleteIA_S2_ELb1ELb1EE", !45, i64 0}
!45 = !{!"_ZTSSt15__uniq_ptr_implIPP5cellbSt14default_deleteIA_S2_EE", !46, i64 0}
!46 = !{!"_ZTSSt5tupleIJPPP5cellbSt14default_deleteIA_S2_EEE", !47, i64 0}
!47 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5cellbSt14default_deleteIA_S2_EEE", !48, i64 0}
!48 = !{!"_ZTSSt10_Head_baseILm0EPPP5cellbLb0EE", !11, i64 0}
!49 = !{!"_ZTSSt10unique_ptrIA_P5cellbSt14default_deleteIS2_EE", !50, i64 0}
!50 = !{!"_ZTSSt15__uniq_ptr_dataIP5cellbSt14default_deleteIA_S1_ELb1ELb1EE", !51, i64 0}
!51 = !{!"_ZTSSt15__uniq_ptr_implIP5cellbSt14default_deleteIA_S1_EE", !52, i64 0}
!52 = !{!"_ZTSSt5tupleIJPP5cellbSt14default_deleteIA_S1_EEE", !53, i64 0}
!53 = !{!"_ZTSSt11_Tuple_implILm0EJPP5cellbSt14default_deleteIA_S1_EEE", !54, i64 0}
!54 = !{!"_ZTSSt10_Head_baseILm0EPP5cellbLb0EE", !11, i64 0}
!55 = !{!"_ZTSSt10unique_ptrIA_5cellbSt14default_deleteIS1_EE", !56, i64 0}
!56 = !{!"_ZTSSt15__uniq_ptr_dataI5cellbSt14default_deleteIA_S0_ELb1ELb1EE", !57, i64 0}
!57 = !{!"_ZTSSt15__uniq_ptr_implI5cellbSt14default_deleteIA_S0_EE", !58, i64 0}
!58 = !{!"_ZTSSt5tupleIJP5cellbSt14default_deleteIA_S0_EEE", !59, i64 0}
!59 = !{!"_ZTSSt11_Tuple_implILm0EJP5cellbSt14default_deleteIA_S0_EEE", !60, i64 0}
!60 = !{!"_ZTSSt10_Head_baseILm0EP5cellbLb0EE", !11, i64 0}
!61 = !{!"_ZTS7field3dI5celljE", !7, i64 0, !7, i64 4, !7, i64 8, !62, i64 16, !68, i64 24, !74, i64 32}
!62 = !{!"_ZTSSt10unique_ptrIA_PP5celljSt14default_deleteIS3_EE", !63, i64 0}
!63 = !{!"_ZTSSt15__uniq_ptr_dataIPP5celljSt14default_deleteIA_S2_ELb1ELb1EE", !64, i64 0}
!64 = !{!"_ZTSSt15__uniq_ptr_implIPP5celljSt14default_deleteIA_S2_EE", !65, i64 0}
!65 = !{!"_ZTSSt5tupleIJPPP5celljSt14default_deleteIA_S2_EEE", !66, i64 0}
!66 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5celljSt14default_deleteIA_S2_EEE", !67, i64 0}
!67 = !{!"_ZTSSt10_Head_baseILm0EPPP5celljLb0EE", !11, i64 0}
!68 = !{!"_ZTSSt10unique_ptrIA_P5celljSt14default_deleteIS2_EE", !69, i64 0}
!69 = !{!"_ZTSSt15__uniq_ptr_dataIP5celljSt14default_deleteIA_S1_ELb1ELb1EE", !70, i64 0}
!70 = !{!"_ZTSSt15__uniq_ptr_implIP5celljSt14default_deleteIA_S1_EE", !71, i64 0}
!71 = !{!"_ZTSSt5tupleIJPP5celljSt14default_deleteIA_S1_EEE", !72, i64 0}
!72 = !{!"_ZTSSt11_Tuple_implILm0EJPP5celljSt14default_deleteIA_S1_EEE", !73, i64 0}
!73 = !{!"_ZTSSt10_Head_baseILm0EPP5celljLb0EE", !11, i64 0}
!74 = !{!"_ZTSSt10unique_ptrIA_5celljSt14default_deleteIS1_EE", !75, i64 0}
!75 = !{!"_ZTSSt15__uniq_ptr_dataI5celljSt14default_deleteIA_S0_ELb1ELb1EE", !76, i64 0}
!76 = !{!"_ZTSSt15__uniq_ptr_implI5celljSt14default_deleteIA_S0_EE", !77, i64 0}
!77 = !{!"_ZTSSt5tupleIJP5celljSt14default_deleteIA_S0_EEE", !78, i64 0}
!78 = !{!"_ZTSSt11_Tuple_implILm0EJP5celljSt14default_deleteIA_S0_EEE", !79, i64 0}
!79 = !{!"_ZTSSt10_Head_baseILm0EP5celljLb0EE", !11, i64 0}
!80 = !{!"_ZTS7field3dI6cellbeE", !7, i64 0, !7, i64 4, !7, i64 8, !81, i64 16, !87, i64 24, !93, i64 32}
!81 = !{!"_ZTSSt10unique_ptrIA_PP6cellbeSt14default_deleteIS3_EE", !82, i64 0}
!82 = !{!"_ZTSSt15__uniq_ptr_dataIPP6cellbeSt14default_deleteIA_S2_ELb1ELb1EE", !83, i64 0}
!83 = !{!"_ZTSSt15__uniq_ptr_implIPP6cellbeSt14default_deleteIA_S2_EE", !84, i64 0}
!84 = !{!"_ZTSSt5tupleIJPPP6cellbeSt14default_deleteIA_S2_EEE", !85, i64 0}
!85 = !{!"_ZTSSt11_Tuple_implILm0EJPPP6cellbeSt14default_deleteIA_S2_EEE", !86, i64 0}
!86 = !{!"_ZTSSt10_Head_baseILm0EPPP6cellbeLb0EE", !11, i64 0}
!87 = !{!"_ZTSSt10unique_ptrIA_P6cellbeSt14default_deleteIS2_EE", !88, i64 0}
!88 = !{!"_ZTSSt15__uniq_ptr_dataIP6cellbeSt14default_deleteIA_S1_ELb1ELb1EE", !89, i64 0}
!89 = !{!"_ZTSSt15__uniq_ptr_implIP6cellbeSt14default_deleteIA_S1_EE", !90, i64 0}
!90 = !{!"_ZTSSt5tupleIJPP6cellbeSt14default_deleteIA_S1_EEE", !91, i64 0}
!91 = !{!"_ZTSSt11_Tuple_implILm0EJPP6cellbeSt14default_deleteIA_S1_EEE", !92, i64 0}
!92 = !{!"_ZTSSt10_Head_baseILm0EPP6cellbeLb0EE", !11, i64 0}
!93 = !{!"_ZTSSt10unique_ptrIA_6cellbeSt14default_deleteIS1_EE", !94, i64 0}
!94 = !{!"_ZTSSt15__uniq_ptr_dataI6cellbeSt14default_deleteIA_S0_ELb1ELb1EE", !95, i64 0}
!95 = !{!"_ZTSSt15__uniq_ptr_implI6cellbeSt14default_deleteIA_S0_EE", !96, i64 0}
!96 = !{!"_ZTSSt5tupleIJP6cellbeSt14default_deleteIA_S0_EEE", !97, i64 0}
!97 = !{!"_ZTSSt11_Tuple_implILm0EJP6cellbeSt14default_deleteIA_S0_EEE", !98, i64 0}
!98 = !{!"_ZTSSt10_Head_baseILm0EP6cellbeLb0EE", !11, i64 0}
!99 = !{!"_ZTS7field3dI5cellpE", !7, i64 0, !7, i64 4, !7, i64 8, !100, i64 16, !106, i64 24, !112, i64 32}
!100 = !{!"_ZTSSt10unique_ptrIA_PP5cellpSt14default_deleteIS3_EE", !101, i64 0}
!101 = !{!"_ZTSSt15__uniq_ptr_dataIPP5cellpSt14default_deleteIA_S2_ELb1ELb1EE", !102, i64 0}
!102 = !{!"_ZTSSt15__uniq_ptr_implIPP5cellpSt14default_deleteIA_S2_EE", !103, i64 0}
!103 = !{!"_ZTSSt5tupleIJPPP5cellpSt14default_deleteIA_S2_EEE", !104, i64 0}
!104 = !{!"_ZTSSt11_Tuple_implILm0EJPPP5cellpSt14default_deleteIA_S2_EEE", !105, i64 0}
!105 = !{!"_ZTSSt10_Head_baseILm0EPPP5cellpLb0EE", !11, i64 0}
!106 = !{!"_ZTSSt10unique_ptrIA_P5cellpSt14default_deleteIS2_EE", !107, i64 0}
!107 = !{!"_ZTSSt15__uniq_ptr_dataIP5cellpSt14default_deleteIA_S1_ELb1ELb1EE", !108, i64 0}
!108 = !{!"_ZTSSt15__uniq_ptr_implIP5cellpSt14default_deleteIA_S1_EE", !109, i64 0}
!109 = !{!"_ZTSSt5tupleIJPP5cellpSt14default_deleteIA_S1_EEE", !110, i64 0}
!110 = !{!"_ZTSSt11_Tuple_implILm0EJPP5cellpSt14default_deleteIA_S1_EEE", !111, i64 0}
!111 = !{!"_ZTSSt10_Head_baseILm0EPP5cellpLb0EE", !11, i64 0}
!112 = !{!"_ZTSSt10unique_ptrIA_5cellpSt14default_deleteIS1_EE", !113, i64 0}
!113 = !{!"_ZTSSt15__uniq_ptr_dataI5cellpSt14default_deleteIA_S0_ELb1ELb1EE", !114, i64 0}
!114 = !{!"_ZTSSt15__uniq_ptr_implI5cellpSt14default_deleteIA_S0_EE", !115, i64 0}
!115 = !{!"_ZTSSt5tupleIJP5cellpSt14default_deleteIA_S0_EEE", !116, i64 0}
!116 = !{!"_ZTSSt11_Tuple_implILm0EJP5cellpSt14default_deleteIA_S0_EEE", !117, i64 0}
!117 = !{!"_ZTSSt10_Head_baseILm0EP5cellpLb0EE", !11, i64 0}
!118 = !{!"_ZTSSt6vectorI7field3dIdESaIS1_EE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseI7field3dIdESaIS1_EE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseI7field3dIdESaIS1_EE12_Vector_implE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseI7field3dIdESaIS1_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!122 = !{!"_ZTSSt6vectorIN14spatial_region16deleted_particleESaIS1_EE", !123, i64 0}
!123 = !{!"_ZTSSt12_Vector_baseIN14spatial_region16deleted_particleESaIS1_EE", !124, i64 0}
!124 = !{!"_ZTSNSt12_Vector_baseIN14spatial_region16deleted_particleESaIS1_EE12_Vector_implE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseIN14spatial_region16deleted_particleESaIS1_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!126 = !{!6, !7, i64 4}
!127 = !{!6, !7, i64 8}
!128 = distinct !{!128, !129, !130}
!129 = !{!"llvm.loop.mustprogress"}
!130 = !{!"llvm.loop.unswitch.partial.disable"}
!131 = distinct !{!131, !129, !130}
!132 = !{!11, !11, i64 0}
!133 = !{!134, !10, i64 0}
!134 = !{!"_ZTS5cellb", !10, i64 0, !10, i64 8, !10, i64 16}
!135 = !{!136, !10, i64 0}
!136 = !{!"_ZTS6cellbe", !10, i64 0, !10, i64 8, !10, i64 16}
!137 = !{!134, !10, i64 8}
!138 = !{!136, !10, i64 8}
!139 = !{!134, !10, i64 16}
!140 = !{!136, !10, i64 16}
!141 = distinct !{!141, !129}
!142 = distinct !{!142, !129, !130}
!143 = distinct !{!143, !129}
!144 = distinct !{!144, !129, !130}
!145 = distinct !{!145, !129}
!146 = distinct !{!146, !129, !130}
!147 = distinct !{!147, !129}
!148 = distinct !{!148, !129, !130}
!149 = distinct !{!149, !129}
!150 = distinct !{!150, !129, !130}
!151 = distinct !{!151, !129}
!152 = distinct !{!152, !129, !130}
!153 = distinct !{!153, !129}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass,TailCallElimPass