; LLVM IR from bondhugula/pluto :: examples/lbm/ldc/d3q27 (ldc_d3q27)

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

%struct.timeval = type { i64, i64 }

@omega = external dso_local global double, align 8
@.str = external hidden unnamed_addr constant [232 x i8], align 1
@grid = external dso_local global [2 x [206 x [204 x [204 x [27 x double]]]]], align 16

; Function Attrs: nounwind uwtable
define dso_local i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca double, align 8
  %8 = alloca i32, align 4
  %9 = alloca %struct.timeval, align 8
  %10 = alloca %struct.timeval, align 8
  %11 = alloca %struct.timeval, align 8
  %12 = alloca double, align 8
  %13 = alloca i16, align 2
  %14 = alloca i16, align 2
  %15 = alloca i16, align 2
  %16 = alloca i16, align 2
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #4
  store i32 0, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  store double 8.000000e+09, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  store i32 -1, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  store double 0.000000e+00, ptr %12, align 8, !tbaa !9
  %17 = call double @sqrt(double noundef 0x3F67C1BDA5119CE2) #4
  %18 = fmul double 6.000000e+00, %17
  %19 = fmul double %18, 1.995000e+02
  %20 = fdiv double %19, 1.000000e+02
  %21 = fadd double %20, 1.000000e+00
  %22 = fdiv double 2.000000e+00, %21
  store double %22, ptr @omega, align 8, !tbaa !9
  %23 = load double, ptr @omega, align 8, !tbaa !9
  %24 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef 200, i32 noundef 200, i32 noundef 200, double noundef 8.000000e+03, i32 noundef 1000, double noundef 1.000000e+02, double noundef 5.000000e-02, double noundef 2.000000e-02, double noundef %23)
  store i32 0, ptr %3, align 4, !tbaa !5
  br label %25

25:                                               ; preds = %161, %0
  %26 = load i32, ptr %3, align 4, !tbaa !5
  %27 = icmp slt i32 %26, 206
  br i1 %27, label %28, label %164

28:                                               ; preds = %25
  store i32 0, ptr %4, align 4, !tbaa !5
  br label %29

29:                                               ; preds = %157, %28
  %30 = load i32, ptr %4, align 4, !tbaa !5
  %31 = icmp slt i32 %30, 204
  br i1 %31, label %32, label %160

32:                                               ; preds = %29
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %33

33:                                               ; preds = %153, %32
  %34 = load i32, ptr %5, align 4, !tbaa !5
  %35 = icmp slt i32 %34, 204
  br i1 %35, label %36, label %156

36:                                               ; preds = %33
  %37 = load i32, ptr %3, align 4, !tbaa !5
  %38 = sext i32 %37 to i64
  %39 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %38
  %40 = load i32, ptr %4, align 4, !tbaa !5
  %41 = sext i32 %40 to i64
  %42 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %39, i64 0, i64 %41
  %43 = load i32, ptr %5, align 4, !tbaa !5
  %44 = sext i32 %43 to i64
  %45 = getelementptr inbounds [204 x [27 x double]], ptr %42, i64 0, i64 %44
  %46 = getelementptr inbounds [27 x double], ptr %45, i64 0, i64 0
  store double 0x3FD2F684BDA12F68, ptr %46, align 8, !tbaa !9
  %47 = load i32, ptr %3, align 4, !tbaa !5
  %48 = sext i32 %47 to i64
  %49 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds ([2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 1), i64 0, i64 %48
  %50 = load i32, ptr %4, align 4, !tbaa !5
  %51 = sext i32 %50 to i64
  %52 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %49, i64 0, i64 %51
  %53 = load i32, ptr %5, align 4, !tbaa !5
  %54 = sext i32 %53 to i64
  %55 = getelementptr inbounds [204 x [27 x double]], ptr %52, i64 0, i64 %54
  %56 = getelementptr inbounds [27 x double], ptr %55, i64 0, i64 0
  store double 0x3FD2F684BDA12F68, ptr %56, align 8, !tbaa !9
  store i32 1, ptr %6, align 4, !tbaa !5
  br label %57

57:                                               ; preds = %85, %36
  %58 = load i32, ptr %6, align 4, !tbaa !5
  %59 = icmp slt i32 %58, 7
  br i1 %59, label %60, label %88

60:                                               ; preds = %57
  %61 = load i32, ptr %3, align 4, !tbaa !5
  %62 = sext i32 %61 to i64
  %63 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %62
  %64 = load i32, ptr %4, align 4, !tbaa !5
  %65 = sext i32 %64 to i64
  %66 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %63, i64 0, i64 %65
  %67 = load i32, ptr %5, align 4, !tbaa !5
  %68 = sext i32 %67 to i64
  %69 = getelementptr inbounds [204 x [27 x double]], ptr %66, i64 0, i64 %68
  %70 = load i32, ptr %6, align 4, !tbaa !5
  %71 = sext i32 %70 to i64
  %72 = getelementptr inbounds [27 x double], ptr %69, i64 0, i64 %71
  store double 0x3FB2F684BDA12F68, ptr %72, align 8, !tbaa !9
  %73 = load i32, ptr %3, align 4, !tbaa !5
  %74 = sext i32 %73 to i64
  %75 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds ([2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 1), i64 0, i64 %74
  %76 = load i32, ptr %4, align 4, !tbaa !5
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %75, i64 0, i64 %77
  %79 = load i32, ptr %5, align 4, !tbaa !5
  %80 = sext i32 %79 to i64
  %81 = getelementptr inbounds [204 x [27 x double]], ptr %78, i64 0, i64 %80
  %82 = load i32, ptr %6, align 4, !tbaa !5
  %83 = sext i32 %82 to i64
  %84 = getelementptr inbounds [27 x double], ptr %81, i64 0, i64 %83
  store double 0x3FB2F684BDA12F68, ptr %84, align 8, !tbaa !9
  br label %85

85:                                               ; preds = %60
  %86 = load i32, ptr %6, align 4, !tbaa !5
  %87 = add nsw i32 %86, 1
  store i32 %87, ptr %6, align 4, !tbaa !5
  br label %57, !llvm.loop !11

88:                                               ; preds = %57
  store i32 7, ptr %6, align 4, !tbaa !5
  br label %89

89:                                               ; preds = %117, %88
  %90 = load i32, ptr %6, align 4, !tbaa !5
  %91 = icmp slt i32 %90, 19
  br i1 %91, label %92, label %120

92:                                               ; preds = %89
  %93 = load i32, ptr %3, align 4, !tbaa !5
  %94 = sext i32 %93 to i64
  %95 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %94
  %96 = load i32, ptr %4, align 4, !tbaa !5
  %97 = sext i32 %96 to i64
  %98 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %95, i64 0, i64 %97
  %99 = load i32, ptr %5, align 4, !tbaa !5
  %100 = sext i32 %99 to i64
  %101 = getelementptr inbounds [204 x [27 x double]], ptr %98, i64 0, i64 %100
  %102 = load i32, ptr %6, align 4, !tbaa !5
  %103 = sext i32 %102 to i64
  %104 = getelementptr inbounds [27 x double], ptr %101, i64 0, i64 %103
  store double 0x3F92F684BDA12F68, ptr %104, align 8, !tbaa !9
  %105 = load i32, ptr %3, align 4, !tbaa !5
  %106 = sext i32 %105 to i64
  %107 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds ([2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 1), i64 0, i64 %106
  %108 = load i32, ptr %4, align 4, !tbaa !5
  %109 = sext i32 %108 to i64
  %110 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %107, i64 0, i64 %109
  %111 = load i32, ptr %5, align 4, !tbaa !5
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds [204 x [27 x double]], ptr %110, i64 0, i64 %112
  %114 = load i32, ptr %6, align 4, !tbaa !5
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds [27 x double], ptr %113, i64 0, i64 %115
  store double 0x3F92F684BDA12F68, ptr %116, align 8, !tbaa !9
  br label %117

117:                                              ; preds = %92
  %118 = load i32, ptr %6, align 4, !tbaa !5
  %119 = add nsw i32 %118, 1
  store i32 %119, ptr %6, align 4, !tbaa !5
  br label %89, !llvm.loop !13

120:                                              ; preds = %89
  store i32 19, ptr %6, align 4, !tbaa !5
  br label %121

121:                                              ; preds = %149, %120
  %122 = load i32, ptr %6, align 4, !tbaa !5
  %123 = icmp slt i32 %122, 27
  br i1 %123, label %124, label %152

124:                                              ; preds = %121
  %125 = load i32, ptr %3, align 4, !tbaa !5
  %126 = sext i32 %125 to i64
  %127 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %126
  %128 = load i32, ptr %4, align 4, !tbaa !5
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %127, i64 0, i64 %129
  %131 = load i32, ptr %5, align 4, !tbaa !5
  %132 = sext i32 %131 to i64
  %133 = getelementptr inbounds [204 x [27 x double]], ptr %130, i64 0, i64 %132
  %134 = load i32, ptr %6, align 4, !tbaa !5
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds [27 x double], ptr %133, i64 0, i64 %135
  store double 0x3F72F684BDA12F68, ptr %136, align 8, !tbaa !9
  %137 = load i32, ptr %3, align 4, !tbaa !5
  %138 = sext i32 %137 to i64
  %139 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds ([2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 1), i64 0, i64 %138
  %140 = load i32, ptr %4, align 4, !tbaa !5
  %141 = sext i32 %140 to i64
  %142 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %139, i64 0, i64 %141
  %143 = load i32, ptr %5, align 4, !tbaa !5
  %144 = sext i32 %143 to i64
  %145 = getelementptr inbounds [204 x [27 x double]], ptr %142, i64 0, i64 %144
  %146 = load i32, ptr %6, align 4, !tbaa !5
  %147 = sext i32 %146 to i64
  %148 = getelementptr inbounds [27 x double], ptr %145, i64 0, i64 %147
  store double 0x3F72F684BDA12F68, ptr %148, align 8, !tbaa !9
  br label %149

149:                                              ; preds = %124
  %150 = load i32, ptr %6, align 4, !tbaa !5
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr %6, align 4, !tbaa !5
  br label %121, !llvm.loop !14

152:                                              ; preds = %121
  br label %153

153:                                              ; preds = %152
  %154 = load i32, ptr %5, align 4, !tbaa !5
  %155 = add nsw i32 %154, 1
  store i32 %155, ptr %5, align 4, !tbaa !5
  br label %33, !llvm.loop !15

156:                                              ; preds = %33
  br label %157

157:                                              ; preds = %156
  %158 = load i32, ptr %4, align 4, !tbaa !5
  %159 = add nsw i32 %158, 1
  store i32 %159, ptr %4, align 4, !tbaa !5
  br label %29, !llvm.loop !16

160:                                              ; preds = %29
  br label %161

161:                                              ; preds = %160
  %162 = load i32, ptr %3, align 4, !tbaa !5
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr %3, align 4, !tbaa !5
  br label %25, !llvm.loop !17

164:                                              ; preds = %25
  call void @llvm.lifetime.start.p0(i64 2, ptr %13) #4
  store i16 203, ptr %13, align 2, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 2, ptr %14) #4
  store i16 203, ptr %14, align 2, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 2, ptr %15) #4
  store i16 204, ptr %15, align 2, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 2, ptr %16) #4
  store i16 1000, ptr %16, align 2, !tbaa !18
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %165

165:                                              ; preds = %1096, %164
  %166 = load i32, ptr %2, align 4, !tbaa !5
  %167 = load i16, ptr %16, align 2, !tbaa !18
  %168 = sext i16 %167 to i32
  %169 = icmp slt i32 %166, %168
  br i1 %169, label %170, label %1099

170:                                              ; preds = %165
  store i32 2, ptr %3, align 4, !tbaa !5
  br label %171

171:                                              ; preds = %1092, %170
  %172 = load i32, ptr %3, align 4, !tbaa !5
  %173 = load i16, ptr %15, align 2, !tbaa !18
  %174 = sext i16 %173 to i32
  %175 = icmp slt i32 %172, %174
  br i1 %175, label %176, label %1095

176:                                              ; preds = %171
  store i32 1, ptr %4, align 4, !tbaa !5
  br label %177

177:                                              ; preds = %1088, %176
  %178 = load i32, ptr %4, align 4, !tbaa !5
  %179 = load i16, ptr %14, align 2, !tbaa !18
  %180 = sext i16 %179 to i32
  %181 = icmp slt i32 %178, %180
  br i1 %181, label %182, label %1091

182:                                              ; preds = %177
  store i32 1, ptr %5, align 4, !tbaa !5
  br label %183

183:                                              ; preds = %1084, %182
  %184 = load i32, ptr %5, align 4, !tbaa !5
  %185 = load i16, ptr %13, align 2, !tbaa !18
  %186 = sext i16 %185 to i32
  %187 = icmp slt i32 %184, %186
  br i1 %187, label %188, label %1087

188:                                              ; preds = %183
  %189 = load i32, ptr %2, align 4, !tbaa !5
  %190 = srem i32 %189, 2
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %191
  %193 = load i32, ptr %3, align 4, !tbaa !5
  %194 = add nsw i32 %193, 0
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %192, i64 0, i64 %195
  %197 = load i32, ptr %4, align 4, !tbaa !5
  %198 = add nsw i32 %197, 0
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %196, i64 0, i64 %199
  %201 = load i32, ptr %5, align 4, !tbaa !5
  %202 = add nsw i32 %201, 0
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds [204 x [27 x double]], ptr %200, i64 0, i64 %203
  %205 = getelementptr inbounds [27 x double], ptr %204, i64 0, i64 0
  %206 = load double, ptr %205, align 8, !tbaa !9
  %207 = load i32, ptr %2, align 4, !tbaa !5
  %208 = srem i32 %207, 2
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %209
  %211 = load i32, ptr %3, align 4, !tbaa !5
  %212 = add nsw i32 %211, 0
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %210, i64 0, i64 %213
  %215 = load i32, ptr %4, align 4, !tbaa !5
  %216 = add nsw i32 %215, 0
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %214, i64 0, i64 %217
  %219 = load i32, ptr %5, align 4, !tbaa !5
  %220 = sub nsw i32 %219, 1
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds [204 x [27 x double]], ptr %218, i64 0, i64 %221
  %223 = getelementptr inbounds [27 x double], ptr %222, i64 0, i64 1
  %224 = load double, ptr %223, align 8, !tbaa !9
  %225 = load i32, ptr %2, align 4, !tbaa !5
  %226 = srem i32 %225, 2
  %227 = sext i32 %226 to i64
  %228 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %227
  %229 = load i32, ptr %3, align 4, !tbaa !5
  %230 = add nsw i32 %229, 0
  %231 = sext i32 %230 to i64
  %232 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %228, i64 0, i64 %231
  %233 = load i32, ptr %4, align 4, !tbaa !5
  %234 = add nsw i32 %233, 0
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %232, i64 0, i64 %235
  %237 = load i32, ptr %5, align 4, !tbaa !5
  %238 = add nsw i32 %237, 1
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds [204 x [27 x double]], ptr %236, i64 0, i64 %239
  %241 = getelementptr inbounds [27 x double], ptr %240, i64 0, i64 2
  %242 = load double, ptr %241, align 8, !tbaa !9
  %243 = load i32, ptr %2, align 4, !tbaa !5
  %244 = srem i32 %243, 2
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %245
  %247 = load i32, ptr %3, align 4, !tbaa !5
  %248 = add nsw i32 %247, 0
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %246, i64 0, i64 %249
  %251 = load i32, ptr %4, align 4, !tbaa !5
  %252 = sub nsw i32 %251, 1
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %250, i64 0, i64 %253
  %255 = load i32, ptr %5, align 4, !tbaa !5
  %256 = add nsw i32 %255, 0
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds [204 x [27 x double]], ptr %254, i64 0, i64 %257
  %259 = getelementptr inbounds [27 x double], ptr %258, i64 0, i64 3
  %260 = load double, ptr %259, align 8, !tbaa !9
  %261 = load i32, ptr %2, align 4, !tbaa !5
  %262 = srem i32 %261, 2
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %263
  %265 = load i32, ptr %3, align 4, !tbaa !5
  %266 = add nsw i32 %265, 0
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %264, i64 0, i64 %267
  %269 = load i32, ptr %4, align 4, !tbaa !5
  %270 = add nsw i32 %269, 1
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %268, i64 0, i64 %271
  %273 = load i32, ptr %5, align 4, !tbaa !5
  %274 = add nsw i32 %273, 0
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds [204 x [27 x double]], ptr %272, i64 0, i64 %275
  %277 = getelementptr inbounds [27 x double], ptr %276, i64 0, i64 4
  %278 = load double, ptr %277, align 8, !tbaa !9
  %279 = load i32, ptr %2, align 4, !tbaa !5
  %280 = srem i32 %279, 2
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %281
  %283 = load i32, ptr %3, align 4, !tbaa !5
  %284 = sub nsw i32 %283, 1
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %282, i64 0, i64 %285
  %287 = load i32, ptr %4, align 4, !tbaa !5
  %288 = add nsw i32 %287, 0
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %286, i64 0, i64 %289
  %291 = load i32, ptr %5, align 4, !tbaa !5
  %292 = add nsw i32 %291, 0
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds [204 x [27 x double]], ptr %290, i64 0, i64 %293
  %295 = getelementptr inbounds [27 x double], ptr %294, i64 0, i64 5
  %296 = load double, ptr %295, align 8, !tbaa !9
  %297 = load i32, ptr %2, align 4, !tbaa !5
  %298 = srem i32 %297, 2
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %299
  %301 = load i32, ptr %3, align 4, !tbaa !5
  %302 = add nsw i32 %301, 1
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %300, i64 0, i64 %303
  %305 = load i32, ptr %4, align 4, !tbaa !5
  %306 = add nsw i32 %305, 0
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %304, i64 0, i64 %307
  %309 = load i32, ptr %5, align 4, !tbaa !5
  %310 = add nsw i32 %309, 0
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds [204 x [27 x double]], ptr %308, i64 0, i64 %311
  %313 = getelementptr inbounds [27 x double], ptr %312, i64 0, i64 6
  %314 = load double, ptr %313, align 8, !tbaa !9
  %315 = load i32, ptr %2, align 4, !tbaa !5
  %316 = srem i32 %315, 2
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %317
  %319 = load i32, ptr %3, align 4, !tbaa !5
  %320 = add nsw i32 %319, 0
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %318, i64 0, i64 %321
  %323 = load i32, ptr %4, align 4, !tbaa !5
  %324 = sub nsw i32 %323, 1
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %322, i64 0, i64 %325
  %327 = load i32, ptr %5, align 4, !tbaa !5
  %328 = sub nsw i32 %327, 1
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds [204 x [27 x double]], ptr %326, i64 0, i64 %329
  %331 = getelementptr inbounds [27 x double], ptr %330, i64 0, i64 7
  %332 = load double, ptr %331, align 8, !tbaa !9
  %333 = load i32, ptr %2, align 4, !tbaa !5
  %334 = srem i32 %333, 2
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %335
  %337 = load i32, ptr %3, align 4, !tbaa !5
  %338 = add nsw i32 %337, 0
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %336, i64 0, i64 %339
  %341 = load i32, ptr %4, align 4, !tbaa !5
  %342 = sub nsw i32 %341, 1
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %340, i64 0, i64 %343
  %345 = load i32, ptr %5, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds [204 x [27 x double]], ptr %344, i64 0, i64 %347
  %349 = getelementptr inbounds [27 x double], ptr %348, i64 0, i64 8
  %350 = load double, ptr %349, align 8, !tbaa !9
  %351 = load i32, ptr %2, align 4, !tbaa !5
  %352 = srem i32 %351, 2
  %353 = sext i32 %352 to i64
  %354 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %353
  %355 = load i32, ptr %3, align 4, !tbaa !5
  %356 = add nsw i32 %355, 0
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %354, i64 0, i64 %357
  %359 = load i32, ptr %4, align 4, !tbaa !5
  %360 = add nsw i32 %359, 1
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %358, i64 0, i64 %361
  %363 = load i32, ptr %5, align 4, !tbaa !5
  %364 = sub nsw i32 %363, 1
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds [204 x [27 x double]], ptr %362, i64 0, i64 %365
  %367 = getelementptr inbounds [27 x double], ptr %366, i64 0, i64 9
  %368 = load double, ptr %367, align 8, !tbaa !9
  %369 = load i32, ptr %2, align 4, !tbaa !5
  %370 = srem i32 %369, 2
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %371
  %373 = load i32, ptr %3, align 4, !tbaa !5
  %374 = add nsw i32 %373, 0
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %372, i64 0, i64 %375
  %377 = load i32, ptr %4, align 4, !tbaa !5
  %378 = add nsw i32 %377, 1
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %376, i64 0, i64 %379
  %381 = load i32, ptr %5, align 4, !tbaa !5
  %382 = add nsw i32 %381, 1
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds [204 x [27 x double]], ptr %380, i64 0, i64 %383
  %385 = getelementptr inbounds [27 x double], ptr %384, i64 0, i64 10
  %386 = load double, ptr %385, align 8, !tbaa !9
  %387 = load i32, ptr %2, align 4, !tbaa !5
  %388 = srem i32 %387, 2
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %389
  %391 = load i32, ptr %3, align 4, !tbaa !5
  %392 = sub nsw i32 %391, 1
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %390, i64 0, i64 %393
  %395 = load i32, ptr %4, align 4, !tbaa !5
  %396 = add nsw i32 %395, 0
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %394, i64 0, i64 %397
  %399 = load i32, ptr %5, align 4, !tbaa !5
  %400 = sub nsw i32 %399, 1
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds [204 x [27 x double]], ptr %398, i64 0, i64 %401
  %403 = getelementptr inbounds [27 x double], ptr %402, i64 0, i64 11
  %404 = load double, ptr %403, align 8, !tbaa !9
  %405 = load i32, ptr %2, align 4, !tbaa !5
  %406 = srem i32 %405, 2
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %407
  %409 = load i32, ptr %3, align 4, !tbaa !5
  %410 = sub nsw i32 %409, 1
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %408, i64 0, i64 %411
  %413 = load i32, ptr %4, align 4, !tbaa !5
  %414 = add nsw i32 %413, 0
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %412, i64 0, i64 %415
  %417 = load i32, ptr %5, align 4, !tbaa !5
  %418 = add nsw i32 %417, 1
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds [204 x [27 x double]], ptr %416, i64 0, i64 %419
  %421 = getelementptr inbounds [27 x double], ptr %420, i64 0, i64 12
  %422 = load double, ptr %421, align 8, !tbaa !9
  %423 = load i32, ptr %2, align 4, !tbaa !5
  %424 = srem i32 %423, 2
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %425
  %427 = load i32, ptr %3, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %426, i64 0, i64 %429
  %431 = load i32, ptr %4, align 4, !tbaa !5
  %432 = add nsw i32 %431, 0
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %430, i64 0, i64 %433
  %435 = load i32, ptr %5, align 4, !tbaa !5
  %436 = sub nsw i32 %435, 1
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds [204 x [27 x double]], ptr %434, i64 0, i64 %437
  %439 = getelementptr inbounds [27 x double], ptr %438, i64 0, i64 13
  %440 = load double, ptr %439, align 8, !tbaa !9
  %441 = load i32, ptr %2, align 4, !tbaa !5
  %442 = srem i32 %441, 2
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %443
  %445 = load i32, ptr %3, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %444, i64 0, i64 %447
  %449 = load i32, ptr %4, align 4, !tbaa !5
  %450 = add nsw i32 %449, 0
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %448, i64 0, i64 %451
  %453 = load i32, ptr %5, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds [204 x [27 x double]], ptr %452, i64 0, i64 %455
  %457 = getelementptr inbounds [27 x double], ptr %456, i64 0, i64 14
  %458 = load double, ptr %457, align 8, !tbaa !9
  %459 = load i32, ptr %2, align 4, !tbaa !5
  %460 = srem i32 %459, 2
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %461
  %463 = load i32, ptr %3, align 4, !tbaa !5
  %464 = sub nsw i32 %463, 1
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %462, i64 0, i64 %465
  %467 = load i32, ptr %4, align 4, !tbaa !5
  %468 = sub nsw i32 %467, 1
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %466, i64 0, i64 %469
  %471 = load i32, ptr %5, align 4, !tbaa !5
  %472 = add nsw i32 %471, 0
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds [204 x [27 x double]], ptr %470, i64 0, i64 %473
  %475 = getelementptr inbounds [27 x double], ptr %474, i64 0, i64 15
  %476 = load double, ptr %475, align 8, !tbaa !9
  %477 = load i32, ptr %2, align 4, !tbaa !5
  %478 = srem i32 %477, 2
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %479
  %481 = load i32, ptr %3, align 4, !tbaa !5
  %482 = sub nsw i32 %481, 1
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %480, i64 0, i64 %483
  %485 = load i32, ptr %4, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %484, i64 0, i64 %487
  %489 = load i32, ptr %5, align 4, !tbaa !5
  %490 = add nsw i32 %489, 0
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds [204 x [27 x double]], ptr %488, i64 0, i64 %491
  %493 = getelementptr inbounds [27 x double], ptr %492, i64 0, i64 16
  %494 = load double, ptr %493, align 8, !tbaa !9
  %495 = load i32, ptr %2, align 4, !tbaa !5
  %496 = srem i32 %495, 2
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %497
  %499 = load i32, ptr %3, align 4, !tbaa !5
  %500 = add nsw i32 %499, 1
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %498, i64 0, i64 %501
  %503 = load i32, ptr %4, align 4, !tbaa !5
  %504 = sub nsw i32 %503, 1
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %502, i64 0, i64 %505
  %507 = load i32, ptr %5, align 4, !tbaa !5
  %508 = add nsw i32 %507, 0
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds [204 x [27 x double]], ptr %506, i64 0, i64 %509
  %511 = getelementptr inbounds [27 x double], ptr %510, i64 0, i64 17
  %512 = load double, ptr %511, align 8, !tbaa !9
  %513 = load i32, ptr %2, align 4, !tbaa !5
  %514 = srem i32 %513, 2
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %515
  %517 = load i32, ptr %3, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %516, i64 0, i64 %519
  %521 = load i32, ptr %4, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %520, i64 0, i64 %523
  %525 = load i32, ptr %5, align 4, !tbaa !5
  %526 = add nsw i32 %525, 0
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds [204 x [27 x double]], ptr %524, i64 0, i64 %527
  %529 = getelementptr inbounds [27 x double], ptr %528, i64 0, i64 18
  %530 = load double, ptr %529, align 8, !tbaa !9
  %531 = load i32, ptr %2, align 4, !tbaa !5
  %532 = srem i32 %531, 2
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %533
  %535 = load i32, ptr %3, align 4, !tbaa !5
  %536 = sub nsw i32 %535, 1
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %534, i64 0, i64 %537
  %539 = load i32, ptr %4, align 4, !tbaa !5
  %540 = sub nsw i32 %539, 1
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %538, i64 0, i64 %541
  %543 = load i32, ptr %5, align 4, !tbaa !5
  %544 = sub nsw i32 %543, 1
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds [204 x [27 x double]], ptr %542, i64 0, i64 %545
  %547 = getelementptr inbounds [27 x double], ptr %546, i64 0, i64 19
  %548 = load double, ptr %547, align 8, !tbaa !9
  %549 = load i32, ptr %2, align 4, !tbaa !5
  %550 = srem i32 %549, 2
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %551
  %553 = load i32, ptr %3, align 4, !tbaa !5
  %554 = sub nsw i32 %553, 1
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %552, i64 0, i64 %555
  %557 = load i32, ptr %4, align 4, !tbaa !5
  %558 = sub nsw i32 %557, 1
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %556, i64 0, i64 %559
  %561 = load i32, ptr %5, align 4, !tbaa !5
  %562 = add nsw i32 %561, 1
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds [204 x [27 x double]], ptr %560, i64 0, i64 %563
  %565 = getelementptr inbounds [27 x double], ptr %564, i64 0, i64 20
  %566 = load double, ptr %565, align 8, !tbaa !9
  %567 = load i32, ptr %2, align 4, !tbaa !5
  %568 = srem i32 %567, 2
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %569
  %571 = load i32, ptr %3, align 4, !tbaa !5
  %572 = sub nsw i32 %571, 1
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %570, i64 0, i64 %573
  %575 = load i32, ptr %4, align 4, !tbaa !5
  %576 = add nsw i32 %575, 1
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %574, i64 0, i64 %577
  %579 = load i32, ptr %5, align 4, !tbaa !5
  %580 = sub nsw i32 %579, 1
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds [204 x [27 x double]], ptr %578, i64 0, i64 %581
  %583 = getelementptr inbounds [27 x double], ptr %582, i64 0, i64 21
  %584 = load double, ptr %583, align 8, !tbaa !9
  %585 = load i32, ptr %2, align 4, !tbaa !5
  %586 = srem i32 %585, 2
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %587
  %589 = load i32, ptr %3, align 4, !tbaa !5
  %590 = sub nsw i32 %589, 1
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %588, i64 0, i64 %591
  %593 = load i32, ptr %4, align 4, !tbaa !5
  %594 = add nsw i32 %593, 1
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %592, i64 0, i64 %595
  %597 = load i32, ptr %5, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds [204 x [27 x double]], ptr %596, i64 0, i64 %599
  %601 = getelementptr inbounds [27 x double], ptr %600, i64 0, i64 22
  %602 = load double, ptr %601, align 8, !tbaa !9
  %603 = load i32, ptr %2, align 4, !tbaa !5
  %604 = srem i32 %603, 2
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %605
  %607 = load i32, ptr %3, align 4, !tbaa !5
  %608 = add nsw i32 %607, 1
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %606, i64 0, i64 %609
  %611 = load i32, ptr %4, align 4, !tbaa !5
  %612 = sub nsw i32 %611, 1
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %610, i64 0, i64 %613
  %615 = load i32, ptr %5, align 4, !tbaa !5
  %616 = sub nsw i32 %615, 1
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds [204 x [27 x double]], ptr %614, i64 0, i64 %617
  %619 = getelementptr inbounds [27 x double], ptr %618, i64 0, i64 23
  %620 = load double, ptr %619, align 8, !tbaa !9
  %621 = load i32, ptr %2, align 4, !tbaa !5
  %622 = srem i32 %621, 2
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %623
  %625 = load i32, ptr %3, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %624, i64 0, i64 %627
  %629 = load i32, ptr %4, align 4, !tbaa !5
  %630 = sub nsw i32 %629, 1
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %628, i64 0, i64 %631
  %633 = load i32, ptr %5, align 4, !tbaa !5
  %634 = add nsw i32 %633, 1
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds [204 x [27 x double]], ptr %632, i64 0, i64 %635
  %637 = getelementptr inbounds [27 x double], ptr %636, i64 0, i64 24
  %638 = load double, ptr %637, align 8, !tbaa !9
  %639 = load i32, ptr %2, align 4, !tbaa !5
  %640 = srem i32 %639, 2
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %641
  %643 = load i32, ptr %3, align 4, !tbaa !5
  %644 = add nsw i32 %643, 1
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %642, i64 0, i64 %645
  %647 = load i32, ptr %4, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %646, i64 0, i64 %649
  %651 = load i32, ptr %5, align 4, !tbaa !5
  %652 = sub nsw i32 %651, 1
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds [204 x [27 x double]], ptr %650, i64 0, i64 %653
  %655 = getelementptr inbounds [27 x double], ptr %654, i64 0, i64 25
  %656 = load double, ptr %655, align 8, !tbaa !9
  %657 = load i32, ptr %2, align 4, !tbaa !5
  %658 = srem i32 %657, 2
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %659
  %661 = load i32, ptr %3, align 4, !tbaa !5
  %662 = add nsw i32 %661, 1
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %660, i64 0, i64 %663
  %665 = load i32, ptr %4, align 4, !tbaa !5
  %666 = add nsw i32 %665, 1
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %664, i64 0, i64 %667
  %669 = load i32, ptr %5, align 4, !tbaa !5
  %670 = add nsw i32 %669, 1
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds [204 x [27 x double]], ptr %668, i64 0, i64 %671
  %673 = getelementptr inbounds [27 x double], ptr %672, i64 0, i64 26
  %674 = load double, ptr %673, align 8, !tbaa !9
  %675 = load i32, ptr %2, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  %677 = srem i32 %676, 2
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %678
  %680 = load i32, ptr %3, align 4, !tbaa !5
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %679, i64 0, i64 %681
  %683 = load i32, ptr %4, align 4, !tbaa !5
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %682, i64 0, i64 %684
  %686 = load i32, ptr %5, align 4, !tbaa !5
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds [204 x [27 x double]], ptr %685, i64 0, i64 %687
  %689 = getelementptr inbounds [27 x double], ptr %688, i64 0, i64 0
  %690 = load i32, ptr %2, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  %692 = srem i32 %691, 2
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %693
  %695 = load i32, ptr %3, align 4, !tbaa !5
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %694, i64 0, i64 %696
  %698 = load i32, ptr %4, align 4, !tbaa !5
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %697, i64 0, i64 %699
  %701 = load i32, ptr %5, align 4, !tbaa !5
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds [204 x [27 x double]], ptr %700, i64 0, i64 %702
  %704 = getelementptr inbounds [27 x double], ptr %703, i64 0, i64 1
  %705 = load i32, ptr %2, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  %707 = srem i32 %706, 2
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %708
  %710 = load i32, ptr %3, align 4, !tbaa !5
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %709, i64 0, i64 %711
  %713 = load i32, ptr %4, align 4, !tbaa !5
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %712, i64 0, i64 %714
  %716 = load i32, ptr %5, align 4, !tbaa !5
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds [204 x [27 x double]], ptr %715, i64 0, i64 %717
  %719 = getelementptr inbounds [27 x double], ptr %718, i64 0, i64 2
  %720 = load i32, ptr %2, align 4, !tbaa !5
  %721 = add nsw i32 %720, 1
  %722 = srem i32 %721, 2
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %723
  %725 = load i32, ptr %3, align 4, !tbaa !5
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %724, i64 0, i64 %726
  %728 = load i32, ptr %4, align 4, !tbaa !5
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %727, i64 0, i64 %729
  %731 = load i32, ptr %5, align 4, !tbaa !5
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds [204 x [27 x double]], ptr %730, i64 0, i64 %732
  %734 = getelementptr inbounds [27 x double], ptr %733, i64 0, i64 3
  %735 = load i32, ptr %2, align 4, !tbaa !5
  %736 = add nsw i32 %735, 1
  %737 = srem i32 %736, 2
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %738
  %740 = load i32, ptr %3, align 4, !tbaa !5
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %739, i64 0, i64 %741
  %743 = load i32, ptr %4, align 4, !tbaa !5
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %742, i64 0, i64 %744
  %746 = load i32, ptr %5, align 4, !tbaa !5
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds [204 x [27 x double]], ptr %745, i64 0, i64 %747
  %749 = getelementptr inbounds [27 x double], ptr %748, i64 0, i64 4
  %750 = load i32, ptr %2, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  %752 = srem i32 %751, 2
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %753
  %755 = load i32, ptr %3, align 4, !tbaa !5
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %754, i64 0, i64 %756
  %758 = load i32, ptr %4, align 4, !tbaa !5
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %757, i64 0, i64 %759
  %761 = load i32, ptr %5, align 4, !tbaa !5
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds [204 x [27 x double]], ptr %760, i64 0, i64 %762
  %764 = getelementptr inbounds [27 x double], ptr %763, i64 0, i64 5
  %765 = load i32, ptr %2, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  %767 = srem i32 %766, 2
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %768
  %770 = load i32, ptr %3, align 4, !tbaa !5
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %769, i64 0, i64 %771
  %773 = load i32, ptr %4, align 4, !tbaa !5
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %772, i64 0, i64 %774
  %776 = load i32, ptr %5, align 4, !tbaa !5
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds [204 x [27 x double]], ptr %775, i64 0, i64 %777
  %779 = getelementptr inbounds [27 x double], ptr %778, i64 0, i64 6
  %780 = load i32, ptr %2, align 4, !tbaa !5
  %781 = add nsw i32 %780, 1
  %782 = srem i32 %781, 2
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %783
  %785 = load i32, ptr %3, align 4, !tbaa !5
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %784, i64 0, i64 %786
  %788 = load i32, ptr %4, align 4, !tbaa !5
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %787, i64 0, i64 %789
  %791 = load i32, ptr %5, align 4, !tbaa !5
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds [204 x [27 x double]], ptr %790, i64 0, i64 %792
  %794 = getelementptr inbounds [27 x double], ptr %793, i64 0, i64 7
  %795 = load i32, ptr %2, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  %797 = srem i32 %796, 2
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %798
  %800 = load i32, ptr %3, align 4, !tbaa !5
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %799, i64 0, i64 %801
  %803 = load i32, ptr %4, align 4, !tbaa !5
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %802, i64 0, i64 %804
  %806 = load i32, ptr %5, align 4, !tbaa !5
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds [204 x [27 x double]], ptr %805, i64 0, i64 %807
  %809 = getelementptr inbounds [27 x double], ptr %808, i64 0, i64 8
  %810 = load i32, ptr %2, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  %812 = srem i32 %811, 2
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %813
  %815 = load i32, ptr %3, align 4, !tbaa !5
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %814, i64 0, i64 %816
  %818 = load i32, ptr %4, align 4, !tbaa !5
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %817, i64 0, i64 %819
  %821 = load i32, ptr %5, align 4, !tbaa !5
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds [204 x [27 x double]], ptr %820, i64 0, i64 %822
  %824 = getelementptr inbounds [27 x double], ptr %823, i64 0, i64 9
  %825 = load i32, ptr %2, align 4, !tbaa !5
  %826 = add nsw i32 %825, 1
  %827 = srem i32 %826, 2
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %828
  %830 = load i32, ptr %3, align 4, !tbaa !5
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %829, i64 0, i64 %831
  %833 = load i32, ptr %4, align 4, !tbaa !5
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %832, i64 0, i64 %834
  %836 = load i32, ptr %5, align 4, !tbaa !5
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds [204 x [27 x double]], ptr %835, i64 0, i64 %837
  %839 = getelementptr inbounds [27 x double], ptr %838, i64 0, i64 10
  %840 = load i32, ptr %2, align 4, !tbaa !5
  %841 = add nsw i32 %840, 1
  %842 = srem i32 %841, 2
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %843
  %845 = load i32, ptr %3, align 4, !tbaa !5
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %844, i64 0, i64 %846
  %848 = load i32, ptr %4, align 4, !tbaa !5
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %847, i64 0, i64 %849
  %851 = load i32, ptr %5, align 4, !tbaa !5
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds [204 x [27 x double]], ptr %850, i64 0, i64 %852
  %854 = getelementptr inbounds [27 x double], ptr %853, i64 0, i64 11
  %855 = load i32, ptr %2, align 4, !tbaa !5
  %856 = add nsw i32 %855, 1
  %857 = srem i32 %856, 2
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %858
  %860 = load i32, ptr %3, align 4, !tbaa !5
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %859, i64 0, i64 %861
  %863 = load i32, ptr %4, align 4, !tbaa !5
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %862, i64 0, i64 %864
  %866 = load i32, ptr %5, align 4, !tbaa !5
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds [204 x [27 x double]], ptr %865, i64 0, i64 %867
  %869 = getelementptr inbounds [27 x double], ptr %868, i64 0, i64 12
  %870 = load i32, ptr %2, align 4, !tbaa !5
  %871 = add nsw i32 %870, 1
  %872 = srem i32 %871, 2
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %873
  %875 = load i32, ptr %3, align 4, !tbaa !5
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %874, i64 0, i64 %876
  %878 = load i32, ptr %4, align 4, !tbaa !5
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %877, i64 0, i64 %879
  %881 = load i32, ptr %5, align 4, !tbaa !5
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds [204 x [27 x double]], ptr %880, i64 0, i64 %882
  %884 = getelementptr inbounds [27 x double], ptr %883, i64 0, i64 13
  %885 = load i32, ptr %2, align 4, !tbaa !5
  %886 = add nsw i32 %885, 1
  %887 = srem i32 %886, 2
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %888
  %890 = load i32, ptr %3, align 4, !tbaa !5
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %889, i64 0, i64 %891
  %893 = load i32, ptr %4, align 4, !tbaa !5
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %892, i64 0, i64 %894
  %896 = load i32, ptr %5, align 4, !tbaa !5
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds [204 x [27 x double]], ptr %895, i64 0, i64 %897
  %899 = getelementptr inbounds [27 x double], ptr %898, i64 0, i64 14
  %900 = load i32, ptr %2, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  %902 = srem i32 %901, 2
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %903
  %905 = load i32, ptr %3, align 4, !tbaa !5
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %904, i64 0, i64 %906
  %908 = load i32, ptr %4, align 4, !tbaa !5
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %907, i64 0, i64 %909
  %911 = load i32, ptr %5, align 4, !tbaa !5
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds [204 x [27 x double]], ptr %910, i64 0, i64 %912
  %914 = getelementptr inbounds [27 x double], ptr %913, i64 0, i64 15
  %915 = load i32, ptr %2, align 4, !tbaa !5
  %916 = add nsw i32 %915, 1
  %917 = srem i32 %916, 2
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %918
  %920 = load i32, ptr %3, align 4, !tbaa !5
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %919, i64 0, i64 %921
  %923 = load i32, ptr %4, align 4, !tbaa !5
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %922, i64 0, i64 %924
  %926 = load i32, ptr %5, align 4, !tbaa !5
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds [204 x [27 x double]], ptr %925, i64 0, i64 %927
  %929 = getelementptr inbounds [27 x double], ptr %928, i64 0, i64 16
  %930 = load i32, ptr %2, align 4, !tbaa !5
  %931 = add nsw i32 %930, 1
  %932 = srem i32 %931, 2
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %933
  %935 = load i32, ptr %3, align 4, !tbaa !5
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %934, i64 0, i64 %936
  %938 = load i32, ptr %4, align 4, !tbaa !5
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %937, i64 0, i64 %939
  %941 = load i32, ptr %5, align 4, !tbaa !5
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds [204 x [27 x double]], ptr %940, i64 0, i64 %942
  %944 = getelementptr inbounds [27 x double], ptr %943, i64 0, i64 17
  %945 = load i32, ptr %2, align 4, !tbaa !5
  %946 = add nsw i32 %945, 1
  %947 = srem i32 %946, 2
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %948
  %950 = load i32, ptr %3, align 4, !tbaa !5
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %949, i64 0, i64 %951
  %953 = load i32, ptr %4, align 4, !tbaa !5
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %952, i64 0, i64 %954
  %956 = load i32, ptr %5, align 4, !tbaa !5
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds [204 x [27 x double]], ptr %955, i64 0, i64 %957
  %959 = getelementptr inbounds [27 x double], ptr %958, i64 0, i64 18
  %960 = load i32, ptr %2, align 4, !tbaa !5
  %961 = add nsw i32 %960, 1
  %962 = srem i32 %961, 2
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %963
  %965 = load i32, ptr %3, align 4, !tbaa !5
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %964, i64 0, i64 %966
  %968 = load i32, ptr %4, align 4, !tbaa !5
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %967, i64 0, i64 %969
  %971 = load i32, ptr %5, align 4, !tbaa !5
  %972 = sext i32 %971 to i64
  %973 = getelementptr inbounds [204 x [27 x double]], ptr %970, i64 0, i64 %972
  %974 = getelementptr inbounds [27 x double], ptr %973, i64 0, i64 19
  %975 = load i32, ptr %2, align 4, !tbaa !5
  %976 = add nsw i32 %975, 1
  %977 = srem i32 %976, 2
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %978
  %980 = load i32, ptr %3, align 4, !tbaa !5
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %979, i64 0, i64 %981
  %983 = load i32, ptr %4, align 4, !tbaa !5
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %982, i64 0, i64 %984
  %986 = load i32, ptr %5, align 4, !tbaa !5
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds [204 x [27 x double]], ptr %985, i64 0, i64 %987
  %989 = getelementptr inbounds [27 x double], ptr %988, i64 0, i64 20
  %990 = load i32, ptr %2, align 4, !tbaa !5
  %991 = add nsw i32 %990, 1
  %992 = srem i32 %991, 2
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %993
  %995 = load i32, ptr %3, align 4, !tbaa !5
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %994, i64 0, i64 %996
  %998 = load i32, ptr %4, align 4, !tbaa !5
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %997, i64 0, i64 %999
  %1001 = load i32, ptr %5, align 4, !tbaa !5
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds [204 x [27 x double]], ptr %1000, i64 0, i64 %1002
  %1004 = getelementptr inbounds [27 x double], ptr %1003, i64 0, i64 21
  %1005 = load i32, ptr %2, align 4, !tbaa !5
  %1006 = add nsw i32 %1005, 1
  %1007 = srem i32 %1006, 2
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %1008
  %1010 = load i32, ptr %3, align 4, !tbaa !5
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %1009, i64 0, i64 %1011
  %1013 = load i32, ptr %4, align 4, !tbaa !5
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %1012, i64 0, i64 %1014
  %1016 = load i32, ptr %5, align 4, !tbaa !5
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds [204 x [27 x double]], ptr %1015, i64 0, i64 %1017
  %1019 = getelementptr inbounds [27 x double], ptr %1018, i64 0, i64 22
  %1020 = load i32, ptr %2, align 4, !tbaa !5
  %1021 = add nsw i32 %1020, 1
  %1022 = srem i32 %1021, 2
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %1023
  %1025 = load i32, ptr %3, align 4, !tbaa !5
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %1024, i64 0, i64 %1026
  %1028 = load i32, ptr %4, align 4, !tbaa !5
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %1027, i64 0, i64 %1029
  %1031 = load i32, ptr %5, align 4, !tbaa !5
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds [204 x [27 x double]], ptr %1030, i64 0, i64 %1032
  %1034 = getelementptr inbounds [27 x double], ptr %1033, i64 0, i64 23
  %1035 = load i32, ptr %2, align 4, !tbaa !5
  %1036 = add nsw i32 %1035, 1
  %1037 = srem i32 %1036, 2
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %1038
  %1040 = load i32, ptr %3, align 4, !tbaa !5
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %1039, i64 0, i64 %1041
  %1043 = load i32, ptr %4, align 4, !tbaa !5
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %1042, i64 0, i64 %1044
  %1046 = load i32, ptr %5, align 4, !tbaa !5
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds [204 x [27 x double]], ptr %1045, i64 0, i64 %1047
  %1049 = getelementptr inbounds [27 x double], ptr %1048, i64 0, i64 24
  %1050 = load i32, ptr %2, align 4, !tbaa !5
  %1051 = add nsw i32 %1050, 1
  %1052 = srem i32 %1051, 2
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %1053
  %1055 = load i32, ptr %3, align 4, !tbaa !5
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %1054, i64 0, i64 %1056
  %1058 = load i32, ptr %4, align 4, !tbaa !5
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %1057, i64 0, i64 %1059
  %1061 = load i32, ptr %5, align 4, !tbaa !5
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds [204 x [27 x double]], ptr %1060, i64 0, i64 %1062
  %1064 = getelementptr inbounds [27 x double], ptr %1063, i64 0, i64 25
  %1065 = load i32, ptr %2, align 4, !tbaa !5
  %1066 = add nsw i32 %1065, 1
  %1067 = srem i32 %1066, 2
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %1068
  %1070 = load i32, ptr %3, align 4, !tbaa !5
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr %1069, i64 0, i64 %1071
  %1073 = load i32, ptr %4, align 4, !tbaa !5
  %1074 = sext i32 %1073 to i64
  %1075 = getelementptr inbounds [204 x [204 x [27 x double]]], ptr %1072, i64 0, i64 %1074
  %1076 = load i32, ptr %5, align 4, !tbaa !5
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds [204 x [27 x double]], ptr %1075, i64 0, i64 %1077
  %1079 = getelementptr inbounds [27 x double], ptr %1078, i64 0, i64 26
  %1080 = load i32, ptr %2, align 4, !tbaa !5
  %1081 = load i32, ptr %3, align 4, !tbaa !5
  %1082 = load i32, ptr %4, align 4, !tbaa !5
  %1083 = load i32, ptr %5, align 4, !tbaa !5
  call void @lbm_kernel(double noundef %206, double noundef %224, double noundef %242, double noundef %260, double noundef %278, double noundef %296, double noundef %314, double noundef %332, double noundef %350, double noundef %368, double noundef %386, double noundef %404, double noundef %422, double noundef %440, double noundef %458, double noundef %476, double noundef %494, double noundef %512, double noundef %530, double noundef %548, double noundef %566, double noundef %584, double noundef %602, double noundef %620, double noundef %638, double noundef %656, double noundef %674, ptr noundef %689, ptr noundef %704, ptr noundef %719, ptr noundef %734, ptr noundef %749, ptr noundef %764, ptr noundef %779, ptr noundef %794, ptr noundef %809, ptr noundef %824, ptr noundef %839, ptr noundef %854, ptr noundef %869, ptr noundef %884, ptr noundef %899, ptr noundef %914, ptr noundef %929, ptr noundef %944, ptr noundef %959, ptr noundef %974, ptr noundef %989, ptr noundef %1004, ptr noundef %1019, ptr noundef %1034, ptr noundef %1049, ptr noundef %1064, ptr noundef %1079, i32 noundef %1080, i32 noundef %1081, i32 noundef %1082, i32 noundef %1083)
  br label %1084

1084:                                             ; preds = %188
  %1085 = load i32, ptr %5, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr %5, align 4, !tbaa !5
  br label %183, !llvm.loop !20

1087:                                             ; preds = %183
  br label %1088

1088:                                             ; preds = %1087
  %1089 = load i32, ptr %4, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr %4, align 4, !tbaa !5
  br label %177, !llvm.loop !21

1091:                                             ; preds = %177
  br label %1092

1092:                                             ; preds = %1091
  %1093 = load i32, ptr %3, align 4, !tbaa !5
  %1094 = add nsw i32 %1093, 1
  store i32 %1094, ptr %3, align 4, !tbaa !5
  br label %171, !llvm.loop !22

1095:                                             ; preds = %171
  br label %1096

1096:                                             ; preds = %1095
  %1097 = load i32, ptr %2, align 4, !tbaa !5
  %1098 = add nsw i32 %1097, 1
  store i32 %1098, ptr %2, align 4, !tbaa !5
  br label %165, !llvm.loop !23

1099:                                             ; preds = %165
  call void @llvm.lifetime.end.p0(i64 2, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #4
  ret i32 0
}

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

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

declare i32 @printf(ptr noundef, ...) #3

; Function Attrs: nounwind uwtable
declare dso_local void @lbm_kernel(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #0

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = !{!19, !19, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}


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

@omega = external dso_local local_unnamed_addr global double, align 8
@.str = external hidden unnamed_addr constant [232 x i8], align 1
@grid = external dso_local global [2 x [206 x [204 x [204 x [27 x double]]]]], align 16

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 {
  store double 0x3FF375233B9337C0, ptr @omega, align 8, !tbaa !5
  %1 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef 200, i32 noundef 200, i32 noundef 200, double noundef 8.000000e+03, i32 noundef 1000, double noundef 1.000000e+02, double noundef 5.000000e-02, double noundef 2.000000e-02, double noundef 0x3FF375233B9337C0)
  br label %.preheader287

.preheader287:                                    ; preds = %0, %31
  %indvars.iv306 = phi i64 [ 0, %0 ], [ %indvars.iv.next307, %31 ]
  br label %.preheader286

.preheader286:                                    ; preds = %.preheader287, %30
  %indvars.iv302 = phi i64 [ 0, %.preheader287 ], [ %indvars.iv.next303, %30 ]
  br label %.preheader285.preheader

.preheader285.preheader:                          ; preds = %.preheader286, %.preheader285.preheader
  %indvars.iv = phi i64 [ 0, %.preheader286 ], [ %indvars.iv.next, %.preheader285.preheader ]
  %2 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv
  %3 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv
  store <2 x double> <double 0x3FD2F684BDA12F68, double 0x3FB2F684BDA12F68>, ptr %2, align 8, !tbaa !5
  store <2 x double> <double 0x3FD2F684BDA12F68, double 0x3FB2F684BDA12F68>, ptr %3, align 8, !tbaa !5
  %4 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 2
  %5 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 2
  store <2 x double> <double 0x3FB2F684BDA12F68, double 0x3FB2F684BDA12F68>, ptr %4, align 8, !tbaa !5
  store <2 x double> <double 0x3FB2F684BDA12F68, double 0x3FB2F684BDA12F68>, ptr %5, align 8, !tbaa !5
  %6 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 4
  %7 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 4
  store <2 x double> <double 0x3FB2F684BDA12F68, double 0x3FB2F684BDA12F68>, ptr %6, align 8, !tbaa !5
  store <2 x double> <double 0x3FB2F684BDA12F68, double 0x3FB2F684BDA12F68>, ptr %7, align 8, !tbaa !5
  %8 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 6
  %9 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 6
  store <2 x double> <double 0x3FB2F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %8, align 8, !tbaa !5
  store <2 x double> <double 0x3FB2F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %9, align 8, !tbaa !5
  %10 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 8
  %11 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 8
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %10, align 8, !tbaa !5
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %11, align 8, !tbaa !5
  %12 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 10
  %13 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 10
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %12, align 8, !tbaa !5
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %13, align 8, !tbaa !5
  %14 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 12
  %15 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 12
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %14, align 8, !tbaa !5
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %15, align 8, !tbaa !5
  %16 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 14
  %17 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 14
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %16, align 8, !tbaa !5
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %17, align 8, !tbaa !5
  %18 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 16
  %19 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 16
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %18, align 8, !tbaa !5
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F92F684BDA12F68>, ptr %19, align 8, !tbaa !5
  %20 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 18
  %21 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 18
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %20, align 8, !tbaa !5
  store <2 x double> <double 0x3F92F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %21, align 8, !tbaa !5
  %22 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 20
  %23 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 20
  store <2 x double> <double 0x3F72F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %22, align 8, !tbaa !5
  store <2 x double> <double 0x3F72F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %23, align 8, !tbaa !5
  %24 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 22
  %25 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 22
  store <2 x double> <double 0x3F72F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %24, align 8, !tbaa !5
  store <2 x double> <double 0x3F72F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %25, align 8, !tbaa !5
  %26 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 24
  %27 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 24
  store <2 x double> <double 0x3F72F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %26, align 8, !tbaa !5
  store <2 x double> <double 0x3F72F684BDA12F68, double 0x3F72F684BDA12F68>, ptr %27, align 8, !tbaa !5
  %28 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr @grid, i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 26
  store double 0x3F72F684BDA12F68, ptr %28, align 8, !tbaa !5
  %29 = getelementptr inbounds [206 x [204 x [204 x [27 x double]]]], ptr getelementptr inbounds (i8, ptr @grid, i64 1851745536), i64 0, i64 %indvars.iv306, i64 %indvars.iv302, i64 %indvars.iv, i64 26
  store double 0x3F72F684BDA12F68, ptr %29, align 8, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 204
  br i1 %exitcond.not, label %30, label %.preheader285.preheader, !llvm.loop !9

30:                                               ; preds = %.preheader285.preheader
  %indvars.iv.next303 = add nuw nsw i64 %indvars.iv302, 1
  %exitcond305.not = icmp eq i64 %indvars.iv.next303, 204
  br i1 %exitcond305.not, label %31, label %.preheader286, !llvm.loop !11

31:                                               ; preds = %30
  %indvars.iv.next307 = add nuw nsw i64 %indvars.iv306, 1
  %exitcond309.not = icmp eq i64 %indvars.iv.next307, 206
  br i1 %exitcond309.not, label %.preheader282, label %.preheader287, !llvm.loop !12

.preheader282:                                    ; preds = %31, %126
  %.0297 = phi i32 [ %127, %126 ], [ 0, %31 ]
  %32 = and i32 %.0297, 1
  %33 = zext nneg i32 %32 to i64
  %34 = xor i32 %32, 1
  %35 = zext nneg i32 %34 to i64
  br label %.preheader281

.preheader281:                                    ; preds = %.preheader282, %125
  %indvars.iv318 = phi i64 [ 2, %.preheader282 ], [ %indvars.iv.next319, %125 ]
  %36 = add nsw i64 %indvars.iv318, -1
  %indvars.iv.next319 = add nuw nsw i64 %indvars.iv318, 1
  %37 = trunc nuw nsw i64 %indvars.iv318 to i32
  br label %.preheader

.preheader:                                       ; preds = %.preheader281, %124
  %indvars.iv314 = phi i64 [ 1, %.preheader281 ], [ %indvars.iv.next315, %124 ]
  %38 = add nsw i64 %indvars.iv314, -1
  %indvars.iv.next315 = add nuw nsw i64 %indvars.iv314, 1
  %39 = trunc nuw nsw i64 %indvars.iv314 to i32
  br label %40

40:                                               ; preds = %.preheader, %40
  %indvars.iv310 = phi i64 [ 1, %.preheader ], [ %indvars.iv.next311, %40 ]
  %41 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %indvars.iv314, i64 %indvars.iv310
  %42 = load double, ptr %41, align 8, !tbaa !5
  %43 = add nsw i64 %indvars.iv310, -1
  %44 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %indvars.iv314, i64 %43, i64 1
  %45 = load double, ptr %44, align 8, !tbaa !5
  %indvars.iv.next311 = add nuw nsw i64 %indvars.iv310, 1
  %46 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %indvars.iv314, i64 %indvars.iv.next311, i64 2
  %47 = load double, ptr %46, align 8, !tbaa !5
  %48 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %38, i64 %indvars.iv310, i64 3
  %49 = load double, ptr %48, align 8, !tbaa !5
  %50 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %indvars.iv.next315, i64 %indvars.iv310, i64 4
  %51 = load double, ptr %50, align 8, !tbaa !5
  %52 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %indvars.iv314, i64 %indvars.iv310, i64 5
  %53 = load double, ptr %52, align 8, !tbaa !5
  %54 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %indvars.iv314, i64 %indvars.iv310, i64 6
  %55 = load double, ptr %54, align 8, !tbaa !5
  %56 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %38, i64 %43, i64 7
  %57 = load double, ptr %56, align 8, !tbaa !5
  %58 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %38, i64 %indvars.iv.next311, i64 8
  %59 = load double, ptr %58, align 8, !tbaa !5
  %60 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %indvars.iv.next315, i64 %43, i64 9
  %61 = load double, ptr %60, align 8, !tbaa !5
  %62 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv318, i64 %indvars.iv.next315, i64 %indvars.iv.next311, i64 10
  %63 = load double, ptr %62, align 8, !tbaa !5
  %64 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %indvars.iv314, i64 %43, i64 11
  %65 = load double, ptr %64, align 8, !tbaa !5
  %66 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %indvars.iv314, i64 %indvars.iv.next311, i64 12
  %67 = load double, ptr %66, align 8, !tbaa !5
  %68 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %indvars.iv314, i64 %43, i64 13
  %69 = load double, ptr %68, align 8, !tbaa !5
  %70 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %indvars.iv314, i64 %indvars.iv.next311, i64 14
  %71 = load double, ptr %70, align 8, !tbaa !5
  %72 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %38, i64 %indvars.iv310, i64 15
  %73 = load double, ptr %72, align 8, !tbaa !5
  %74 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %indvars.iv.next315, i64 %indvars.iv310, i64 16
  %75 = load double, ptr %74, align 8, !tbaa !5
  %76 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %38, i64 %indvars.iv310, i64 17
  %77 = load double, ptr %76, align 8, !tbaa !5
  %78 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %indvars.iv.next315, i64 %indvars.iv310, i64 18
  %79 = load double, ptr %78, align 8, !tbaa !5
  %80 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %38, i64 %43, i64 19
  %81 = load double, ptr %80, align 8, !tbaa !5
  %82 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %38, i64 %indvars.iv.next311, i64 20
  %83 = load double, ptr %82, align 8, !tbaa !5
  %84 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %indvars.iv.next315, i64 %43, i64 21
  %85 = load double, ptr %84, align 8, !tbaa !5
  %86 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %36, i64 %indvars.iv.next315, i64 %indvars.iv.next311, i64 22
  %87 = load double, ptr %86, align 8, !tbaa !5
  %88 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %38, i64 %43, i64 23
  %89 = load double, ptr %88, align 8, !tbaa !5
  %90 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %38, i64 %indvars.iv.next311, i64 24
  %91 = load double, ptr %90, align 8, !tbaa !5
  %92 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %indvars.iv.next315, i64 %43, i64 25
  %93 = load double, ptr %92, align 8, !tbaa !5
  %94 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %33, i64 %indvars.iv.next319, i64 %indvars.iv.next315, i64 %indvars.iv.next311, i64 26
  %95 = load double, ptr %94, align 8, !tbaa !5
  %96 = getelementptr inbounds [2 x [206 x [204 x [204 x [27 x double]]]]], ptr @grid, i64 0, i64 %35, i64 %indvars.iv318, i64 %indvars.iv314, i64 %indvars.iv310
  %97 = getelementptr inbounds i8, ptr %96, i64 8
  %98 = getelementptr inbounds i8, ptr %96, i64 16
  %99 = getelementptr inbounds i8, ptr %96, i64 24
  %100 = getelementptr inbounds i8, ptr %96, i64 32
  %101 = getelementptr inbounds i8, ptr %96, i64 40
  %102 = getelementptr inbounds i8, ptr %96, i64 48
  %103 = getelementptr inbounds i8, ptr %96, i64 56
  %104 = getelementptr inbounds i8, ptr %96, i64 64
  %105 = getelementptr inbounds i8, ptr %96, i64 72
  %106 = getelementptr inbounds i8, ptr %96, i64 80
  %107 = getelementptr inbounds i8, ptr %96, i64 88
  %108 = getelementptr inbounds i8, ptr %96, i64 96
  %109 = getelementptr inbounds i8, ptr %96, i64 104
  %110 = getelementptr inbounds i8, ptr %96, i64 112
  %111 = getelementptr inbounds i8, ptr %96, i64 120
  %112 = getelementptr inbounds i8, ptr %96, i64 128
  %113 = getelementptr inbounds i8, ptr %96, i64 136
  %114 = getelementptr inbounds i8, ptr %96, i64 144
  %115 = getelementptr inbounds i8, ptr %96, i64 152
  %116 = getelementptr inbounds i8, ptr %96, i64 160
  %117 = getelementptr inbounds i8, ptr %96, i64 168
  %118 = getelementptr inbounds i8, ptr %96, i64 176
  %119 = getelementptr inbounds i8, ptr %96, i64 184
  %120 = getelementptr inbounds i8, ptr %96, i64 192
  %121 = getelementptr inbounds i8, ptr %96, i64 200
  %122 = getelementptr inbounds i8, ptr %96, i64 208
  %123 = trunc nuw nsw i64 %indvars.iv310 to i32
  tail call void @lbm_kernel(double noundef %42, double noundef %45, double noundef %47, double noundef %49, double noundef %51, double noundef %53, double noundef %55, double noundef %57, double noundef %59, double noundef %61, double noundef %63, double noundef %65, double noundef %67, double noundef %69, double noundef %71, double noundef %73, double noundef %75, double noundef %77, double noundef %79, double noundef %81, double noundef %83, double noundef %85, double noundef %87, double noundef %89, double noundef %91, double noundef %93, double noundef %95, ptr noundef nonnull %96, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef nonnull %99, ptr noundef nonnull %100, ptr noundef nonnull %101, ptr noundef nonnull %102, ptr noundef nonnull %103, ptr noundef nonnull %104, ptr noundef nonnull %105, ptr noundef nonnull %106, ptr noundef nonnull %107, ptr noundef nonnull %108, ptr noundef nonnull %109, ptr noundef nonnull %110, ptr noundef nonnull %111, ptr noundef nonnull %112, ptr noundef nonnull %113, ptr noundef nonnull %114, ptr noundef nonnull %115, ptr noundef nonnull %116, ptr noundef nonnull %117, ptr noundef nonnull %118, ptr noundef nonnull %119, ptr noundef nonnull %120, ptr noundef nonnull %121, ptr noundef nonnull %122, i32 noundef %.0297, i32 noundef %37, i32 noundef %39, i32 noundef %123)
  %exitcond313.not = icmp eq i64 %indvars.iv.next311, 203
  br i1 %exitcond313.not, label %124, label %40, !llvm.loop !13

124:                                              ; preds = %40
  %exitcond317.not = icmp eq i64 %indvars.iv.next315, 203
  br i1 %exitcond317.not, label %125, label %.preheader, !llvm.loop !14

125:                                              ; preds = %124
  %exitcond321.not = icmp eq i64 %indvars.iv.next319, 204
  br i1 %exitcond321.not, label %126, label %.preheader281, !llvm.loop !15

126:                                              ; preds = %125
  %127 = add nuw nsw i32 %.0297, 1
  %exitcond322.not = icmp eq i32 %127, 1000
  br i1 %exitcond322.not, label %128, label %.preheader282, !llvm.loop !16

128:                                              ; preds = %126
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @lbm_kernel(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, ptr noalias noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10}
!13 = distinct !{!13, !10}
!14 = distinct !{!14, !10}
!15 = distinct !{!15, !10}
!16 = distinct !{!16, !10}


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