; ModuleID = 'npb-LU-blts.cl'
source_filename = "npb-LU-blts.cl"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.13.0"

; Function Attrs: nounwind ssp uwtable
define spir_kernel void @blts(double*, double* nocapture readonly, double* nocapture readonly, double* nocapture readonly, i32, i32, i32, i32, i32, i32) local_unnamed_addr #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 !kernel_arg_base_type !6 !kernel_arg_type_qual !7 {
  %11 = alloca [5 x [5 x double]], align 16
  %12 = alloca [5 x [5 x double]], align 16
  %13 = alloca [5 x [5 x double]], align 16
  %14 = alloca [5 x [5 x double]], align 16
  %15 = alloca [5 x [5 x double]], align 16
  %16 = alloca [5 x double], align 16
  %17 = bitcast [5 x [5 x double]]* %11 to i8*
  call void @llvm.lifetime.start.p0i8(i64 200, i8* nonnull %17) #4
  %18 = bitcast [5 x [5 x double]]* %12 to i8*
  call void @llvm.lifetime.start.p0i8(i64 200, i8* nonnull %18) #4
  %19 = bitcast [5 x [5 x double]]* %13 to i8*
  call void @llvm.lifetime.start.p0i8(i64 200, i8* nonnull %19) #4
  %20 = bitcast [5 x [5 x double]]* %14 to i8*
  call void @llvm.lifetime.start.p0i8(i64 200, i8* nonnull %20) #4
  %21 = bitcast [5 x [5 x double]]* %15 to i8*
  call void @llvm.lifetime.start.p0i8(i64 200, i8* nonnull %21) #4
  %22 = bitcast [5 x double]* %16 to i8*
  call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %22) #4
  %23 = tail call i64 @_Z13get_global_idj(i32 1) #5
  %24 = sext i32 %8 to i64
  %25 = add nsw i64 %24, 1
  %26 = add i64 %25, %23
  %27 = trunc i64 %26 to i32
  %28 = tail call i64 @_Z13get_global_idj(i32 0) #5
  %29 = sext i32 %9 to i64
  %30 = add nsw i64 %29, 1
  %31 = add i64 %30, %28
  %32 = sext i32 %7 to i64
  %33 = add nsw i64 %32, 1
  %34 = sub nsw i64 %33, %24
  %35 = sub nsw i64 %34, %29
  %36 = sub i64 %35, %23
  %37 = sub i64 %36, %28
  %38 = trunc i64 %37 to i32
  %39 = add nsw i32 %4, -1
  %40 = icmp sgt i32 %39, %27
  br i1 %40, label %41, label %915

; <label>:41:                                     ; preds = %10
  %42 = trunc i64 %31 to i32
  %43 = add nsw i32 %5, -1
  %44 = icmp sgt i32 %43, %42
  %45 = icmp sgt i32 %38, 0
  %46 = and i1 %44, %45
  %47 = add nsw i32 %6, -1
  %48 = icmp sgt i32 %47, %38
  %49 = and i1 %48, %46
  br i1 %49, label %50, label %915

; <label>:50:                                     ; preds = %41
  %51 = bitcast double* %0 to [163 x [163 x [5 x double]]]*
  %52 = bitcast double* %1 to [163 x [163 x [5 x double]]]*
  %53 = bitcast double* %2 to [163 x [163 x double]]*
  %54 = bitcast double* %3 to [163 x [163 x double]]*
  %55 = shl i64 %26, 32
  %56 = ashr exact i64 %55, 32
  %57 = shl i64 %31, 32
  %58 = ashr exact i64 %57, 32
  %59 = shl i64 %37, 32
  %60 = ashr exact i64 %59, 32
  %61 = getelementptr inbounds [163 x [163 x double]], [163 x [163 x double]]* %54, i64 %56, i64 %58, i64 %60
  %62 = load double, double* %61, align 8, !tbaa !8
  %63 = fmul double %62, %62
  %64 = fmul double %62, %63
  %65 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 0, i64 0
  store double 0x410FA45800000002, double* %65, align 16, !tbaa !8
  %66 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 1, i64 0
  store double 0.000000e+00, double* %66, align 8, !tbaa !8
  %67 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 2, i64 0
  store double 0.000000e+00, double* %67, align 16, !tbaa !8
  %68 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 3, i64 0
  store double 0.000000e+00, double* %68, align 8, !tbaa !8
  %69 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 4, i64 0
  store double 0.000000e+00, double* %69, align 16, !tbaa !8
  %70 = fmul double %63, 0xC0E0E02AAAAAAAAB
  %71 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %60, i64 1
  %72 = load double, double* %71, align 8, !tbaa !8
  %73 = fmul double %70, %72
  %74 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 0, i64 1
  store double %73, double* %74, align 8, !tbaa !8
  %75 = fmul double %62, 4.000000e-01
  %76 = tail call double @llvm.fmuladd.f64(double %75, double 0x40F5183555555556, double 1.000000e+00)
  %77 = fadd double %76, 0x410FA45000000002
  %78 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 1, i64 1
  store double %77, double* %78, align 8, !tbaa !8
  %79 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 2, i64 1
  store double 0.000000e+00, double* %79, align 8, !tbaa !8
  %80 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 3, i64 1
  store double 0.000000e+00, double* %80, align 8, !tbaa !8
  %81 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 4, i64 1
  store double 0.000000e+00, double* %81, align 8, !tbaa !8
  %82 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %60, i64 2
  %83 = load double, double* %82, align 8, !tbaa !8
  %84 = fmul double %70, %83
  %85 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 0, i64 2
  store double %84, double* %85, align 16, !tbaa !8
  %86 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 1, i64 2
  store double 0.000000e+00, double* %86, align 8, !tbaa !8
  %87 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 2, i64 2
  store double %77, double* %87, align 16, !tbaa !8
  %88 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 3, i64 2
  store double 0.000000e+00, double* %88, align 8, !tbaa !8
  %89 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 4, i64 2
  store double 0.000000e+00, double* %89, align 16, !tbaa !8
  %90 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %60, i64 3
  %91 = load double, double* %90, align 8, !tbaa !8
  %92 = fmul double %70, %91
  %93 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 0, i64 3
  store double %92, double* %93, align 8, !tbaa !8
  %94 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 1, i64 3
  store double 0.000000e+00, double* %94, align 8, !tbaa !8
  %95 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 2, i64 3
  store double 0.000000e+00, double* %95, align 8, !tbaa !8
  %96 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 3, i64 3
  store double %77, double* %96, align 8, !tbaa !8
  %97 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 4, i64 3
  store double 0.000000e+00, double* %97, align 8, !tbaa !8
  %98 = fmul double %72, %72
  %99 = fmul double %83, %83
  %100 = fmul double %99, 0xC0B9C936F46508DE
  %101 = tail call double @llvm.fmuladd.f64(double %98, double 0xC0B9C936F46508DF, double %100)
  %102 = fmul double %91, %91
  %103 = tail call double @llvm.fmuladd.f64(double %102, double 0xC0B9C936F46508DF, double %101)
  %104 = fmul double %63, 0x40CDC4C624DD2F1B
  %105 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %60, i64 4
  %106 = load double, double* %105, align 8, !tbaa !8
  %107 = fmul double %104, %106
  %108 = tail call double @llvm.fmuladd.f64(double %103, double %64, double %107)
  %109 = fmul double %108, -4.000000e+00
  %110 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 0, i64 4
  store double %109, double* %110, align 16, !tbaa !8
  %111 = fmul double %63, 4.000000e+00
  %112 = fmul double %111, %72
  %113 = fmul double %112, 0xC0B9C936F46508DF
  %114 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 1, i64 4
  store double %113, double* %114, align 8, !tbaa !8
  %115 = fmul double %111, %83
  %116 = fmul double %115, 0xC0B9C936F46508DE
  %117 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 2, i64 4
  store double %116, double* %117, align 16, !tbaa !8
  %118 = fmul double %111, %91
  %119 = fmul double %118, 0xC0B9C936F46508DF
  %120 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 3, i64 4
  store double %119, double* %120, align 8, !tbaa !8
  %121 = tail call double @llvm.fmuladd.f64(double %62, double 0x40EDC4C624DD2F1B, double 1.000000e+00)
  %122 = fadd double %121, 0x410FA45000000002
  %123 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %14, i64 0, i64 4, i64 4
  store double %122, double* %123, align 16, !tbaa !8
  %124 = add i64 %55, -4294967296
  %125 = ashr exact i64 %124, 32
  %126 = getelementptr inbounds [163 x [163 x double]], [163 x [163 x double]]* %54, i64 %125, i64 %58, i64 %60
  %127 = load double, double* %126, align 8, !tbaa !8
  %128 = fmul double %127, %127
  %129 = fmul double %127, %128
  %130 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 0, i64 0
  store double 0xC0E9504000000001, double* %130, align 16, !tbaa !8
  %131 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 1, i64 0
  store double 0.000000e+00, double* %131, align 8, !tbaa !8
  %132 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 2, i64 0
  store double 0.000000e+00, double* %132, align 16, !tbaa !8
  %133 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 3, i64 0
  store double -1.610000e+02, double* %133, align 8, !tbaa !8
  %134 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 4, i64 0
  store double 0.000000e+00, double* %134, align 16, !tbaa !8
  %135 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %125, i64 %58, i64 %60, i64 1
  %136 = load double, double* %135, align 8, !tbaa !8
  %137 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %125, i64 %58, i64 %60, i64 3
  %138 = load double, double* %137, align 8, !tbaa !8
  %139 = fmul double %136, %138
  %140 = fmul double %128, %139
  %141 = fsub double -0.000000e+00, %140
  %142 = fmul double %128, -1.000000e-01
  %143 = fmul double %142, %136
  %144 = fmul double %143, 0x40E9504000000001
  %145 = fsub double -0.000000e+00, %144
  %146 = tail call double @llvm.fmuladd.f64(double %141, double -1.610000e+02, double %145)
  %147 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 0, i64 1
  store double %146, double* %147, align 8, !tbaa !8
  %148 = fmul double %127, %138
  %149 = fmul double %127, 0x40B4403333333334
  %150 = fsub double -0.000000e+00, %149
  %151 = tail call double @llvm.fmuladd.f64(double %148, double -1.610000e+02, double %150)
  %152 = fadd double %151, 0xC0E9504000000001
  %153 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 1, i64 1
  store double %152, double* %153, align 8, !tbaa !8
  %154 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 2, i64 1
  store double 0.000000e+00, double* %154, align 8, !tbaa !8
  %155 = fmul double %127, %136
  %156 = fmul double %155, -1.610000e+02
  %157 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 3, i64 1
  store double %156, double* %157, align 8, !tbaa !8
  %158 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 4, i64 1
  store double 0.000000e+00, double* %158, align 8, !tbaa !8
  %159 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %125, i64 %58, i64 %60, i64 2
  %160 = load double, double* %159, align 8, !tbaa !8
  %161 = fmul double %138, %160
  %162 = fmul double %128, %161
  %163 = fsub double -0.000000e+00, %162
  %164 = fmul double %142, %160
  %165 = fmul double %164, 0x40E9504000000001
  %166 = fsub double -0.000000e+00, %165
  %167 = tail call double @llvm.fmuladd.f64(double %163, double -1.610000e+02, double %166)
  %168 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 0, i64 2
  store double %167, double* %168, align 16, !tbaa !8
  %169 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 1, i64 2
  store double 0.000000e+00, double* %169, align 8, !tbaa !8
  %170 = fmul double %127, 1.000000e-01
  %171 = fmul double %170, 0x40E9504000000001
  %172 = fsub double -0.000000e+00, %171
  %173 = tail call double @llvm.fmuladd.f64(double %148, double -1.610000e+02, double %172)
  %174 = fadd double %173, 0xC0E9504000000001
  %175 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 2, i64 2
  store double %174, double* %175, align 16, !tbaa !8
  %176 = fmul double %127, %160
  %177 = fmul double %176, -1.610000e+02
  %178 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 3, i64 2
  store double %177, double* %178, align 8, !tbaa !8
  %179 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 4, i64 2
  store double 0.000000e+00, double* %179, align 16, !tbaa !8
  %180 = fsub double -0.000000e+00, %148
  %181 = getelementptr inbounds [163 x [163 x double]], [163 x [163 x double]]* %53, i64 %125, i64 %58, i64 %60
  %182 = load double, double* %181, align 8, !tbaa !8
  %183 = fmul double %182, 4.000000e-01
  %184 = fmul double %127, %183
  %185 = tail call double @llvm.fmuladd.f64(double %180, double %148, double %184)
  %186 = fmul double %128, 0xBFC1111111111111
  %187 = fmul double %186, %138
  %188 = fmul double %187, 0x40E9504000000001
  %189 = fsub double -0.000000e+00, %188
  %190 = tail call double @llvm.fmuladd.f64(double %185, double -1.610000e+02, double %189)
  %191 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 0, i64 3
  store double %190, double* %191, align 8, !tbaa !8
  %192 = fmul double %155, -4.000000e-01
  %193 = fmul double %192, -1.610000e+02
  %194 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 1, i64 3
  store double %193, double* %194, align 8, !tbaa !8
  %195 = fmul double %176, -4.000000e-01
  %196 = fmul double %195, -1.610000e+02
  %197 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 2, i64 3
  store double %196, double* %197, align 8, !tbaa !8
  %198 = fmul double %127, 0x3FC1111111111111
  %199 = fmul double %198, 0x40E9504000000001
  %200 = fsub double -0.000000e+00, %199
  %201 = tail call double @llvm.fmuladd.f64(double %148, double -2.576000e+02, double %200)
  %202 = fadd double %201, 0xC0E9504000000001
  %203 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 3, i64 3
  store double %202, double* %203, align 8, !tbaa !8
  %204 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 4, i64 3
  store double -6.440000e+01, double* %204, align 8, !tbaa !8
  %205 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %125, i64 %58, i64 %60, i64 4
  %206 = load double, double* %205, align 8, !tbaa !8
  %207 = fmul double %206, 1.400000e+00
  %208 = fsub double -0.000000e+00, %207
  %209 = tail call double @llvm.fmuladd.f64(double %182, double 8.000000e-01, double %208)
  %210 = fmul double %138, %209
  %211 = fmul double %128, %210
  %212 = fmul double %129, 0x3FB89374BC6A7EF8
  %213 = fmul double %136, %136
  %214 = fmul double %129, 0xBFB89374BC6A7EF8
  %215 = fmul double %160, %160
  %216 = fmul double %214, %215
  %217 = fsub double -0.000000e+00, %216
  %218 = tail call double @llvm.fmuladd.f64(double %212, double %213, double %217)
  %219 = fmul double %129, 0x3FB00AEC33E1F670
  %220 = fmul double %138, %138
  %221 = tail call double @llvm.fmuladd.f64(double %219, double %220, double %218)
  %222 = fmul double %128, 0x3FC916872B020C49
  %223 = fsub double -0.000000e+00, %222
  %224 = tail call double @llvm.fmuladd.f64(double %223, double %206, double %221)
  %225 = fmul double %224, 0x40E9504000000001
  %226 = fsub double -0.000000e+00, %225
  %227 = tail call double @llvm.fmuladd.f64(double %211, double -1.610000e+02, double %226)
  %228 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 0, i64 4
  store double %227, double* %228, align 16, !tbaa !8
  %229 = fmul double %139, -4.000000e-01
  %230 = fmul double %128, %229
  %231 = fmul double %128, 0xC0B370D4FDF3B645
  %232 = fmul double %231, %136
  %233 = fsub double -0.000000e+00, %232
  %234 = tail call double @llvm.fmuladd.f64(double %230, double -1.610000e+02, double %233)
  %235 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 1, i64 4
  store double %234, double* %235, align 8, !tbaa !8
  %236 = fmul double %161, -4.000000e-01
  %237 = fmul double %128, %236
  %238 = fmul double %231, %160
  %239 = fsub double -0.000000e+00, %238
  %240 = tail call double @llvm.fmuladd.f64(double %237, double -1.610000e+02, double %239)
  %241 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 2, i64 4
  store double %240, double* %241, align 16, !tbaa !8
  %242 = fmul double %127, %206
  %243 = fmul double %128, %220
  %244 = tail call double @llvm.fmuladd.f64(double %182, double %127, double %243)
  %245 = fmul double %244, 4.000000e-01
  %246 = fsub double -0.000000e+00, %245
  %247 = tail call double @llvm.fmuladd.f64(double %242, double 1.400000e+00, double %246)
  %248 = fmul double %128, 0xC0A96187D9C54A68
  %249 = fmul double %248, %138
  %250 = fsub double -0.000000e+00, %249
  %251 = tail call double @llvm.fmuladd.f64(double %247, double -1.610000e+02, double %250)
  %252 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 3, i64 4
  store double %251, double* %252, align 8, !tbaa !8
  %253 = fmul double %148, 1.400000e+00
  %254 = fmul double %127, 0x40C3D884189374BD
  %255 = fsub double -0.000000e+00, %254
  %256 = tail call double @llvm.fmuladd.f64(double %253, double -1.610000e+02, double %255)
  %257 = fadd double %256, 0xC0E9504000000001
  %258 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %11, i64 0, i64 4, i64 4
  store double %257, double* %258, align 16, !tbaa !8
  %259 = add i64 %57, -4294967296
  %260 = ashr exact i64 %259, 32
  %261 = getelementptr inbounds [163 x [163 x double]], [163 x [163 x double]]* %54, i64 %56, i64 %260, i64 %60
  %262 = load double, double* %261, align 8, !tbaa !8
  %263 = fmul double %262, %262
  %264 = fmul double %262, %263
  %265 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 0, i64 0
  store double 0xC0E2FC3000000001, double* %265, align 16, !tbaa !8
  %266 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 1, i64 0
  store double 0.000000e+00, double* %266, align 8, !tbaa !8
  %267 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 2, i64 0
  store double -1.610000e+02, double* %267, align 16, !tbaa !8
  %268 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 3, i64 0
  store double 0.000000e+00, double* %268, align 8, !tbaa !8
  %269 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 4, i64 0
  store double 0.000000e+00, double* %269, align 16, !tbaa !8
  %270 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %260, i64 %60, i64 1
  %271 = load double, double* %270, align 8, !tbaa !8
  %272 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %260, i64 %60, i64 2
  %273 = load double, double* %272, align 8, !tbaa !8
  %274 = fmul double %271, %273
  %275 = fmul double %263, %274
  %276 = fsub double -0.000000e+00, %275
  %277 = fmul double %263, -1.000000e-01
  %278 = fmul double %277, %271
  %279 = fmul double %278, 0x40E9504000000001
  %280 = fsub double -0.000000e+00, %279
  %281 = tail call double @llvm.fmuladd.f64(double %276, double -1.610000e+02, double %280)
  %282 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 0, i64 1
  store double %281, double* %282, align 8, !tbaa !8
  %283 = fmul double %262, %273
  %284 = fmul double %262, 1.000000e-01
  %285 = fmul double %284, 0x40E9504000000001
  %286 = fsub double -0.000000e+00, %285
  %287 = tail call double @llvm.fmuladd.f64(double %283, double -1.610000e+02, double %286)
  %288 = fadd double %287, 0xC0E2FC3000000001
  %289 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 1, i64 1
  store double %288, double* %289, align 8, !tbaa !8
  %290 = fmul double %262, %271
  %291 = fmul double %290, -1.610000e+02
  %292 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 2, i64 1
  store double %291, double* %292, align 8, !tbaa !8
  %293 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 3, i64 1
  store double 0.000000e+00, double* %293, align 8, !tbaa !8
  %294 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 4, i64 1
  store double 0.000000e+00, double* %294, align 8, !tbaa !8
  %295 = fsub double -0.000000e+00, %283
  %296 = getelementptr inbounds [163 x [163 x double]], [163 x [163 x double]]* %53, i64 %56, i64 %260, i64 %60
  %297 = load double, double* %296, align 8, !tbaa !8
  %298 = fmul double %262, %297
  %299 = fmul double %298, 4.000000e-01
  %300 = tail call double @llvm.fmuladd.f64(double %295, double %283, double %299)
  %301 = fmul double %263, 0xBFC1111111111111
  %302 = fmul double %301, %273
  %303 = fmul double %302, 0x40E9504000000001
  %304 = fsub double -0.000000e+00, %303
  %305 = tail call double @llvm.fmuladd.f64(double %300, double -1.610000e+02, double %304)
  %306 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 0, i64 2
  store double %305, double* %306, align 16, !tbaa !8
  %307 = fmul double %290, -4.000000e-01
  %308 = fmul double %307, -1.610000e+02
  %309 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 1, i64 2
  store double %308, double* %309, align 8, !tbaa !8
  %310 = fmul double %283, 1.600000e+00
  %311 = fmul double %262, 0x3FC1111111111111
  %312 = fmul double %311, 0x40E9504000000001
  %313 = fsub double -0.000000e+00, %312
  %314 = tail call double @llvm.fmuladd.f64(double %310, double -1.610000e+02, double %313)
  %315 = fadd double %314, 0xC0E2FC3000000001
  %316 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 2, i64 2
  store double %315, double* %316, align 16, !tbaa !8
  %317 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %260, i64 %60, i64 3
  %318 = load double, double* %317, align 8, !tbaa !8
  %319 = fmul double %262, %318
  %320 = fmul double %319, -4.000000e-01
  %321 = fmul double %320, -1.610000e+02
  %322 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 3, i64 2
  store double %321, double* %322, align 8, !tbaa !8
  %323 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 4, i64 2
  store double -6.440000e+01, double* %323, align 16, !tbaa !8
  %324 = fmul double %273, %318
  %325 = fmul double %263, %324
  %326 = fsub double -0.000000e+00, %325
  %327 = fmul double %277, %318
  %328 = fmul double %327, 0x40E9504000000001
  %329 = fsub double -0.000000e+00, %328
  %330 = tail call double @llvm.fmuladd.f64(double %326, double -1.610000e+02, double %329)
  %331 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 0, i64 3
  store double %330, double* %331, align 8, !tbaa !8
  %332 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 1, i64 3
  store double 0.000000e+00, double* %332, align 8, !tbaa !8
  %333 = fmul double %319, -1.610000e+02
  %334 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 2, i64 3
  store double %333, double* %334, align 8, !tbaa !8
  %335 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 3, i64 3
  store double %288, double* %335, align 8, !tbaa !8
  %336 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 4, i64 3
  store double 0.000000e+00, double* %336, align 8, !tbaa !8
  %337 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %260, i64 %60, i64 4
  %338 = load double, double* %337, align 8, !tbaa !8
  %339 = fmul double %338, 1.400000e+00
  %340 = fsub double -0.000000e+00, %339
  %341 = tail call double @llvm.fmuladd.f64(double %297, double 8.000000e-01, double %340)
  %342 = fmul double %263, %273
  %343 = fmul double %342, %341
  %344 = fmul double %264, 0x3FB89374BC6A7EF8
  %345 = fmul double %271, %271
  %346 = fmul double %264, 0xBFB00AEC33E1F670
  %347 = fmul double %273, %273
  %348 = fmul double %346, %347
  %349 = fsub double -0.000000e+00, %348
  %350 = tail call double @llvm.fmuladd.f64(double %344, double %345, double %349)
  %351 = fmul double %318, %318
  %352 = tail call double @llvm.fmuladd.f64(double %344, double %351, double %350)
  %353 = fmul double %263, 0x3FC916872B020C49
  %354 = fsub double -0.000000e+00, %353
  %355 = tail call double @llvm.fmuladd.f64(double %354, double %338, double %352)
  %356 = fmul double %355, 0x40E9504000000001
  %357 = fsub double -0.000000e+00, %356
  %358 = tail call double @llvm.fmuladd.f64(double %343, double -1.610000e+02, double %357)
  %359 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 0, i64 4
  store double %358, double* %359, align 16, !tbaa !8
  %360 = fmul double %274, -4.000000e-01
  %361 = fmul double %263, %360
  %362 = fmul double %263, 0xC0B370D4FDF3B645
  %363 = fmul double %362, %271
  %364 = fsub double -0.000000e+00, %363
  %365 = tail call double @llvm.fmuladd.f64(double %361, double -1.610000e+02, double %364)
  %366 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 1, i64 4
  store double %365, double* %366, align 8, !tbaa !8
  %367 = fmul double %262, %338
  %368 = fmul double %263, %347
  %369 = tail call double @llvm.fmuladd.f64(double %297, double %262, double %368)
  %370 = fmul double %369, 4.000000e-01
  %371 = fsub double -0.000000e+00, %370
  %372 = tail call double @llvm.fmuladd.f64(double %367, double 1.400000e+00, double %371)
  %373 = fmul double %263, 0xC0A96187D9C54A68
  %374 = fmul double %373, %273
  %375 = fsub double -0.000000e+00, %374
  %376 = tail call double @llvm.fmuladd.f64(double %372, double -1.610000e+02, double %375)
  %377 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 2, i64 4
  store double %376, double* %377, align 16, !tbaa !8
  %378 = fmul double %324, -4.000000e-01
  %379 = fmul double %263, %378
  %380 = fmul double %362, %318
  %381 = fsub double -0.000000e+00, %380
  %382 = tail call double @llvm.fmuladd.f64(double %379, double -1.610000e+02, double %381)
  %383 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 3, i64 4
  store double %382, double* %383, align 8, !tbaa !8
  %384 = fmul double %283, 1.400000e+00
  %385 = fmul double %262, 0x40C3D884189374BD
  %386 = fsub double -0.000000e+00, %385
  %387 = tail call double @llvm.fmuladd.f64(double %384, double -1.610000e+02, double %386)
  %388 = fadd double %387, 0xC0E2FC3000000001
  %389 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %12, i64 0, i64 4, i64 4
  store double %388, double* %389, align 16, !tbaa !8
  %390 = add i64 %59, -4294967296
  %391 = ashr exact i64 %390, 32
  %392 = getelementptr inbounds [163 x [163 x double]], [163 x [163 x double]]* %54, i64 %56, i64 %58, i64 %391
  %393 = load double, double* %392, align 8, !tbaa !8
  %394 = fmul double %393, %393
  %395 = fmul double %393, %394
  %396 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 0, i64 0
  store double 0xC0E2FC3000000001, double* %396, align 16, !tbaa !8
  %397 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 1, i64 0
  store double -1.610000e+02, double* %397, align 8, !tbaa !8
  %398 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 2, i64 0
  store double 0.000000e+00, double* %398, align 16, !tbaa !8
  %399 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 3, i64 0
  store double 0.000000e+00, double* %399, align 8, !tbaa !8
  %400 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 4, i64 0
  store double 0.000000e+00, double* %400, align 16, !tbaa !8
  %401 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %391, i64 1
  %402 = load double, double* %401, align 8, !tbaa !8
  %403 = fmul double %393, %402
  %404 = fsub double -0.000000e+00, %403
  %405 = getelementptr inbounds [163 x [163 x double]], [163 x [163 x double]]* %53, i64 %56, i64 %58, i64 %391
  %406 = load double, double* %405, align 8, !tbaa !8
  %407 = fmul double %406, 4.000000e-01
  %408 = fmul double %393, %407
  %409 = tail call double @llvm.fmuladd.f64(double %404, double %403, double %408)
  %410 = fmul double %394, 0xBFC1111111111111
  %411 = fmul double %410, %402
  %412 = fmul double %411, 0x40E9504000000001
  %413 = fsub double -0.000000e+00, %412
  %414 = tail call double @llvm.fmuladd.f64(double %409, double -1.610000e+02, double %413)
  %415 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 0, i64 1
  store double %414, double* %415, align 8, !tbaa !8
  %416 = fmul double %403, 1.600000e+00
  %417 = fmul double %393, 0x3FC1111111111111
  %418 = fmul double %417, 0x40E9504000000001
  %419 = fsub double -0.000000e+00, %418
  %420 = tail call double @llvm.fmuladd.f64(double %416, double -1.610000e+02, double %419)
  %421 = fadd double %420, 0xC0E2FC3000000001
  %422 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 1, i64 1
  store double %421, double* %422, align 8, !tbaa !8
  %423 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %391, i64 2
  %424 = load double, double* %423, align 8, !tbaa !8
  %425 = fmul double %393, %424
  %426 = fmul double %425, -4.000000e-01
  %427 = fmul double %426, -1.610000e+02
  %428 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 2, i64 1
  store double %427, double* %428, align 8, !tbaa !8
  %429 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %391, i64 3
  %430 = load double, double* %429, align 8, !tbaa !8
  %431 = fmul double %393, %430
  %432 = fmul double %431, -4.000000e-01
  %433 = fmul double %432, -1.610000e+02
  %434 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 3, i64 1
  store double %433, double* %434, align 8, !tbaa !8
  %435 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 4, i64 1
  store double -6.440000e+01, double* %435, align 8, !tbaa !8
  %436 = fmul double %402, %424
  %437 = fmul double %394, %436
  %438 = fsub double -0.000000e+00, %437
  %439 = fmul double %394, -1.000000e-01
  %440 = fmul double %439, %424
  %441 = fmul double %440, 0x40E9504000000001
  %442 = fsub double -0.000000e+00, %441
  %443 = tail call double @llvm.fmuladd.f64(double %438, double -1.610000e+02, double %442)
  %444 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 0, i64 2
  store double %443, double* %444, align 16, !tbaa !8
  %445 = fmul double %425, -1.610000e+02
  %446 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 1, i64 2
  store double %445, double* %446, align 8, !tbaa !8
  %447 = fmul double %393, 1.000000e-01
  %448 = fmul double %447, 0x40E9504000000001
  %449 = fsub double -0.000000e+00, %448
  %450 = tail call double @llvm.fmuladd.f64(double %403, double -1.610000e+02, double %449)
  %451 = fadd double %450, 0xC0E2FC3000000001
  %452 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 2, i64 2
  store double %451, double* %452, align 16, !tbaa !8
  %453 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 3, i64 2
  store double 0.000000e+00, double* %453, align 8, !tbaa !8
  %454 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 4, i64 2
  store double 0.000000e+00, double* %454, align 16, !tbaa !8
  %455 = fmul double %402, %430
  %456 = fmul double %394, %455
  %457 = fsub double -0.000000e+00, %456
  %458 = fmul double %439, %430
  %459 = fmul double %458, 0x40E9504000000001
  %460 = fsub double -0.000000e+00, %459
  %461 = tail call double @llvm.fmuladd.f64(double %457, double -1.610000e+02, double %460)
  %462 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 0, i64 3
  store double %461, double* %462, align 8, !tbaa !8
  %463 = fmul double %431, -1.610000e+02
  %464 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 1, i64 3
  store double %463, double* %464, align 8, !tbaa !8
  %465 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 2, i64 3
  store double 0.000000e+00, double* %465, align 8, !tbaa !8
  %466 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 3, i64 3
  store double %451, double* %466, align 8, !tbaa !8
  %467 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 4, i64 3
  store double 0.000000e+00, double* %467, align 8, !tbaa !8
  %468 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %52, i64 %56, i64 %58, i64 %391, i64 4
  %469 = load double, double* %468, align 8, !tbaa !8
  %470 = fmul double %469, 1.400000e+00
  %471 = fsub double -0.000000e+00, %470
  %472 = tail call double @llvm.fmuladd.f64(double %406, double 8.000000e-01, double %471)
  %473 = fmul double %402, %472
  %474 = fmul double %394, %473
  %475 = fmul double %395, 0x3FB00AEC33E1F670
  %476 = fmul double %402, %402
  %477 = fmul double %395, 0xBFB89374BC6A7EF8
  %478 = fmul double %424, %424
  %479 = fmul double %477, %478
  %480 = fsub double -0.000000e+00, %479
  %481 = tail call double @llvm.fmuladd.f64(double %475, double %476, double %480)
  %482 = fmul double %430, %430
  %483 = fsub double -0.000000e+00, %477
  %484 = tail call double @llvm.fmuladd.f64(double %483, double %482, double %481)
  %485 = fmul double %394, 0x3FC916872B020C49
  %486 = fsub double -0.000000e+00, %485
  %487 = tail call double @llvm.fmuladd.f64(double %486, double %469, double %484)
  %488 = fmul double %487, 0x40E9504000000001
  %489 = fsub double -0.000000e+00, %488
  %490 = tail call double @llvm.fmuladd.f64(double %474, double -1.610000e+02, double %489)
  %491 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 0, i64 4
  store double %490, double* %491, align 16, !tbaa !8
  %492 = fmul double %393, %469
  %493 = fmul double %393, %406
  %494 = tail call double @llvm.fmuladd.f64(double %476, double %394, double %493)
  %495 = fmul double %494, 4.000000e-01
  %496 = fsub double -0.000000e+00, %495
  %497 = tail call double @llvm.fmuladd.f64(double %492, double 1.400000e+00, double %496)
  %498 = fmul double %394, 0xC0A96187D9C54A68
  %499 = fmul double %498, %402
  %500 = fsub double -0.000000e+00, %499
  %501 = tail call double @llvm.fmuladd.f64(double %497, double -1.610000e+02, double %500)
  %502 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 1, i64 4
  store double %501, double* %502, align 8, !tbaa !8
  %503 = fmul double %436, -4.000000e-01
  %504 = fmul double %394, %503
  %505 = fmul double %394, 0xC0B370D4FDF3B645
  %506 = fmul double %505, %424
  %507 = fsub double -0.000000e+00, %506
  %508 = tail call double @llvm.fmuladd.f64(double %504, double -1.610000e+02, double %507)
  %509 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 2, i64 4
  store double %508, double* %509, align 16, !tbaa !8
  %510 = fmul double %455, -4.000000e-01
  %511 = fmul double %394, %510
  %512 = fmul double %505, %430
  %513 = fsub double -0.000000e+00, %512
  %514 = tail call double @llvm.fmuladd.f64(double %511, double -1.610000e+02, double %513)
  %515 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 3, i64 4
  store double %514, double* %515, align 8, !tbaa !8
  %516 = fmul double %403, 1.400000e+00
  %517 = fmul double %393, 0x40C3D884189374BD
  %518 = fsub double -0.000000e+00, %517
  %519 = tail call double @llvm.fmuladd.f64(double %516, double -1.610000e+02, double %518)
  %520 = fadd double %519, 0xC0E2FC3000000001
  %521 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %13, i64 0, i64 4, i64 4
  store double %520, double* %521, align 16, !tbaa !8
  %522 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %125, i64 %58, i64 %60, i64 0
  %523 = load double, double* %522, align 8, !tbaa !8
  %524 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %125, i64 %58, i64 %60, i64 1
  %525 = load double, double* %524, align 8, !tbaa !8
  %526 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %125, i64 %58, i64 %60, i64 2
  %527 = load double, double* %526, align 8, !tbaa !8
  %528 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %125, i64 %58, i64 %60, i64 3
  %529 = load double, double* %528, align 8, !tbaa !8
  %530 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %125, i64 %58, i64 %60, i64 4
  %531 = load double, double* %530, align 8, !tbaa !8
  %532 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %60, i64 0
  %533 = load double, double* %532, align 8, !tbaa !8
  %534 = load double, double* %130, align 16, !tbaa !8
  %535 = load double, double* %131, align 8, !tbaa !8
  %536 = fmul double %535, %525
  %537 = tail call double @llvm.fmuladd.f64(double %534, double %523, double %536)
  %538 = load double, double* %132, align 16, !tbaa !8
  %539 = tail call double @llvm.fmuladd.f64(double %538, double %527, double %537)
  %540 = load double, double* %133, align 8, !tbaa !8
  %541 = tail call double @llvm.fmuladd.f64(double %540, double %529, double %539)
  %542 = load double, double* %134, align 16, !tbaa !8
  %543 = tail call double @llvm.fmuladd.f64(double %542, double %531, double %541)
  %544 = tail call double @llvm.fmuladd.f64(double %543, double -1.200000e+00, double %533)
  %545 = getelementptr inbounds [5 x double], [5 x double]* %16, i64 0, i64 0
  store double %544, double* %545, align 16, !tbaa !8
  %546 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %60, i64 1
  %547 = load double, double* %546, align 8, !tbaa !8
  %548 = load double, double* %147, align 8, !tbaa !8
  %549 = load double, double* %153, align 8, !tbaa !8
  %550 = fmul double %549, %525
  %551 = tail call double @llvm.fmuladd.f64(double %548, double %523, double %550)
  %552 = load double, double* %154, align 8, !tbaa !8
  %553 = tail call double @llvm.fmuladd.f64(double %552, double %527, double %551)
  %554 = load double, double* %157, align 8, !tbaa !8
  %555 = tail call double @llvm.fmuladd.f64(double %554, double %529, double %553)
  %556 = load double, double* %158, align 8, !tbaa !8
  %557 = tail call double @llvm.fmuladd.f64(double %556, double %531, double %555)
  %558 = tail call double @llvm.fmuladd.f64(double %557, double -1.200000e+00, double %547)
  %559 = getelementptr inbounds [5 x double], [5 x double]* %16, i64 0, i64 1
  store double %558, double* %559, align 8, !tbaa !8
  %560 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %60, i64 2
  %561 = load double, double* %560, align 8, !tbaa !8
  %562 = load double, double* %168, align 16, !tbaa !8
  %563 = load double, double* %169, align 8, !tbaa !8
  %564 = fmul double %563, %525
  %565 = tail call double @llvm.fmuladd.f64(double %562, double %523, double %564)
  %566 = load double, double* %175, align 16, !tbaa !8
  %567 = tail call double @llvm.fmuladd.f64(double %566, double %527, double %565)
  %568 = load double, double* %178, align 8, !tbaa !8
  %569 = tail call double @llvm.fmuladd.f64(double %568, double %529, double %567)
  %570 = load double, double* %179, align 16, !tbaa !8
  %571 = tail call double @llvm.fmuladd.f64(double %570, double %531, double %569)
  %572 = tail call double @llvm.fmuladd.f64(double %571, double -1.200000e+00, double %561)
  %573 = getelementptr inbounds [5 x double], [5 x double]* %16, i64 0, i64 2
  store double %572, double* %573, align 16, !tbaa !8
  %574 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %60, i64 3
  %575 = load double, double* %574, align 8, !tbaa !8
  %576 = load double, double* %191, align 8, !tbaa !8
  %577 = load double, double* %194, align 8, !tbaa !8
  %578 = fmul double %577, %525
  %579 = tail call double @llvm.fmuladd.f64(double %576, double %523, double %578)
  %580 = load double, double* %197, align 8, !tbaa !8
  %581 = tail call double @llvm.fmuladd.f64(double %580, double %527, double %579)
  %582 = load double, double* %203, align 8, !tbaa !8
  %583 = tail call double @llvm.fmuladd.f64(double %582, double %529, double %581)
  %584 = load double, double* %204, align 8, !tbaa !8
  %585 = tail call double @llvm.fmuladd.f64(double %584, double %531, double %583)
  %586 = tail call double @llvm.fmuladd.f64(double %585, double -1.200000e+00, double %575)
  %587 = getelementptr inbounds [5 x double], [5 x double]* %16, i64 0, i64 3
  store double %586, double* %587, align 8, !tbaa !8
  %588 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %60, i64 4
  %589 = load double, double* %588, align 8, !tbaa !8
  %590 = load double, double* %228, align 16, !tbaa !8
  %591 = load double, double* %235, align 8, !tbaa !8
  %592 = fmul double %591, %525
  %593 = tail call double @llvm.fmuladd.f64(double %590, double %523, double %592)
  %594 = load double, double* %241, align 16, !tbaa !8
  %595 = tail call double @llvm.fmuladd.f64(double %594, double %527, double %593)
  %596 = load double, double* %252, align 8, !tbaa !8
  %597 = tail call double @llvm.fmuladd.f64(double %596, double %529, double %595)
  %598 = load double, double* %258, align 16, !tbaa !8
  %599 = tail call double @llvm.fmuladd.f64(double %598, double %531, double %597)
  %600 = tail call double @llvm.fmuladd.f64(double %599, double -1.200000e+00, double %589)
  %601 = getelementptr inbounds [5 x double], [5 x double]* %16, i64 0, i64 4
  store double %600, double* %601, align 16, !tbaa !8
  %602 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %260, i64 %60, i64 0
  %603 = load double, double* %602, align 8, !tbaa !8
  %604 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %391, i64 0
  %605 = load double, double* %604, align 8, !tbaa !8
  %606 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %260, i64 %60, i64 1
  %607 = load double, double* %606, align 8, !tbaa !8
  %608 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %391, i64 1
  %609 = load double, double* %608, align 8, !tbaa !8
  %610 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %260, i64 %60, i64 2
  %611 = load double, double* %610, align 8, !tbaa !8
  %612 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %391, i64 2
  %613 = load double, double* %612, align 8, !tbaa !8
  %614 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %260, i64 %60, i64 3
  %615 = load double, double* %614, align 8, !tbaa !8
  %616 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %391, i64 3
  %617 = load double, double* %616, align 8, !tbaa !8
  %618 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %260, i64 %60, i64 4
  %619 = load double, double* %618, align 8, !tbaa !8
  %620 = getelementptr inbounds [163 x [163 x [5 x double]]], [163 x [163 x [5 x double]]]* %51, i64 %56, i64 %58, i64 %391, i64 4
  %621 = load double, double* %620, align 8, !tbaa !8
  %622 = load double, double* %265, align 16, !tbaa !8
  %623 = load double, double* %396, align 16, !tbaa !8
  %624 = fmul double %623, %605
  %625 = tail call double @llvm.fmuladd.f64(double %622, double %603, double %624)
  %626 = load double, double* %266, align 8, !tbaa !8
  %627 = tail call double @llvm.fmuladd.f64(double %626, double %607, double %625)
  %628 = load double, double* %397, align 8, !tbaa !8
  %629 = tail call double @llvm.fmuladd.f64(double %628, double %609, double %627)
  %630 = load double, double* %267, align 16, !tbaa !8
  %631 = tail call double @llvm.fmuladd.f64(double %630, double %611, double %629)
  %632 = load double, double* %398, align 16, !tbaa !8
  %633 = tail call double @llvm.fmuladd.f64(double %632, double %613, double %631)
  %634 = load double, double* %268, align 8, !tbaa !8
  %635 = tail call double @llvm.fmuladd.f64(double %634, double %615, double %633)
  %636 = load double, double* %399, align 8, !tbaa !8
  %637 = tail call double @llvm.fmuladd.f64(double %636, double %617, double %635)
  %638 = load double, double* %269, align 16, !tbaa !8
  %639 = tail call double @llvm.fmuladd.f64(double %638, double %619, double %637)
  %640 = load double, double* %400, align 16, !tbaa !8
  %641 = tail call double @llvm.fmuladd.f64(double %640, double %621, double %639)
  %642 = tail call double @llvm.fmuladd.f64(double %641, double -1.200000e+00, double %544)
  store double %642, double* %545, align 16, !tbaa !8
  %643 = load double, double* %282, align 8, !tbaa !8
  %644 = load double, double* %415, align 8, !tbaa !8
  %645 = fmul double %644, %605
  %646 = tail call double @llvm.fmuladd.f64(double %643, double %603, double %645)
  %647 = load double, double* %289, align 8, !tbaa !8
  %648 = tail call double @llvm.fmuladd.f64(double %647, double %607, double %646)
  %649 = load double, double* %422, align 8, !tbaa !8
  %650 = tail call double @llvm.fmuladd.f64(double %649, double %609, double %648)
  %651 = load double, double* %292, align 8, !tbaa !8
  %652 = tail call double @llvm.fmuladd.f64(double %651, double %611, double %650)
  %653 = load double, double* %428, align 8, !tbaa !8
  %654 = tail call double @llvm.fmuladd.f64(double %653, double %613, double %652)
  %655 = load double, double* %293, align 8, !tbaa !8
  %656 = tail call double @llvm.fmuladd.f64(double %655, double %615, double %654)
  %657 = load double, double* %434, align 8, !tbaa !8
  %658 = tail call double @llvm.fmuladd.f64(double %657, double %617, double %656)
  %659 = load double, double* %294, align 8, !tbaa !8
  %660 = tail call double @llvm.fmuladd.f64(double %659, double %619, double %658)
  %661 = load double, double* %435, align 8, !tbaa !8
  %662 = tail call double @llvm.fmuladd.f64(double %661, double %621, double %660)
  %663 = tail call double @llvm.fmuladd.f64(double %662, double -1.200000e+00, double %558)
  store double %663, double* %559, align 8, !tbaa !8
  %664 = load double, double* %306, align 16, !tbaa !8
  %665 = load double, double* %444, align 16, !tbaa !8
  %666 = fmul double %665, %605
  %667 = tail call double @llvm.fmuladd.f64(double %664, double %603, double %666)
  %668 = load double, double* %309, align 8, !tbaa !8
  %669 = tail call double @llvm.fmuladd.f64(double %668, double %607, double %667)
  %670 = load double, double* %446, align 8, !tbaa !8
  %671 = tail call double @llvm.fmuladd.f64(double %670, double %609, double %669)
  %672 = load double, double* %316, align 16, !tbaa !8
  %673 = tail call double @llvm.fmuladd.f64(double %672, double %611, double %671)
  %674 = load double, double* %452, align 16, !tbaa !8
  %675 = tail call double @llvm.fmuladd.f64(double %674, double %613, double %673)
  %676 = load double, double* %322, align 8, !tbaa !8
  %677 = tail call double @llvm.fmuladd.f64(double %676, double %615, double %675)
  %678 = load double, double* %453, align 8, !tbaa !8
  %679 = tail call double @llvm.fmuladd.f64(double %678, double %617, double %677)
  %680 = load double, double* %323, align 16, !tbaa !8
  %681 = tail call double @llvm.fmuladd.f64(double %680, double %619, double %679)
  %682 = load double, double* %454, align 16, !tbaa !8
  %683 = tail call double @llvm.fmuladd.f64(double %682, double %621, double %681)
  %684 = tail call double @llvm.fmuladd.f64(double %683, double -1.200000e+00, double %572)
  store double %684, double* %573, align 16, !tbaa !8
  %685 = load double, double* %587, align 8, !tbaa !8
  %686 = load double, double* %331, align 8, !tbaa !8
  %687 = load double, double* %462, align 8, !tbaa !8
  %688 = fmul double %687, %605
  %689 = tail call double @llvm.fmuladd.f64(double %686, double %603, double %688)
  %690 = load double, double* %332, align 8, !tbaa !8
  %691 = tail call double @llvm.fmuladd.f64(double %690, double %607, double %689)
  %692 = load double, double* %464, align 8, !tbaa !8
  %693 = tail call double @llvm.fmuladd.f64(double %692, double %609, double %691)
  %694 = load double, double* %334, align 8, !tbaa !8
  %695 = tail call double @llvm.fmuladd.f64(double %694, double %611, double %693)
  %696 = load double, double* %465, align 8, !tbaa !8
  %697 = tail call double @llvm.fmuladd.f64(double %696, double %613, double %695)
  %698 = load double, double* %335, align 8, !tbaa !8
  %699 = tail call double @llvm.fmuladd.f64(double %698, double %615, double %697)
  %700 = load double, double* %466, align 8, !tbaa !8
  %701 = tail call double @llvm.fmuladd.f64(double %700, double %617, double %699)
  %702 = load double, double* %336, align 8, !tbaa !8
  %703 = tail call double @llvm.fmuladd.f64(double %702, double %619, double %701)
  %704 = load double, double* %467, align 8, !tbaa !8
  %705 = tail call double @llvm.fmuladd.f64(double %704, double %621, double %703)
  %706 = tail call double @llvm.fmuladd.f64(double %705, double -1.200000e+00, double %685)
  store double %706, double* %587, align 8, !tbaa !8
  %707 = load double, double* %601, align 16, !tbaa !8
  %708 = load double, double* %359, align 16, !tbaa !8
  %709 = load double, double* %491, align 16, !tbaa !8
  %710 = fmul double %709, %605
  %711 = tail call double @llvm.fmuladd.f64(double %708, double %603, double %710)
  %712 = load double, double* %366, align 8, !tbaa !8
  %713 = tail call double @llvm.fmuladd.f64(double %712, double %607, double %711)
  %714 = load double, double* %502, align 8, !tbaa !8
  %715 = tail call double @llvm.fmuladd.f64(double %714, double %609, double %713)
  %716 = load double, double* %377, align 16, !tbaa !8
  %717 = tail call double @llvm.fmuladd.f64(double %716, double %611, double %715)
  %718 = load double, double* %509, align 16, !tbaa !8
  %719 = tail call double @llvm.fmuladd.f64(double %718, double %613, double %717)
  %720 = load double, double* %383, align 8, !tbaa !8
  %721 = tail call double @llvm.fmuladd.f64(double %720, double %615, double %719)
  %722 = load double, double* %515, align 8, !tbaa !8
  %723 = tail call double @llvm.fmuladd.f64(double %722, double %617, double %721)
  %724 = load double, double* %389, align 16, !tbaa !8
  %725 = tail call double @llvm.fmuladd.f64(double %724, double %619, double %723)
  %726 = load double, double* %521, align 16, !tbaa !8
  %727 = tail call double @llvm.fmuladd.f64(double %726, double %621, double %725)
  %728 = tail call double @llvm.fmuladd.f64(double %727, double -1.200000e+00, double %707)
  store double %728, double* %601, align 16, !tbaa !8
  %729 = bitcast [5 x [5 x double]]* %14 to i64*
  %730 = load i64, i64* %729, align 16, !tbaa !8
  %731 = bitcast [5 x [5 x double]]* %15 to i64*
  store i64 %730, i64* %731, align 16, !tbaa !8
  %732 = bitcast double* %66 to i64*
  %733 = load i64, i64* %732, align 8, !tbaa !8
  %734 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 0, i64 1
  %735 = bitcast double* %734 to i64*
  store i64 %733, i64* %735, align 8, !tbaa !8
  %736 = bitcast double* %67 to i64*
  %737 = load i64, i64* %736, align 16, !tbaa !8
  %738 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 0, i64 2
  %739 = bitcast double* %738 to i64*
  store i64 %737, i64* %739, align 16, !tbaa !8
  %740 = bitcast double* %68 to i64*
  %741 = load i64, i64* %740, align 8, !tbaa !8
  %742 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 0, i64 3
  %743 = bitcast double* %742 to i64*
  store i64 %741, i64* %743, align 8, !tbaa !8
  %744 = bitcast double* %69 to i64*
  %745 = load i64, i64* %744, align 16, !tbaa !8
  %746 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 0, i64 4
  %747 = bitcast double* %746 to i64*
  store i64 %745, i64* %747, align 16, !tbaa !8
  %748 = bitcast double* %74 to i64*
  %749 = load i64, i64* %748, align 8, !tbaa !8
  %750 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 1
  %751 = bitcast [5 x double]* %750 to i64*
  store i64 %749, i64* %751, align 8, !tbaa !8
  %752 = bitcast double* %78 to i64*
  %753 = load i64, i64* %752, align 8, !tbaa !8
  %754 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 1, i64 1
  %755 = bitcast double* %754 to i64*
  store i64 %753, i64* %755, align 8, !tbaa !8
  %756 = bitcast double* %79 to i64*
  %757 = load i64, i64* %756, align 8, !tbaa !8
  %758 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 1, i64 2
  %759 = bitcast double* %758 to i64*
  store i64 %757, i64* %759, align 8, !tbaa !8
  %760 = load double, double* %80, align 8, !tbaa !8
  %761 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 1, i64 3
  %762 = load double, double* %81, align 8, !tbaa !8
  %763 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 1, i64 4
  %764 = bitcast double* %85 to i64*
  %765 = load i64, i64* %764, align 16, !tbaa !8
  %766 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 2
  %767 = bitcast [5 x double]* %766 to i64*
  store i64 %765, i64* %767, align 16, !tbaa !8
  %768 = bitcast double* %86 to i64*
  %769 = load i64, i64* %768, align 8, !tbaa !8
  %770 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 2, i64 1
  %771 = bitcast double* %770 to i64*
  store i64 %769, i64* %771, align 8, !tbaa !8
  %772 = load double, double* %87, align 16, !tbaa !8
  %773 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 2, i64 2
  %774 = load double, double* %88, align 8, !tbaa !8
  %775 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 2, i64 3
  %776 = load double, double* %89, align 16, !tbaa !8
  %777 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 2, i64 4
  %778 = bitcast double* %93 to i64*
  %779 = load i64, i64* %778, align 8, !tbaa !8
  %780 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 3
  %781 = bitcast [5 x double]* %780 to i64*
  store i64 %779, i64* %781, align 8, !tbaa !8
  %782 = load double, double* %94, align 8, !tbaa !8
  %783 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 3, i64 1
  %784 = load double, double* %95, align 8, !tbaa !8
  %785 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 3, i64 2
  %786 = load double, double* %96, align 8, !tbaa !8
  %787 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 3, i64 3
  %788 = load double, double* %97, align 8, !tbaa !8
  %789 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 3, i64 4
  %790 = bitcast double* %110 to i64*
  %791 = load i64, i64* %790, align 16, !tbaa !8
  %792 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 4
  %793 = bitcast [5 x double]* %792 to i64*
  store i64 %791, i64* %793, align 16, !tbaa !8
  %794 = load double, double* %114, align 8, !tbaa !8
  %795 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 4, i64 1
  %796 = load double, double* %117, align 16, !tbaa !8
  %797 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 4, i64 2
  %798 = load double, double* %120, align 8, !tbaa !8
  %799 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 4, i64 3
  %800 = load double, double* %123, align 16, !tbaa !8
  %801 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 4, i64 4
  %802 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 0, i64 0
  %803 = load double, double* %802, align 16, !tbaa !8
  %804 = fdiv double 1.000000e+00, %803
  %805 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 1, i64 0
  %806 = load double, double* %805, align 8, !tbaa !8
  %807 = fmul double %804, %806
  %808 = bitcast i64 %753 to double
  %809 = load double, double* %734, align 8, !tbaa !8
  %810 = fsub double -0.000000e+00, %807
  %811 = tail call double @llvm.fmuladd.f64(double %810, double %809, double %808)
  store double %811, double* %754, align 8, !tbaa !8
  %812 = bitcast i64 %757 to double
  %813 = load double, double* %738, align 16, !tbaa !8
  %814 = tail call double @llvm.fmuladd.f64(double %810, double %813, double %812)
  store double %814, double* %758, align 8, !tbaa !8
  %815 = load double, double* %742, align 8, !tbaa !8
  %816 = tail call double @llvm.fmuladd.f64(double %810, double %815, double %760)
  store double %816, double* %761, align 8, !tbaa !8
  %817 = load double, double* %746, align 16, !tbaa !8
  %818 = tail call double @llvm.fmuladd.f64(double %810, double %817, double %762)
  store double %818, double* %763, align 8, !tbaa !8
  %819 = load double, double* %559, align 8, !tbaa !8
  %820 = load double, double* %545, align 16, !tbaa !8
  %821 = fsub double -0.000000e+00, %820
  %822 = tail call double @llvm.fmuladd.f64(double %821, double %807, double %819)
  store double %822, double* %559, align 8, !tbaa !8
  %823 = getelementptr inbounds [5 x [5 x double]], [5 x [5 x double]]* %15, i64 0, i64 2, i64 0
  %824 = load double, double* %823, align 16, !tbaa !8
  %825 = fmul double %804, %824
  %826 = bitcast i64 %769 to double
  %827 = fsub double -0.000000e+00, %825
  %828 = tail call double @llvm.fmuladd.f64(double %827, double %809, double %826)
  store double %828, double* %770, align 8, !tbaa !8
  %829 = tail call double @llvm.fmuladd.f64(double %827, double %813, double %772)
  %830 = tail call double @llvm.fmuladd.f64(double %827, double %815, double %774)
  %831 = tail call double @llvm.fmuladd.f64(double %827, double %817, double %776)
  %832 = load double, double* %573, align 16, !tbaa !8
  %833 = tail call double @llvm.fmuladd.f64(double %821, double %825, double %832)
  %834 = bitcast i64 %779 to double
  %835 = fmul double %804, %834
  %836 = fsub double -0.000000e+00, %835
  %837 = tail call double @llvm.fmuladd.f64(double %836, double %809, double %782)
  store double %837, double* %783, align 8, !tbaa !8
  %838 = tail call double @llvm.fmuladd.f64(double %836, double %813, double %784)
  %839 = tail call double @llvm.fmuladd.f64(double %836, double %815, double %786)
  %840 = tail call double @llvm.fmuladd.f64(double %836, double %817, double %788)
  %841 = load double, double* %587, align 8, !tbaa !8
  %842 = tail call double @llvm.fmuladd.f64(double %821, double %835, double %841)
  %843 = bitcast i64 %791 to double
  %844 = fmul double %804, %843
  %845 = fsub double -0.000000e+00, %844
  %846 = tail call double @llvm.fmuladd.f64(double %845, double %809, double %794)
  store double %846, double* %795, align 8, !tbaa !8
  %847 = tail call double @llvm.fmuladd.f64(double %845, double %813, double %796)
  %848 = tail call double @llvm.fmuladd.f64(double %845, double %815, double %798)
  %849 = tail call double @llvm.fmuladd.f64(double %845, double %817, double %800)
  %850 = load double, double* %601, align 16, !tbaa !8
  %851 = tail call double @llvm.fmuladd.f64(double %821, double %844, double %850)
  %852 = fdiv double 1.000000e+00, %811
  %853 = fmul double %852, %828
  %854 = fsub double -0.000000e+00, %853
  %855 = tail call double @llvm.fmuladd.f64(double %854, double %814, double %829)
  store double %855, double* %773, align 16, !tbaa !8
  %856 = tail call double @llvm.fmuladd.f64(double %854, double %816, double %830)
  store double %856, double* %775, align 8, !tbaa !8
  %857 = tail call double @llvm.fmuladd.f64(double %854, double %818, double %831)
  store double %857, double* %777, align 16, !tbaa !8
  %858 = fsub double -0.000000e+00, %822
  %859 = tail call double @llvm.fmuladd.f64(double %858, double %853, double %833)
  %860 = fmul double %852, %837
  %861 = fsub double -0.000000e+00, %860
  %862 = tail call double @llvm.fmuladd.f64(double %861, double %814, double %838)
  store double %862, double* %785, align 8, !tbaa !8
  %863 = tail call double @llvm.fmuladd.f64(double %861, double %816, double %839)
  %864 = tail call double @llvm.fmuladd.f64(double %861, double %818, double %840)
  %865 = tail call double @llvm.fmuladd.f64(double %858, double %860, double %842)
  %866 = fmul double %852, %846
  %867 = fsub double -0.000000e+00, %866
  %868 = tail call double @llvm.fmuladd.f64(double %867, double %814, double %847)
  store double %868, double* %797, align 16, !tbaa !8
  %869 = tail call double @llvm.fmuladd.f64(double %867, double %816, double %848)
  %870 = tail call double @llvm.fmuladd.f64(double %867, double %818, double %849)
  %871 = tail call double @llvm.fmuladd.f64(double %858, double %866, double %851)
  %872 = fdiv double 1.000000e+00, %855
  %873 = fmul double %872, %862
  %874 = fsub double -0.000000e+00, %873
  %875 = tail call double @llvm.fmuladd.f64(double %874, double %856, double %863)
  store double %875, double* %787, align 8, !tbaa !8
  %876 = tail call double @llvm.fmuladd.f64(double %874, double %857, double %864)
  store double %876, double* %789, align 8, !tbaa !8
  %877 = fsub double -0.000000e+00, %859
  %878 = tail call double @llvm.fmuladd.f64(double %877, double %873, double %865)
  %879 = fmul double %872, %868
  %880 = fsub double -0.000000e+00, %879
  %881 = tail call double @llvm.fmuladd.f64(double %880, double %856, double %869)
  store double %881, double* %799, align 8, !tbaa !8
  %882 = tail call double @llvm.fmuladd.f64(double %880, double %857, double %870)
  %883 = tail call double @llvm.fmuladd.f64(double %877, double %879, double %871)
  %884 = fdiv double 1.000000e+00, %875
  %885 = fmul double %884, %881
  %886 = fsub double -0.000000e+00, %885
  %887 = tail call double @llvm.fmuladd.f64(double %886, double %876, double %882)
  store double %887, double* %801, align 16, !tbaa !8
  %888 = fsub double -0.000000e+00, %878
  %889 = tail call double @llvm.fmuladd.f64(double %888, double %885, double %883)
  store double %889, double* %601, align 16, !tbaa !8
  %890 = fdiv double %889, %887
  store double %890, double* %588, align 8, !tbaa !8
  %891 = fsub double -0.000000e+00, %876
  %892 = tail call double @llvm.fmuladd.f64(double %891, double %890, double %878)
  store double %892, double* %587, align 8, !tbaa !8
  %893 = fdiv double %892, %875
  store double %893, double* %574, align 8, !tbaa !8
  %894 = fsub double -0.000000e+00, %856
  %895 = tail call double @llvm.fmuladd.f64(double %894, double %893, double %859)
  %896 = fsub double -0.000000e+00, %857
  %897 = tail call double @llvm.fmuladd.f64(double %896, double %890, double %895)
  store double %897, double* %573, align 16, !tbaa !8
  %898 = fdiv double %897, %855
  store double %898, double* %560, align 8, !tbaa !8
  %899 = fsub double -0.000000e+00, %814
  %900 = tail call double @llvm.fmuladd.f64(double %899, double %898, double %822)
  %901 = fsub double -0.000000e+00, %816
  %902 = tail call double @llvm.fmuladd.f64(double %901, double %893, double %900)
  %903 = fsub double -0.000000e+00, %818
  %904 = tail call double @llvm.fmuladd.f64(double %903, double %890, double %902)
  store double %904, double* %559, align 8, !tbaa !8
  %905 = fdiv double %904, %811
  store double %905, double* %546, align 8, !tbaa !8
  %906 = fsub double -0.000000e+00, %809
  %907 = tail call double @llvm.fmuladd.f64(double %906, double %905, double %820)
  %908 = fsub double -0.000000e+00, %813
  %909 = tail call double @llvm.fmuladd.f64(double %908, double %898, double %907)
  %910 = fsub double -0.000000e+00, %815
  %911 = tail call double @llvm.fmuladd.f64(double %910, double %893, double %909)
  %912 = fsub double -0.000000e+00, %817
  %913 = tail call double @llvm.fmuladd.f64(double %912, double %890, double %911)
  store double %913, double* %545, align 16, !tbaa !8
  %914 = fdiv double %913, %803
  store double %914, double* %532, align 8, !tbaa !8
  br label %915

; <label>:915:                                    ; preds = %10, %41, %50
  call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %22) #4
  call void @llvm.lifetime.end.p0i8(i64 200, i8* nonnull %21) #4
  call void @llvm.lifetime.end.p0i8(i64 200, i8* nonnull %20) #4
  call void @llvm.lifetime.end.p0i8(i64 200, i8* nonnull %19) #4
  call void @llvm.lifetime.end.p0i8(i64 200, i8* nonnull %18) #4
  call void @llvm.lifetime.end.p0i8(i64 200, i8* nonnull %17) #4
  ret void
}

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1

; Function Attrs: nounwind readnone
declare i64 @_Z13get_global_idj(i32) local_unnamed_addr #2

; Function Attrs: nounwind readnone speculatable
declare double @llvm.fmuladd.f64(double, double, double) #3

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1

attributes #0 = { nounwind ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind }
attributes #2 = { nounwind readnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #3 = { nounwind readnone speculatable }
attributes #4 = { nounwind }
attributes #5 = { nounwind readnone }

!llvm.module.flags = !{!0, !1}
!opencl.ocl.version = !{!2}
!llvm.ident = !{!3}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 7, !"PIC Level", i32 2}
!2 = !{i32 1, i32 0}
!3 = !{!"Apple LLVM version 9.1.0 (clang-902.0.39.1)"}
!4 = !{i32 1, i32 1, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0}
!5 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none", !"none", !"none", !"none"}
!6 = !{!"double*", !"double*", !"double*", !"double*", !"int", !"int", !"int", !"int", !"int", !"int"}
!7 = !{!"", !"", !"", !"", !"", !"", !"", !"", !"", !""}
!8 = !{!9, !9, i64 0}
!9 = !{!"double", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C/C++ TBAA"}
