; LLVM IR from bondhugula/pluto :: examples/lbm/ldc/d3q19 (ldc_d3q19)

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

@omega = external dso_local global double, align 8

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

; Function Attrs: nounwind uwtable
define dso_local void @lbm_kernel(double noundef %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, double noundef %17, double noundef %18, ptr noalias noundef %19, ptr noalias noundef %20, ptr noalias noundef %21, ptr noalias noundef %22, ptr noalias noundef %23, ptr noalias noundef %24, ptr noalias noundef %25, ptr noalias noundef %26, ptr noalias noundef %27, ptr noalias noundef %28, ptr noalias noundef %29, ptr noalias noundef %30, ptr noalias noundef %31, ptr noalias noundef %32, ptr noalias noundef %33, ptr noalias noundef %34, ptr noalias noundef %35, ptr noalias noundef %36, ptr noalias noundef %37, i32 noundef %38, i32 noundef %39, i32 noundef %40, i32 noundef %41) #1 {
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca ptr, align 8
  %76 = alloca ptr, align 8
  %77 = alloca ptr, align 8
  %78 = alloca ptr, align 8
  %79 = alloca ptr, align 8
  %80 = alloca ptr, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca double, align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca i32, align 4
  store double %0, ptr %43, align 8, !tbaa !5
  store double %1, ptr %44, align 8, !tbaa !5
  store double %2, ptr %45, align 8, !tbaa !5
  store double %3, ptr %46, align 8, !tbaa !5
  store double %4, ptr %47, align 8, !tbaa !5
  store double %5, ptr %48, align 8, !tbaa !5
  store double %6, ptr %49, align 8, !tbaa !5
  store double %7, ptr %50, align 8, !tbaa !5
  store double %8, ptr %51, align 8, !tbaa !5
  store double %9, ptr %52, align 8, !tbaa !5
  store double %10, ptr %53, align 8, !tbaa !5
  store double %11, ptr %54, align 8, !tbaa !5
  store double %12, ptr %55, align 8, !tbaa !5
  store double %13, ptr %56, align 8, !tbaa !5
  store double %14, ptr %57, align 8, !tbaa !5
  store double %15, ptr %58, align 8, !tbaa !5
  store double %16, ptr %59, align 8, !tbaa !5
  store double %17, ptr %60, align 8, !tbaa !5
  store double %18, ptr %61, align 8, !tbaa !5
  store ptr %19, ptr %62, align 8, !tbaa !9
  store ptr %20, ptr %63, align 8, !tbaa !9
  store ptr %21, ptr %64, align 8, !tbaa !9
  store ptr %22, ptr %65, align 8, !tbaa !9
  store ptr %23, ptr %66, align 8, !tbaa !9
  store ptr %24, ptr %67, align 8, !tbaa !9
  store ptr %25, ptr %68, align 8, !tbaa !9
  store ptr %26, ptr %69, align 8, !tbaa !9
  store ptr %27, ptr %70, align 8, !tbaa !9
  store ptr %28, ptr %71, align 8, !tbaa !9
  store ptr %29, ptr %72, align 8, !tbaa !9
  store ptr %30, ptr %73, align 8, !tbaa !9
  store ptr %31, ptr %74, align 8, !tbaa !9
  store ptr %32, ptr %75, align 8, !tbaa !9
  store ptr %33, ptr %76, align 8, !tbaa !9
  store ptr %34, ptr %77, align 8, !tbaa !9
  store ptr %35, ptr %78, align 8, !tbaa !9
  store ptr %36, ptr %79, align 8, !tbaa !9
  store ptr %37, ptr %80, align 8, !tbaa !9
  store i32 %38, ptr %81, align 4, !tbaa !11
  store i32 %39, ptr %82, align 4, !tbaa !11
  store i32 %40, ptr %83, align 4, !tbaa !11
  store i32 %41, ptr %84, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #3
  %91 = load i32, ptr %82, align 4, !tbaa !11
  %92 = icmp eq i32 %91, 2
  br i1 %92, label %96, label %93

93:                                               ; preds = %42
  %94 = load i32, ptr %82, align 4, !tbaa !11
  %95 = icmp eq i32 %94, 203
  br i1 %95, label %96, label %108

96:                                               ; preds = %93, %42
  %97 = load i32, ptr %84, align 4, !tbaa !11
  %98 = icmp sgt i32 %97, 0
  br i1 %98, label %99, label %108

99:                                               ; preds = %96
  %100 = load i32, ptr %84, align 4, !tbaa !11
  %101 = icmp slt i32 %100, 203
  br i1 %101, label %102, label %108

102:                                              ; preds = %99
  %103 = load i32, ptr %83, align 4, !tbaa !11
  %104 = icmp sgt i32 %103, 0
  br i1 %104, label %105, label %108

105:                                              ; preds = %102
  %106 = load i32, ptr %83, align 4, !tbaa !11
  %107 = icmp slt i32 %106, 203
  br i1 %107, label %144, label %108

108:                                              ; preds = %105, %102, %99, %96, %93
  %109 = load i32, ptr %84, align 4, !tbaa !11
  %110 = icmp eq i32 %109, 1
  br i1 %110, label %114, label %111

111:                                              ; preds = %108
  %112 = load i32, ptr %84, align 4, !tbaa !11
  %113 = icmp eq i32 %112, 202
  br i1 %113, label %114, label %126

114:                                              ; preds = %111, %108
  %115 = load i32, ptr %83, align 4, !tbaa !11
  %116 = icmp sgt i32 %115, 0
  br i1 %116, label %117, label %126

117:                                              ; preds = %114
  %118 = load i32, ptr %83, align 4, !tbaa !11
  %119 = icmp slt i32 %118, 203
  br i1 %119, label %120, label %126

120:                                              ; preds = %117
  %121 = load i32, ptr %82, align 4, !tbaa !11
  %122 = icmp sgt i32 %121, 1
  br i1 %122, label %123, label %126

123:                                              ; preds = %120
  %124 = load i32, ptr %82, align 4, !tbaa !11
  %125 = icmp slt i32 %124, 204
  br i1 %125, label %144, label %126

126:                                              ; preds = %123, %120, %117, %114, %111
  %127 = load i32, ptr %83, align 4, !tbaa !11
  %128 = icmp eq i32 %127, 1
  br i1 %128, label %132, label %129

129:                                              ; preds = %126
  %130 = load i32, ptr %83, align 4, !tbaa !11
  %131 = icmp eq i32 %130, 202
  br i1 %131, label %132, label %183

132:                                              ; preds = %129, %126
  %133 = load i32, ptr %84, align 4, !tbaa !11
  %134 = icmp sgt i32 %133, 0
  br i1 %134, label %135, label %183

135:                                              ; preds = %132
  %136 = load i32, ptr %84, align 4, !tbaa !11
  %137 = icmp slt i32 %136, 203
  br i1 %137, label %138, label %183

138:                                              ; preds = %135
  %139 = load i32, ptr %82, align 4, !tbaa !11
  %140 = icmp sgt i32 %139, 1
  br i1 %140, label %141, label %183

141:                                              ; preds = %138
  %142 = load i32, ptr %82, align 4, !tbaa !11
  %143 = icmp slt i32 %142, 204
  br i1 %143, label %144, label %183

144:                                              ; preds = %141, %123, %105
  %145 = load double, ptr %43, align 8, !tbaa !5
  %146 = load ptr, ptr %62, align 8, !tbaa !9
  store double %145, ptr %146, align 8, !tbaa !5
  %147 = load double, ptr %46, align 8, !tbaa !5
  %148 = load ptr, ptr %66, align 8, !tbaa !9
  store double %147, ptr %148, align 8, !tbaa !5
  %149 = load double, ptr %47, align 8, !tbaa !5
  %150 = load ptr, ptr %65, align 8, !tbaa !9
  store double %149, ptr %150, align 8, !tbaa !5
  %151 = load double, ptr %44, align 8, !tbaa !5
  %152 = load ptr, ptr %64, align 8, !tbaa !9
  store double %151, ptr %152, align 8, !tbaa !5
  %153 = load double, ptr %45, align 8, !tbaa !5
  %154 = load ptr, ptr %63, align 8, !tbaa !9
  store double %153, ptr %154, align 8, !tbaa !5
  %155 = load double, ptr %48, align 8, !tbaa !5
  %156 = load ptr, ptr %68, align 8, !tbaa !9
  store double %155, ptr %156, align 8, !tbaa !5
  %157 = load double, ptr %49, align 8, !tbaa !5
  %158 = load ptr, ptr %67, align 8, !tbaa !9
  store double %157, ptr %158, align 8, !tbaa !5
  %159 = load double, ptr %50, align 8, !tbaa !5
  %160 = load ptr, ptr %72, align 8, !tbaa !9
  store double %159, ptr %160, align 8, !tbaa !5
  %161 = load double, ptr %51, align 8, !tbaa !5
  %162 = load ptr, ptr %71, align 8, !tbaa !9
  store double %161, ptr %162, align 8, !tbaa !5
  %163 = load double, ptr %52, align 8, !tbaa !5
  %164 = load ptr, ptr %70, align 8, !tbaa !9
  store double %163, ptr %164, align 8, !tbaa !5
  %165 = load double, ptr %53, align 8, !tbaa !5
  %166 = load ptr, ptr %69, align 8, !tbaa !9
  store double %165, ptr %166, align 8, !tbaa !5
  %167 = load double, ptr %58, align 8, !tbaa !5
  %168 = load ptr, ptr %80, align 8, !tbaa !9
  store double %167, ptr %168, align 8, !tbaa !5
  %169 = load double, ptr %59, align 8, !tbaa !5
  %170 = load ptr, ptr %79, align 8, !tbaa !9
  store double %169, ptr %170, align 8, !tbaa !5
  %171 = load double, ptr %54, align 8, !tbaa !5
  %172 = load ptr, ptr %76, align 8, !tbaa !9
  store double %171, ptr %172, align 8, !tbaa !5
  %173 = load double, ptr %55, align 8, !tbaa !5
  %174 = load ptr, ptr %75, align 8, !tbaa !9
  store double %173, ptr %174, align 8, !tbaa !5
  %175 = load double, ptr %60, align 8, !tbaa !5
  %176 = load ptr, ptr %78, align 8, !tbaa !9
  store double %175, ptr %176, align 8, !tbaa !5
  %177 = load double, ptr %61, align 8, !tbaa !5
  %178 = load ptr, ptr %77, align 8, !tbaa !9
  store double %177, ptr %178, align 8, !tbaa !5
  %179 = load double, ptr %56, align 8, !tbaa !5
  %180 = load ptr, ptr %74, align 8, !tbaa !9
  store double %179, ptr %180, align 8, !tbaa !5
  %181 = load double, ptr %57, align 8, !tbaa !5
  %182 = load ptr, ptr %73, align 8, !tbaa !9
  store double %181, ptr %182, align 8, !tbaa !5
  store i32 1, ptr %90, align 4
  br label %739

183:                                              ; preds = %141, %138, %135, %132, %129
  %184 = load double, ptr %46, align 8, !tbaa !5
  %185 = load double, ptr %47, align 8, !tbaa !5
  %186 = fadd double %184, %185
  %187 = load double, ptr %44, align 8, !tbaa !5
  %188 = fadd double %186, %187
  %189 = load double, ptr %45, align 8, !tbaa !5
  %190 = fadd double %188, %189
  %191 = load double, ptr %48, align 8, !tbaa !5
  %192 = fadd double %190, %191
  %193 = load double, ptr %49, align 8, !tbaa !5
  %194 = fadd double %192, %193
  %195 = load double, ptr %50, align 8, !tbaa !5
  %196 = fadd double %194, %195
  %197 = load double, ptr %51, align 8, !tbaa !5
  %198 = fadd double %196, %197
  %199 = load double, ptr %52, align 8, !tbaa !5
  %200 = fadd double %198, %199
  %201 = load double, ptr %53, align 8, !tbaa !5
  %202 = fadd double %200, %201
  %203 = load double, ptr %58, align 8, !tbaa !5
  %204 = fadd double %202, %203
  %205 = load double, ptr %59, align 8, !tbaa !5
  %206 = fadd double %204, %205
  %207 = load double, ptr %54, align 8, !tbaa !5
  %208 = fadd double %206, %207
  %209 = load double, ptr %55, align 8, !tbaa !5
  %210 = fadd double %208, %209
  %211 = load double, ptr %60, align 8, !tbaa !5
  %212 = fadd double %210, %211
  %213 = load double, ptr %61, align 8, !tbaa !5
  %214 = fadd double %212, %213
  %215 = load double, ptr %56, align 8, !tbaa !5
  %216 = fadd double %214, %215
  %217 = load double, ptr %57, align 8, !tbaa !5
  %218 = fadd double %216, %217
  %219 = load double, ptr %43, align 8, !tbaa !5
  %220 = fadd double %218, %219
  store double %220, ptr %85, align 8, !tbaa !5
  %221 = load double, ptr %52, align 8, !tbaa !5
  %222 = load double, ptr %50, align 8, !tbaa !5
  %223 = fadd double %221, %222
  %224 = load double, ptr %54, align 8, !tbaa !5
  %225 = fadd double %223, %224
  %226 = load double, ptr %56, align 8, !tbaa !5
  %227 = fadd double %225, %226
  %228 = load double, ptr %44, align 8, !tbaa !5
  %229 = fadd double %227, %228
  %230 = load double, ptr %53, align 8, !tbaa !5
  %231 = load double, ptr %51, align 8, !tbaa !5
  %232 = fadd double %230, %231
  %233 = load double, ptr %55, align 8, !tbaa !5
  %234 = fadd double %232, %233
  %235 = load double, ptr %57, align 8, !tbaa !5
  %236 = fadd double %234, %235
  %237 = load double, ptr %45, align 8, !tbaa !5
  %238 = fadd double %236, %237
  %239 = fsub double %229, %238
  store double %239, ptr %86, align 8, !tbaa !5
  %240 = load double, ptr %86, align 8, !tbaa !5
  %241 = load double, ptr %85, align 8, !tbaa !5
  %242 = fdiv double %240, %241
  store double %242, ptr %86, align 8, !tbaa !5
  %243 = load double, ptr %51, align 8, !tbaa !5
  %244 = load double, ptr %50, align 8, !tbaa !5
  %245 = fadd double %243, %244
  %246 = load double, ptr %58, align 8, !tbaa !5
  %247 = fadd double %245, %246
  %248 = load double, ptr %60, align 8, !tbaa !5
  %249 = fadd double %247, %248
  %250 = load double, ptr %46, align 8, !tbaa !5
  %251 = fadd double %249, %250
  %252 = load double, ptr %53, align 8, !tbaa !5
  %253 = load double, ptr %52, align 8, !tbaa !5
  %254 = fadd double %252, %253
  %255 = load double, ptr %59, align 8, !tbaa !5
  %256 = fadd double %254, %255
  %257 = load double, ptr %61, align 8, !tbaa !5
  %258 = fadd double %256, %257
  %259 = load double, ptr %47, align 8, !tbaa !5
  %260 = fadd double %258, %259
  %261 = fsub double %251, %260
  store double %261, ptr %87, align 8, !tbaa !5
  %262 = load double, ptr %87, align 8, !tbaa !5
  %263 = load double, ptr %85, align 8, !tbaa !5
  %264 = fdiv double %262, %263
  store double %264, ptr %87, align 8, !tbaa !5
  %265 = load double, ptr %58, align 8, !tbaa !5
  %266 = load double, ptr %59, align 8, !tbaa !5
  %267 = fadd double %265, %266
  %268 = load double, ptr %54, align 8, !tbaa !5
  %269 = fadd double %267, %268
  %270 = load double, ptr %55, align 8, !tbaa !5
  %271 = fadd double %269, %270
  %272 = load double, ptr %48, align 8, !tbaa !5
  %273 = fadd double %271, %272
  %274 = load double, ptr %60, align 8, !tbaa !5
  %275 = load double, ptr %61, align 8, !tbaa !5
  %276 = fadd double %274, %275
  %277 = load double, ptr %56, align 8, !tbaa !5
  %278 = fadd double %276, %277
  %279 = load double, ptr %57, align 8, !tbaa !5
  %280 = fadd double %278, %279
  %281 = load double, ptr %49, align 8, !tbaa !5
  %282 = fadd double %280, %281
  %283 = fsub double %273, %282
  store double %283, ptr %88, align 8, !tbaa !5
  %284 = load double, ptr %88, align 8, !tbaa !5
  %285 = load double, ptr %85, align 8, !tbaa !5
  %286 = fdiv double %284, %285
  store double %286, ptr %88, align 8, !tbaa !5
  %287 = load i32, ptr %82, align 4, !tbaa !11
  %288 = icmp eq i32 %287, 202
  br i1 %288, label %289, label %302

289:                                              ; preds = %183
  %290 = load i32, ptr %84, align 4, !tbaa !11
  %291 = icmp sgt i32 %290, 1
  br i1 %291, label %292, label %302

292:                                              ; preds = %289
  %293 = load i32, ptr %84, align 4, !tbaa !11
  %294 = icmp slt i32 %293, 202
  br i1 %294, label %295, label %302

295:                                              ; preds = %292
  %296 = load i32, ptr %83, align 4, !tbaa !11
  %297 = icmp sgt i32 %296, 1
  br i1 %297, label %298, label %302

298:                                              ; preds = %295
  %299 = load i32, ptr %83, align 4, !tbaa !11
  %300 = icmp slt i32 %299, 202
  br i1 %300, label %301, label %302

301:                                              ; preds = %298
  store double 5.000000e-02, ptr %86, align 8, !tbaa !5
  store double 2.000000e-02, ptr %87, align 8, !tbaa !5
  store double 0.000000e+00, ptr %88, align 8, !tbaa !5
  br label %302

302:                                              ; preds = %301, %298, %295, %292, %289, %183
  %303 = load double, ptr %86, align 8, !tbaa !5
  %304 = load double, ptr %86, align 8, !tbaa !5
  %305 = load double, ptr %87, align 8, !tbaa !5
  %306 = load double, ptr %87, align 8, !tbaa !5
  %307 = fmul double %305, %306
  %308 = call double @llvm.fmuladd.f64(double %303, double %304, double %307)
  %309 = load double, ptr %88, align 8, !tbaa !5
  %310 = load double, ptr %88, align 8, !tbaa !5
  %311 = call double @llvm.fmuladd.f64(double %309, double %310, double %308)
  %312 = fmul double 1.500000e+00, %311
  store double %312, ptr %89, align 8, !tbaa !5
  %313 = load double, ptr @omega, align 8, !tbaa !5
  %314 = fsub double 1.000000e+00, %313
  %315 = load double, ptr %43, align 8, !tbaa !5
  %316 = load double, ptr @omega, align 8, !tbaa !5
  %317 = load double, ptr %85, align 8, !tbaa !5
  %318 = fmul double 0x3FD5555555555555, %317
  %319 = load double, ptr %89, align 8, !tbaa !5
  %320 = fsub double 1.000000e+00, %319
  %321 = fmul double %318, %320
  %322 = fmul double %316, %321
  %323 = call double @llvm.fmuladd.f64(double %314, double %315, double %322)
  %324 = load ptr, ptr %62, align 8, !tbaa !9
  store double %323, ptr %324, align 8, !tbaa !5
  %325 = load double, ptr @omega, align 8, !tbaa !5
  %326 = fsub double 1.000000e+00, %325
  %327 = load double, ptr %46, align 8, !tbaa !5
  %328 = load double, ptr @omega, align 8, !tbaa !5
  %329 = load double, ptr %85, align 8, !tbaa !5
  %330 = fmul double 0x3FAC71C71C71C71C, %329
  %331 = load double, ptr %87, align 8, !tbaa !5
  %332 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %331, double 1.000000e+00)
  %333 = load double, ptr %87, align 8, !tbaa !5
  %334 = fmul double 4.500000e+00, %333
  %335 = load double, ptr %87, align 8, !tbaa !5
  %336 = call double @llvm.fmuladd.f64(double %334, double %335, double %332)
  %337 = load double, ptr %89, align 8, !tbaa !5
  %338 = fsub double %336, %337
  %339 = fmul double %330, %338
  %340 = fmul double %328, %339
  %341 = call double @llvm.fmuladd.f64(double %326, double %327, double %340)
  %342 = load ptr, ptr %65, align 8, !tbaa !9
  store double %341, ptr %342, align 8, !tbaa !5
  %343 = load double, ptr @omega, align 8, !tbaa !5
  %344 = fsub double 1.000000e+00, %343
  %345 = load double, ptr %47, align 8, !tbaa !5
  %346 = load double, ptr @omega, align 8, !tbaa !5
  %347 = load double, ptr %85, align 8, !tbaa !5
  %348 = fmul double 0x3FAC71C71C71C71C, %347
  %349 = load double, ptr %87, align 8, !tbaa !5
  %350 = call double @llvm.fmuladd.f64(double -3.000000e+00, double %349, double 1.000000e+00)
  %351 = load double, ptr %87, align 8, !tbaa !5
  %352 = fmul double 4.500000e+00, %351
  %353 = load double, ptr %87, align 8, !tbaa !5
  %354 = call double @llvm.fmuladd.f64(double %352, double %353, double %350)
  %355 = load double, ptr %89, align 8, !tbaa !5
  %356 = fsub double %354, %355
  %357 = fmul double %348, %356
  %358 = fmul double %346, %357
  %359 = call double @llvm.fmuladd.f64(double %344, double %345, double %358)
  %360 = load ptr, ptr %66, align 8, !tbaa !9
  store double %359, ptr %360, align 8, !tbaa !5
  %361 = load double, ptr @omega, align 8, !tbaa !5
  %362 = fsub double 1.000000e+00, %361
  %363 = load double, ptr %44, align 8, !tbaa !5
  %364 = load double, ptr @omega, align 8, !tbaa !5
  %365 = load double, ptr %85, align 8, !tbaa !5
  %366 = fmul double 0x3FAC71C71C71C71C, %365
  %367 = load double, ptr %86, align 8, !tbaa !5
  %368 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %367, double 1.000000e+00)
  %369 = load double, ptr %86, align 8, !tbaa !5
  %370 = fmul double 4.500000e+00, %369
  %371 = load double, ptr %86, align 8, !tbaa !5
  %372 = call double @llvm.fmuladd.f64(double %370, double %371, double %368)
  %373 = load double, ptr %89, align 8, !tbaa !5
  %374 = fsub double %372, %373
  %375 = fmul double %366, %374
  %376 = fmul double %364, %375
  %377 = call double @llvm.fmuladd.f64(double %362, double %363, double %376)
  %378 = load ptr, ptr %63, align 8, !tbaa !9
  store double %377, ptr %378, align 8, !tbaa !5
  %379 = load double, ptr @omega, align 8, !tbaa !5
  %380 = fsub double 1.000000e+00, %379
  %381 = load double, ptr %45, align 8, !tbaa !5
  %382 = load double, ptr @omega, align 8, !tbaa !5
  %383 = load double, ptr %85, align 8, !tbaa !5
  %384 = fmul double 0x3FAC71C71C71C71C, %383
  %385 = load double, ptr %86, align 8, !tbaa !5
  %386 = call double @llvm.fmuladd.f64(double -3.000000e+00, double %385, double 1.000000e+00)
  %387 = load double, ptr %86, align 8, !tbaa !5
  %388 = fmul double 4.500000e+00, %387
  %389 = load double, ptr %86, align 8, !tbaa !5
  %390 = call double @llvm.fmuladd.f64(double %388, double %389, double %386)
  %391 = load double, ptr %89, align 8, !tbaa !5
  %392 = fsub double %390, %391
  %393 = fmul double %384, %392
  %394 = fmul double %382, %393
  %395 = call double @llvm.fmuladd.f64(double %380, double %381, double %394)
  %396 = load ptr, ptr %64, align 8, !tbaa !9
  store double %395, ptr %396, align 8, !tbaa !5
  %397 = load double, ptr @omega, align 8, !tbaa !5
  %398 = fsub double 1.000000e+00, %397
  %399 = load double, ptr %48, align 8, !tbaa !5
  %400 = load double, ptr @omega, align 8, !tbaa !5
  %401 = load double, ptr %85, align 8, !tbaa !5
  %402 = fmul double 0x3FAC71C71C71C71C, %401
  %403 = load double, ptr %88, align 8, !tbaa !5
  %404 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %403, double 1.000000e+00)
  %405 = load double, ptr %88, align 8, !tbaa !5
  %406 = fmul double 4.500000e+00, %405
  %407 = load double, ptr %88, align 8, !tbaa !5
  %408 = call double @llvm.fmuladd.f64(double %406, double %407, double %404)
  %409 = load double, ptr %89, align 8, !tbaa !5
  %410 = fsub double %408, %409
  %411 = fmul double %402, %410
  %412 = fmul double %400, %411
  %413 = call double @llvm.fmuladd.f64(double %398, double %399, double %412)
  %414 = load ptr, ptr %67, align 8, !tbaa !9
  store double %413, ptr %414, align 8, !tbaa !5
  %415 = load double, ptr @omega, align 8, !tbaa !5
  %416 = fsub double 1.000000e+00, %415
  %417 = load double, ptr %49, align 8, !tbaa !5
  %418 = load double, ptr @omega, align 8, !tbaa !5
  %419 = load double, ptr %85, align 8, !tbaa !5
  %420 = fmul double 0x3FAC71C71C71C71C, %419
  %421 = load double, ptr %88, align 8, !tbaa !5
  %422 = call double @llvm.fmuladd.f64(double -3.000000e+00, double %421, double 1.000000e+00)
  %423 = load double, ptr %88, align 8, !tbaa !5
  %424 = fmul double 4.500000e+00, %423
  %425 = load double, ptr %88, align 8, !tbaa !5
  %426 = call double @llvm.fmuladd.f64(double %424, double %425, double %422)
  %427 = load double, ptr %89, align 8, !tbaa !5
  %428 = fsub double %426, %427
  %429 = fmul double %420, %428
  %430 = fmul double %418, %429
  %431 = call double @llvm.fmuladd.f64(double %416, double %417, double %430)
  %432 = load ptr, ptr %68, align 8, !tbaa !9
  store double %431, ptr %432, align 8, !tbaa !5
  %433 = load double, ptr @omega, align 8, !tbaa !5
  %434 = fsub double 1.000000e+00, %433
  %435 = load double, ptr %50, align 8, !tbaa !5
  %436 = load double, ptr @omega, align 8, !tbaa !5
  %437 = load double, ptr %85, align 8, !tbaa !5
  %438 = fmul double 0x3F9C71C71C71C71C, %437
  %439 = load double, ptr %86, align 8, !tbaa !5
  %440 = load double, ptr %87, align 8, !tbaa !5
  %441 = fadd double %439, %440
  %442 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %441, double 1.000000e+00)
  %443 = load double, ptr %86, align 8, !tbaa !5
  %444 = load double, ptr %87, align 8, !tbaa !5
  %445 = fadd double %443, %444
  %446 = fmul double 4.500000e+00, %445
  %447 = load double, ptr %86, align 8, !tbaa !5
  %448 = load double, ptr %87, align 8, !tbaa !5
  %449 = fadd double %447, %448
  %450 = call double @llvm.fmuladd.f64(double %446, double %449, double %442)
  %451 = load double, ptr %89, align 8, !tbaa !5
  %452 = fsub double %450, %451
  %453 = fmul double %438, %452
  %454 = fmul double %436, %453
  %455 = call double @llvm.fmuladd.f64(double %434, double %435, double %454)
  %456 = load ptr, ptr %69, align 8, !tbaa !9
  store double %455, ptr %456, align 8, !tbaa !5
  %457 = load double, ptr @omega, align 8, !tbaa !5
  %458 = fsub double 1.000000e+00, %457
  %459 = load double, ptr %51, align 8, !tbaa !5
  %460 = load double, ptr @omega, align 8, !tbaa !5
  %461 = load double, ptr %85, align 8, !tbaa !5
  %462 = fmul double 0x3F9C71C71C71C71C, %461
  %463 = load double, ptr %86, align 8, !tbaa !5
  %464 = fneg double %463
  %465 = load double, ptr %87, align 8, !tbaa !5
  %466 = fadd double %464, %465
  %467 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %466, double 1.000000e+00)
  %468 = load double, ptr %86, align 8, !tbaa !5
  %469 = fneg double %468
  %470 = load double, ptr %87, align 8, !tbaa !5
  %471 = fadd double %469, %470
  %472 = fmul double 4.500000e+00, %471
  %473 = load double, ptr %86, align 8, !tbaa !5
  %474 = fneg double %473
  %475 = load double, ptr %87, align 8, !tbaa !5
  %476 = fadd double %474, %475
  %477 = call double @llvm.fmuladd.f64(double %472, double %476, double %467)
  %478 = load double, ptr %89, align 8, !tbaa !5
  %479 = fsub double %477, %478
  %480 = fmul double %462, %479
  %481 = fmul double %460, %480
  %482 = call double @llvm.fmuladd.f64(double %458, double %459, double %481)
  %483 = load ptr, ptr %70, align 8, !tbaa !9
  store double %482, ptr %483, align 8, !tbaa !5
  %484 = load double, ptr @omega, align 8, !tbaa !5
  %485 = fsub double 1.000000e+00, %484
  %486 = load double, ptr %52, align 8, !tbaa !5
  %487 = load double, ptr @omega, align 8, !tbaa !5
  %488 = load double, ptr %85, align 8, !tbaa !5
  %489 = fmul double 0x3F9C71C71C71C71C, %488
  %490 = load double, ptr %86, align 8, !tbaa !5
  %491 = load double, ptr %87, align 8, !tbaa !5
  %492 = fsub double %490, %491
  %493 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %492, double 1.000000e+00)
  %494 = load double, ptr %86, align 8, !tbaa !5
  %495 = load double, ptr %87, align 8, !tbaa !5
  %496 = fsub double %494, %495
  %497 = fmul double 4.500000e+00, %496
  %498 = load double, ptr %86, align 8, !tbaa !5
  %499 = load double, ptr %87, align 8, !tbaa !5
  %500 = fsub double %498, %499
  %501 = call double @llvm.fmuladd.f64(double %497, double %500, double %493)
  %502 = load double, ptr %89, align 8, !tbaa !5
  %503 = fsub double %501, %502
  %504 = fmul double %489, %503
  %505 = fmul double %487, %504
  %506 = call double @llvm.fmuladd.f64(double %485, double %486, double %505)
  %507 = load ptr, ptr %71, align 8, !tbaa !9
  store double %506, ptr %507, align 8, !tbaa !5
  %508 = load double, ptr @omega, align 8, !tbaa !5
  %509 = fsub double 1.000000e+00, %508
  %510 = load double, ptr %53, align 8, !tbaa !5
  %511 = load double, ptr @omega, align 8, !tbaa !5
  %512 = load double, ptr %85, align 8, !tbaa !5
  %513 = fmul double 0x3F9C71C71C71C71C, %512
  %514 = load double, ptr %86, align 8, !tbaa !5
  %515 = fneg double %514
  %516 = load double, ptr %87, align 8, !tbaa !5
  %517 = fsub double %515, %516
  %518 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %517, double 1.000000e+00)
  %519 = load double, ptr %86, align 8, !tbaa !5
  %520 = fneg double %519
  %521 = load double, ptr %87, align 8, !tbaa !5
  %522 = fsub double %520, %521
  %523 = fmul double 4.500000e+00, %522
  %524 = load double, ptr %86, align 8, !tbaa !5
  %525 = fneg double %524
  %526 = load double, ptr %87, align 8, !tbaa !5
  %527 = fsub double %525, %526
  %528 = call double @llvm.fmuladd.f64(double %523, double %527, double %518)
  %529 = load double, ptr %89, align 8, !tbaa !5
  %530 = fsub double %528, %529
  %531 = fmul double %513, %530
  %532 = fmul double %511, %531
  %533 = call double @llvm.fmuladd.f64(double %509, double %510, double %532)
  %534 = load ptr, ptr %72, align 8, !tbaa !9
  store double %533, ptr %534, align 8, !tbaa !5
  %535 = load double, ptr @omega, align 8, !tbaa !5
  %536 = fsub double 1.000000e+00, %535
  %537 = load double, ptr %58, align 8, !tbaa !5
  %538 = load double, ptr @omega, align 8, !tbaa !5
  %539 = load double, ptr %85, align 8, !tbaa !5
  %540 = fmul double 0x3F9C71C71C71C71C, %539
  %541 = load double, ptr %87, align 8, !tbaa !5
  %542 = load double, ptr %88, align 8, !tbaa !5
  %543 = fadd double %541, %542
  %544 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %543, double 1.000000e+00)
  %545 = load double, ptr %87, align 8, !tbaa !5
  %546 = load double, ptr %88, align 8, !tbaa !5
  %547 = fadd double %545, %546
  %548 = fmul double 4.500000e+00, %547
  %549 = load double, ptr %87, align 8, !tbaa !5
  %550 = load double, ptr %88, align 8, !tbaa !5
  %551 = fadd double %549, %550
  %552 = call double @llvm.fmuladd.f64(double %548, double %551, double %544)
  %553 = load double, ptr %89, align 8, !tbaa !5
  %554 = fsub double %552, %553
  %555 = fmul double %540, %554
  %556 = fmul double %538, %555
  %557 = call double @llvm.fmuladd.f64(double %536, double %537, double %556)
  %558 = load ptr, ptr %77, align 8, !tbaa !9
  store double %557, ptr %558, align 8, !tbaa !5
  %559 = load double, ptr @omega, align 8, !tbaa !5
  %560 = fsub double 1.000000e+00, %559
  %561 = load double, ptr %59, align 8, !tbaa !5
  %562 = load double, ptr @omega, align 8, !tbaa !5
  %563 = load double, ptr %85, align 8, !tbaa !5
  %564 = fmul double 0x3F9C71C71C71C71C, %563
  %565 = load double, ptr %87, align 8, !tbaa !5
  %566 = fneg double %565
  %567 = load double, ptr %88, align 8, !tbaa !5
  %568 = fadd double %566, %567
  %569 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %568, double 1.000000e+00)
  %570 = load double, ptr %87, align 8, !tbaa !5
  %571 = fneg double %570
  %572 = load double, ptr %88, align 8, !tbaa !5
  %573 = fadd double %571, %572
  %574 = fmul double 4.500000e+00, %573
  %575 = load double, ptr %87, align 8, !tbaa !5
  %576 = fneg double %575
  %577 = load double, ptr %88, align 8, !tbaa !5
  %578 = fadd double %576, %577
  %579 = call double @llvm.fmuladd.f64(double %574, double %578, double %569)
  %580 = load double, ptr %89, align 8, !tbaa !5
  %581 = fsub double %579, %580
  %582 = fmul double %564, %581
  %583 = fmul double %562, %582
  %584 = call double @llvm.fmuladd.f64(double %560, double %561, double %583)
  %585 = load ptr, ptr %78, align 8, !tbaa !9
  store double %584, ptr %585, align 8, !tbaa !5
  %586 = load double, ptr @omega, align 8, !tbaa !5
  %587 = fsub double 1.000000e+00, %586
  %588 = load double, ptr %54, align 8, !tbaa !5
  %589 = load double, ptr @omega, align 8, !tbaa !5
  %590 = load double, ptr %85, align 8, !tbaa !5
  %591 = fmul double 0x3F9C71C71C71C71C, %590
  %592 = load double, ptr %86, align 8, !tbaa !5
  %593 = load double, ptr %88, align 8, !tbaa !5
  %594 = fadd double %592, %593
  %595 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %594, double 1.000000e+00)
  %596 = load double, ptr %86, align 8, !tbaa !5
  %597 = load double, ptr %88, align 8, !tbaa !5
  %598 = fadd double %596, %597
  %599 = fmul double 4.500000e+00, %598
  %600 = load double, ptr %86, align 8, !tbaa !5
  %601 = load double, ptr %88, align 8, !tbaa !5
  %602 = fadd double %600, %601
  %603 = call double @llvm.fmuladd.f64(double %599, double %602, double %595)
  %604 = load double, ptr %89, align 8, !tbaa !5
  %605 = fsub double %603, %604
  %606 = fmul double %591, %605
  %607 = fmul double %589, %606
  %608 = call double @llvm.fmuladd.f64(double %587, double %588, double %607)
  %609 = load ptr, ptr %73, align 8, !tbaa !9
  store double %608, ptr %609, align 8, !tbaa !5
  %610 = load double, ptr @omega, align 8, !tbaa !5
  %611 = fsub double 1.000000e+00, %610
  %612 = load double, ptr %55, align 8, !tbaa !5
  %613 = load double, ptr @omega, align 8, !tbaa !5
  %614 = load double, ptr %85, align 8, !tbaa !5
  %615 = fmul double 0x3F9C71C71C71C71C, %614
  %616 = load double, ptr %86, align 8, !tbaa !5
  %617 = fneg double %616
  %618 = load double, ptr %88, align 8, !tbaa !5
  %619 = fadd double %617, %618
  %620 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %619, double 1.000000e+00)
  %621 = load double, ptr %86, align 8, !tbaa !5
  %622 = fneg double %621
  %623 = load double, ptr %88, align 8, !tbaa !5
  %624 = fadd double %622, %623
  %625 = fmul double 4.500000e+00, %624
  %626 = load double, ptr %86, align 8, !tbaa !5
  %627 = fneg double %626
  %628 = load double, ptr %88, align 8, !tbaa !5
  %629 = fadd double %627, %628
  %630 = call double @llvm.fmuladd.f64(double %625, double %629, double %620)
  %631 = load double, ptr %89, align 8, !tbaa !5
  %632 = fsub double %630, %631
  %633 = fmul double %615, %632
  %634 = fmul double %613, %633
  %635 = call double @llvm.fmuladd.f64(double %611, double %612, double %634)
  %636 = load ptr, ptr %74, align 8, !tbaa !9
  store double %635, ptr %636, align 8, !tbaa !5
  %637 = load double, ptr @omega, align 8, !tbaa !5
  %638 = fsub double 1.000000e+00, %637
  %639 = load double, ptr %60, align 8, !tbaa !5
  %640 = load double, ptr @omega, align 8, !tbaa !5
  %641 = load double, ptr %85, align 8, !tbaa !5
  %642 = fmul double 0x3F9C71C71C71C71C, %641
  %643 = load double, ptr %87, align 8, !tbaa !5
  %644 = load double, ptr %88, align 8, !tbaa !5
  %645 = fsub double %643, %644
  %646 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %645, double 1.000000e+00)
  %647 = load double, ptr %87, align 8, !tbaa !5
  %648 = load double, ptr %88, align 8, !tbaa !5
  %649 = fsub double %647, %648
  %650 = fmul double 4.500000e+00, %649
  %651 = load double, ptr %87, align 8, !tbaa !5
  %652 = load double, ptr %88, align 8, !tbaa !5
  %653 = fsub double %651, %652
  %654 = call double @llvm.fmuladd.f64(double %650, double %653, double %646)
  %655 = load double, ptr %89, align 8, !tbaa !5
  %656 = fsub double %654, %655
  %657 = fmul double %642, %656
  %658 = fmul double %640, %657
  %659 = call double @llvm.fmuladd.f64(double %638, double %639, double %658)
  %660 = load ptr, ptr %79, align 8, !tbaa !9
  store double %659, ptr %660, align 8, !tbaa !5
  %661 = load double, ptr @omega, align 8, !tbaa !5
  %662 = fsub double 1.000000e+00, %661
  %663 = load double, ptr %61, align 8, !tbaa !5
  %664 = load double, ptr @omega, align 8, !tbaa !5
  %665 = load double, ptr %85, align 8, !tbaa !5
  %666 = fmul double 0x3F9C71C71C71C71C, %665
  %667 = load double, ptr %87, align 8, !tbaa !5
  %668 = fneg double %667
  %669 = load double, ptr %88, align 8, !tbaa !5
  %670 = fsub double %668, %669
  %671 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %670, double 1.000000e+00)
  %672 = load double, ptr %87, align 8, !tbaa !5
  %673 = fneg double %672
  %674 = load double, ptr %88, align 8, !tbaa !5
  %675 = fsub double %673, %674
  %676 = fmul double 4.500000e+00, %675
  %677 = load double, ptr %87, align 8, !tbaa !5
  %678 = fneg double %677
  %679 = load double, ptr %88, align 8, !tbaa !5
  %680 = fsub double %678, %679
  %681 = call double @llvm.fmuladd.f64(double %676, double %680, double %671)
  %682 = load double, ptr %89, align 8, !tbaa !5
  %683 = fsub double %681, %682
  %684 = fmul double %666, %683
  %685 = fmul double %664, %684
  %686 = call double @llvm.fmuladd.f64(double %662, double %663, double %685)
  %687 = load ptr, ptr %80, align 8, !tbaa !9
  store double %686, ptr %687, align 8, !tbaa !5
  %688 = load double, ptr @omega, align 8, !tbaa !5
  %689 = fsub double 1.000000e+00, %688
  %690 = load double, ptr %56, align 8, !tbaa !5
  %691 = load double, ptr @omega, align 8, !tbaa !5
  %692 = load double, ptr %85, align 8, !tbaa !5
  %693 = fmul double 0x3F9C71C71C71C71C, %692
  %694 = load double, ptr %86, align 8, !tbaa !5
  %695 = load double, ptr %88, align 8, !tbaa !5
  %696 = fsub double %694, %695
  %697 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %696, double 1.000000e+00)
  %698 = load double, ptr %86, align 8, !tbaa !5
  %699 = load double, ptr %88, align 8, !tbaa !5
  %700 = fsub double %698, %699
  %701 = fmul double 4.500000e+00, %700
  %702 = load double, ptr %86, align 8, !tbaa !5
  %703 = load double, ptr %88, align 8, !tbaa !5
  %704 = fsub double %702, %703
  %705 = call double @llvm.fmuladd.f64(double %701, double %704, double %697)
  %706 = load double, ptr %89, align 8, !tbaa !5
  %707 = fsub double %705, %706
  %708 = fmul double %693, %707
  %709 = fmul double %691, %708
  %710 = call double @llvm.fmuladd.f64(double %689, double %690, double %709)
  %711 = load ptr, ptr %75, align 8, !tbaa !9
  store double %710, ptr %711, align 8, !tbaa !5
  %712 = load double, ptr @omega, align 8, !tbaa !5
  %713 = fsub double 1.000000e+00, %712
  %714 = load double, ptr %57, align 8, !tbaa !5
  %715 = load double, ptr @omega, align 8, !tbaa !5
  %716 = load double, ptr %85, align 8, !tbaa !5
  %717 = fmul double 0x3F9C71C71C71C71C, %716
  %718 = load double, ptr %86, align 8, !tbaa !5
  %719 = fneg double %718
  %720 = load double, ptr %88, align 8, !tbaa !5
  %721 = fsub double %719, %720
  %722 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %721, double 1.000000e+00)
  %723 = load double, ptr %86, align 8, !tbaa !5
  %724 = fneg double %723
  %725 = load double, ptr %88, align 8, !tbaa !5
  %726 = fsub double %724, %725
  %727 = fmul double 4.500000e+00, %726
  %728 = load double, ptr %86, align 8, !tbaa !5
  %729 = fneg double %728
  %730 = load double, ptr %88, align 8, !tbaa !5
  %731 = fsub double %729, %730
  %732 = call double @llvm.fmuladd.f64(double %727, double %731, double %722)
  %733 = load double, ptr %89, align 8, !tbaa !5
  %734 = fsub double %732, %733
  %735 = fmul double %717, %734
  %736 = fmul double %715, %735
  %737 = call double @llvm.fmuladd.f64(double %713, double %714, double %736)
  %738 = load ptr, ptr %76, align 8, !tbaa !9
  store double %737, ptr %738, align 8, !tbaa !5
  store i32 0, ptr %90, align 4
  br label %739

739:                                              ; preds = %302, %144
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  %740 = load i32, ptr %90, align 4
  switch i32 %740, label %742 [
    i32 0, label %741
    i32 1, label %741
  ]

741:                                              ; preds = %739, %739
  ret void

742:                                              ; preds = %739
  unreachable
}

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}


; 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

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: write, inaccessiblemem: none) uwtable
define dso_local void @lbm_kernel(double noundef %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, double noundef %17, double noundef %18, ptr noalias nocapture noundef writeonly %19, ptr noalias nocapture noundef writeonly %20, ptr noalias nocapture noundef writeonly %21, ptr noalias nocapture noundef writeonly %22, ptr noalias nocapture noundef writeonly %23, ptr noalias nocapture noundef writeonly %24, ptr noalias nocapture noundef writeonly %25, ptr noalias nocapture noundef writeonly %26, ptr noalias nocapture noundef writeonly %27, ptr noalias nocapture noundef writeonly %28, ptr noalias nocapture noundef writeonly %29, ptr noalias nocapture noundef writeonly %30, ptr noalias nocapture noundef writeonly %31, ptr noalias nocapture noundef writeonly %32, ptr noalias nocapture noundef writeonly %33, ptr noalias nocapture noundef writeonly %34, ptr noalias nocapture noundef writeonly %35, ptr noalias nocapture noundef writeonly %36, ptr noalias nocapture noundef writeonly %37, i32 noundef %38, i32 noundef %39, i32 noundef %40, i32 noundef %41) local_unnamed_addr #0 {
  %43 = icmp eq i32 %39, 2
  %44 = icmp eq i32 %39, 203
  %or.cond = or i1 %43, %44
  %45 = add i32 %41, -1
  %46 = icmp ult i32 %45, 202
  %or.cond5 = and i1 %or.cond, %46
  %47 = add i32 %40, -1
  %48 = icmp ult i32 %47, 202
  %or.cond9 = and i1 %48, %or.cond5
  br i1 %or.cond9, label %57, label %49

49:                                               ; preds = %42
  %50 = icmp eq i32 %41, 1
  %51 = icmp eq i32 %41, 202
  %or.cond11 = or i1 %50, %51
  %or.cond15 = and i1 %48, %or.cond11
  %52 = add i32 %39, -2
  %53 = icmp ult i32 %52, 202
  %or.cond19 = and i1 %53, %or.cond15
  br i1 %or.cond19, label %57, label %54

54:                                               ; preds = %49
  %55 = icmp eq i32 %40, 1
  %56 = icmp eq i32 %40, 202
  %or.cond21 = or i1 %55, %56
  %or.cond25 = and i1 %or.cond21, %46
  %or.cond29 = and i1 %53, %or.cond25
  br i1 %or.cond29, label %57, label %58

57:                                               ; preds = %54, %49, %42
  store double %0, ptr %19, align 8, !tbaa !5
  store double %3, ptr %23, align 8, !tbaa !5
  store double %4, ptr %22, align 8, !tbaa !5
  store double %1, ptr %21, align 8, !tbaa !5
  store double %2, ptr %20, align 8, !tbaa !5
  store double %5, ptr %25, align 8, !tbaa !5
  store double %6, ptr %24, align 8, !tbaa !5
  store double %7, ptr %29, align 8, !tbaa !5
  store double %8, ptr %28, align 8, !tbaa !5
  store double %9, ptr %27, align 8, !tbaa !5
  store double %10, ptr %26, align 8, !tbaa !5
  store double %15, ptr %37, align 8, !tbaa !5
  store double %16, ptr %36, align 8, !tbaa !5
  store double %11, ptr %33, align 8, !tbaa !5
  store double %12, ptr %32, align 8, !tbaa !5
  store double %17, ptr %35, align 8, !tbaa !5
  store double %18, ptr %34, align 8, !tbaa !5
  store double %13, ptr %31, align 8, !tbaa !5
  store double %14, ptr %30, align 8, !tbaa !5
  br label %285

58:                                               ; preds = %54
  %59 = fadd double %3, %4
  %60 = fadd double %59, %1
  %61 = fadd double %60, %2
  %62 = fadd double %61, %5
  %63 = fadd double %62, %6
  %64 = fadd double %63, %7
  %65 = fadd double %64, %8
  %66 = fadd double %65, %9
  %67 = fadd double %66, %10
  %68 = fadd double %67, %15
  %69 = fadd double %68, %16
  %70 = fadd double %69, %11
  %71 = fadd double %70, %12
  %72 = fadd double %71, %17
  %73 = insertelement <2 x double> poison, double %7, i64 0
  %74 = insertelement <2 x double> %73, double %8, i64 1
  %75 = insertelement <2 x double> poison, double %9, i64 0
  %76 = insertelement <2 x double> %75, double %10, i64 1
  %77 = fadd <2 x double> %74, %76
  %78 = insertelement <2 x double> poison, double %11, i64 0
  %79 = insertelement <2 x double> %78, double %12, i64 1
  %80 = fadd <2 x double> %77, %79
  %81 = insertelement <2 x double> poison, double %13, i64 0
  %82 = insertelement <2 x double> %81, double %14, i64 1
  %83 = fadd <2 x double> %80, %82
  %84 = insertelement <2 x double> poison, double %1, i64 0
  %85 = insertelement <2 x double> %84, double %2, i64 1
  %86 = fadd <2 x double> %83, %85
  %87 = insertelement <2 x double> %73, double %9, i64 1
  %88 = insertelement <2 x double> poison, double %8, i64 0
  %89 = insertelement <2 x double> %88, double %10, i64 1
  %90 = fadd <2 x double> %87, %89
  %91 = insertelement <2 x double> poison, double %15, i64 0
  %92 = insertelement <2 x double> %91, double %16, i64 1
  %93 = fadd <2 x double> %90, %92
  %94 = insertelement <2 x double> poison, double %17, i64 0
  %95 = insertelement <2 x double> %94, double %18, i64 1
  %96 = fadd <2 x double> %93, %95
  %97 = insertelement <2 x double> poison, double %3, i64 0
  %98 = insertelement <2 x double> %97, double %4, i64 1
  %99 = fadd <2 x double> %96, %98
  %100 = insertelement <2 x double> %91, double %72, i64 1
  %101 = insertelement <2 x double> poison, double %16, i64 0
  %102 = insertelement <2 x double> %101, double %18, i64 1
  %103 = fadd <2 x double> %100, %102
  %104 = insertelement <2 x double> %78, double %13, i64 1
  %105 = fadd <2 x double> %103, %104
  %106 = insertelement <2 x double> poison, double %12, i64 0
  %107 = insertelement <2 x double> %106, double %14, i64 1
  %108 = fadd <2 x double> %105, %107
  %109 = insertelement <2 x double> poison, double %5, i64 0
  %110 = insertelement <2 x double> %109, double %0, i64 1
  %111 = fadd <2 x double> %108, %110
  %112 = extractelement <2 x double> %111, i64 1
  %113 = fadd double %17, %18
  %114 = fadd double %113, %13
  %115 = fadd double %114, %14
  %116 = fadd double %115, %6
  %117 = extractelement <2 x double> %111, i64 0
  %118 = fsub double %117, %116
  %119 = fdiv double %118, %112
  %120 = icmp eq i32 %39, 202
  %121 = add i32 %41, -2
  %122 = icmp ult i32 %121, 200
  %or.cond33 = and i1 %120, %122
  %123 = add i32 %40, -2
  %124 = icmp ult i32 %123, 200
  %or.cond37 = and i1 %124, %or.cond33
  %.0324 = select i1 %or.cond37, double 0.000000e+00, double %119
  %125 = shufflevector <2 x double> %86, <2 x double> %99, <2 x i32> <i32 0, i32 2>
  %126 = shufflevector <2 x double> %86, <2 x double> %99, <2 x i32> <i32 1, i32 3>
  %127 = fsub <2 x double> %125, %126
  %128 = shufflevector <2 x double> %111, <2 x double> poison, <2 x i32> <i32 1, i32 1>
  %129 = fdiv <2 x double> %127, %128
  %130 = insertelement <2 x i1> poison, i1 %or.cond37, i64 0
  %131 = shufflevector <2 x i1> %130, <2 x i1> poison, <2 x i32> zeroinitializer
  %132 = select <2 x i1> %131, <2 x double> <double 5.000000e-02, double 2.000000e-02>, <2 x double> %129
  %133 = extractelement <2 x double> %132, i64 1
  %134 = fmul double %133, %133
  %135 = extractelement <2 x double> %132, i64 0
  %136 = tail call double @llvm.fmuladd.f64(double %135, double %135, double %134)
  %137 = tail call double @llvm.fmuladd.f64(double %.0324, double %.0324, double %136)
  %138 = fmul double %137, 1.500000e+00
  %139 = load double, ptr @omega, align 8, !tbaa !5
  %140 = fsub double 1.000000e+00, %139
  %141 = fmul double %112, 0x3FD5555555555555
  %142 = fsub double 1.000000e+00, %138
  %143 = fmul double %141, %142
  %144 = fmul double %143, %139
  %145 = tail call double @llvm.fmuladd.f64(double %140, double %0, double %144)
  store double %145, ptr %19, align 8, !tbaa !5
  %146 = fmul double %112, 0x3FAC71C71C71C71C
  %147 = tail call double @llvm.fmuladd.f64(double %133, double 3.000000e+00, double 1.000000e+00)
  %148 = fmul double %133, 4.500000e+00
  %149 = tail call double @llvm.fmuladd.f64(double %148, double %133, double %147)
  %150 = fsub double %149, %138
  %151 = fmul double %146, %150
  %152 = fmul double %151, %139
  %153 = tail call double @llvm.fmuladd.f64(double %140, double %3, double %152)
  store double %153, ptr %22, align 8, !tbaa !5
  %154 = tail call double @llvm.fmuladd.f64(double %133, double -3.000000e+00, double 1.000000e+00)
  %155 = tail call double @llvm.fmuladd.f64(double %148, double %133, double %154)
  %156 = fsub double %155, %138
  %157 = fmul double %146, %156
  %158 = fmul double %157, %139
  %159 = tail call double @llvm.fmuladd.f64(double %140, double %4, double %158)
  store double %159, ptr %23, align 8, !tbaa !5
  %160 = tail call double @llvm.fmuladd.f64(double %135, double 3.000000e+00, double 1.000000e+00)
  %161 = fmul double %135, 4.500000e+00
  %162 = tail call double @llvm.fmuladd.f64(double %161, double %135, double %160)
  %163 = fsub double %162, %138
  %164 = fmul double %146, %163
  %165 = fmul double %164, %139
  %166 = tail call double @llvm.fmuladd.f64(double %140, double %1, double %165)
  store double %166, ptr %20, align 8, !tbaa !5
  %167 = tail call double @llvm.fmuladd.f64(double %135, double -3.000000e+00, double 1.000000e+00)
  %168 = tail call double @llvm.fmuladd.f64(double %161, double %135, double %167)
  %169 = fsub double %168, %138
  %170 = fmul double %146, %169
  %171 = fmul double %170, %139
  %172 = tail call double @llvm.fmuladd.f64(double %140, double %2, double %171)
  store double %172, ptr %21, align 8, !tbaa !5
  %173 = tail call double @llvm.fmuladd.f64(double %.0324, double 3.000000e+00, double 1.000000e+00)
  %174 = fmul double %.0324, 4.500000e+00
  %175 = tail call double @llvm.fmuladd.f64(double %174, double %.0324, double %173)
  %176 = fsub double %175, %138
  %177 = fmul double %146, %176
  %178 = fmul double %177, %139
  %179 = tail call double @llvm.fmuladd.f64(double %140, double %5, double %178)
  store double %179, ptr %24, align 8, !tbaa !5
  %180 = tail call double @llvm.fmuladd.f64(double %.0324, double -3.000000e+00, double 1.000000e+00)
  %181 = tail call double @llvm.fmuladd.f64(double %174, double %.0324, double %180)
  %182 = fsub double %181, %138
  %183 = fmul double %146, %182
  %184 = fmul double %183, %139
  %185 = tail call double @llvm.fmuladd.f64(double %140, double %6, double %184)
  store double %185, ptr %25, align 8, !tbaa !5
  %186 = fmul double %112, 0x3F9C71C71C71C71C
  %187 = fadd double %135, %133
  %188 = tail call double @llvm.fmuladd.f64(double %187, double 3.000000e+00, double 1.000000e+00)
  %189 = fmul double %187, 4.500000e+00
  %190 = tail call double @llvm.fmuladd.f64(double %189, double %187, double %188)
  %191 = fsub double %190, %138
  %192 = fmul double %186, %191
  %193 = fmul double %192, %139
  %194 = tail call double @llvm.fmuladd.f64(double %140, double %7, double %193)
  store double %194, ptr %26, align 8, !tbaa !5
  %195 = fneg double %135
  %196 = fsub double %133, %135
  %197 = tail call double @llvm.fmuladd.f64(double %196, double 3.000000e+00, double 1.000000e+00)
  %198 = fmul double %196, 4.500000e+00
  %199 = tail call double @llvm.fmuladd.f64(double %198, double %196, double %197)
  %200 = fsub double %199, %138
  %201 = fmul double %186, %200
  %202 = fmul double %201, %139
  %203 = tail call double @llvm.fmuladd.f64(double %140, double %8, double %202)
  store double %203, ptr %27, align 8, !tbaa !5
  %204 = fsub double %135, %133
  %205 = tail call double @llvm.fmuladd.f64(double %204, double 3.000000e+00, double 1.000000e+00)
  %206 = fmul double %204, 4.500000e+00
  %207 = tail call double @llvm.fmuladd.f64(double %206, double %204, double %205)
  %208 = fsub double %207, %138
  %209 = fmul double %186, %208
  %210 = fmul double %209, %139
  %211 = tail call double @llvm.fmuladd.f64(double %140, double %9, double %210)
  store double %211, ptr %28, align 8, !tbaa !5
  %212 = fsub double %195, %133
  %213 = tail call double @llvm.fmuladd.f64(double %212, double 3.000000e+00, double 1.000000e+00)
  %214 = fmul double %212, 4.500000e+00
  %215 = tail call double @llvm.fmuladd.f64(double %214, double %212, double %213)
  %216 = fsub double %215, %138
  %217 = fmul double %186, %216
  %218 = fmul double %217, %139
  %219 = tail call double @llvm.fmuladd.f64(double %140, double %10, double %218)
  store double %219, ptr %29, align 8, !tbaa !5
  %220 = fadd double %133, %.0324
  %221 = tail call double @llvm.fmuladd.f64(double %220, double 3.000000e+00, double 1.000000e+00)
  %222 = fmul double %220, 4.500000e+00
  %223 = tail call double @llvm.fmuladd.f64(double %222, double %220, double %221)
  %224 = fsub double %223, %138
  %225 = fmul double %186, %224
  %226 = fmul double %225, %139
  %227 = tail call double @llvm.fmuladd.f64(double %140, double %15, double %226)
  store double %227, ptr %34, align 8, !tbaa !5
  %228 = fneg double %133
  %229 = fsub double %.0324, %133
  %230 = tail call double @llvm.fmuladd.f64(double %229, double 3.000000e+00, double 1.000000e+00)
  %231 = fmul double %229, 4.500000e+00
  %232 = tail call double @llvm.fmuladd.f64(double %231, double %229, double %230)
  %233 = fsub double %232, %138
  %234 = fmul double %186, %233
  %235 = fmul double %234, %139
  %236 = tail call double @llvm.fmuladd.f64(double %140, double %16, double %235)
  store double %236, ptr %35, align 8, !tbaa !5
  %237 = fadd double %135, %.0324
  %238 = tail call double @llvm.fmuladd.f64(double %237, double 3.000000e+00, double 1.000000e+00)
  %239 = fmul double %237, 4.500000e+00
  %240 = tail call double @llvm.fmuladd.f64(double %239, double %237, double %238)
  %241 = fsub double %240, %138
  %242 = fmul double %186, %241
  %243 = fmul double %242, %139
  %244 = tail call double @llvm.fmuladd.f64(double %140, double %11, double %243)
  store double %244, ptr %30, align 8, !tbaa !5
  %245 = fsub double %.0324, %135
  %246 = tail call double @llvm.fmuladd.f64(double %245, double 3.000000e+00, double 1.000000e+00)
  %247 = fmul double %245, 4.500000e+00
  %248 = tail call double @llvm.fmuladd.f64(double %247, double %245, double %246)
  %249 = fsub double %248, %138
  %250 = fmul double %186, %249
  %251 = fmul double %250, %139
  %252 = tail call double @llvm.fmuladd.f64(double %140, double %12, double %251)
  store double %252, ptr %31, align 8, !tbaa !5
  %253 = fsub double %133, %.0324
  %254 = tail call double @llvm.fmuladd.f64(double %253, double 3.000000e+00, double 1.000000e+00)
  %255 = fmul double %253, 4.500000e+00
  %256 = tail call double @llvm.fmuladd.f64(double %255, double %253, double %254)
  %257 = fsub double %256, %138
  %258 = fmul double %186, %257
  %259 = fmul double %258, %139
  %260 = tail call double @llvm.fmuladd.f64(double %140, double %17, double %259)
  store double %260, ptr %36, align 8, !tbaa !5
  %261 = fsub double %228, %.0324
  %262 = tail call double @llvm.fmuladd.f64(double %261, double 3.000000e+00, double 1.000000e+00)
  %263 = fmul double %261, 4.500000e+00
  %264 = tail call double @llvm.fmuladd.f64(double %263, double %261, double %262)
  %265 = fsub double %264, %138
  %266 = fmul double %186, %265
  %267 = fmul double %266, %139
  %268 = tail call double @llvm.fmuladd.f64(double %140, double %18, double %267)
  store double %268, ptr %37, align 8, !tbaa !5
  %269 = fsub double %135, %.0324
  %270 = tail call double @llvm.fmuladd.f64(double %269, double 3.000000e+00, double 1.000000e+00)
  %271 = fmul double %269, 4.500000e+00
  %272 = tail call double @llvm.fmuladd.f64(double %271, double %269, double %270)
  %273 = fsub double %272, %138
  %274 = fmul double %186, %273
  %275 = fmul double %274, %139
  %276 = tail call double @llvm.fmuladd.f64(double %140, double %13, double %275)
  store double %276, ptr %32, align 8, !tbaa !5
  %277 = fsub double %195, %.0324
  %278 = tail call double @llvm.fmuladd.f64(double %277, double 3.000000e+00, double 1.000000e+00)
  %279 = fmul double %277, 4.500000e+00
  %280 = tail call double @llvm.fmuladd.f64(double %279, double %277, double %278)
  %281 = fsub double %280, %138
  %282 = fmul double %186, %281
  %283 = fmul double %282, %139
  %284 = tail call double @llvm.fmuladd.f64(double %140, double %14, double %283)
  store double %284, ptr %33, align 8, !tbaa !5
  br label %285

285:                                              ; preds = %58, %57
  ret void
}

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

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

!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"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass