; LLVM IR from bohanwang/libpgo :: src/core/mesh/tribox3.ll (ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_)

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

@__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e0 = external hidden unnamed_addr constant [3 x double], align 16
@__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e1 = external hidden unnamed_addr constant [3 x double], align 16
@__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e2 = external hidden unnamed_addr constant [3 x double], align 16

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4) #0 {
  %6 = alloca i1, align 1
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca [3 x [3 x double]], align 16
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca i32, align 4
  %20 = alloca [3 x double], align 16
  %21 = alloca [3 x double], align 16
  %22 = alloca [3 x double], align 16
  %23 = alloca [3 x double], align 16
  %24 = alloca [3 x double], align 16
  %25 = alloca [3 x double], align 16
  %26 = alloca [3 x ptr], align 16
  %27 = alloca [3 x ptr], align 16
  %28 = alloca [3 x double], align 16
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca [3 x double], align 16
  %34 = alloca double, align 8
  %35 = alloca [3 x double], align 16
  %36 = alloca [3 x double], align 16
  %37 = alloca i8, align 1
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 72, ptr %12) #5
  %38 = load ptr, ptr %9, align 8, !tbaa !5
  %39 = getelementptr inbounds double, ptr %38, i64 0
  %40 = load double, ptr %39, align 8, !tbaa !9
  %41 = load ptr, ptr %7, align 8, !tbaa !5
  %42 = getelementptr inbounds double, ptr %41, i64 0
  %43 = load double, ptr %42, align 8, !tbaa !9
  %44 = fsub double %40, %43
  %45 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %46 = getelementptr inbounds [3 x double], ptr %45, i64 0, i64 0
  store double %44, ptr %46, align 16, !tbaa !9
  %47 = load ptr, ptr %9, align 8, !tbaa !5
  %48 = getelementptr inbounds double, ptr %47, i64 1
  %49 = load double, ptr %48, align 8, !tbaa !9
  %50 = load ptr, ptr %7, align 8, !tbaa !5
  %51 = getelementptr inbounds double, ptr %50, i64 1
  %52 = load double, ptr %51, align 8, !tbaa !9
  %53 = fsub double %49, %52
  %54 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %55 = getelementptr inbounds [3 x double], ptr %54, i64 0, i64 1
  store double %53, ptr %55, align 8, !tbaa !9
  %56 = load ptr, ptr %9, align 8, !tbaa !5
  %57 = getelementptr inbounds double, ptr %56, i64 2
  %58 = load double, ptr %57, align 8, !tbaa !9
  %59 = load ptr, ptr %7, align 8, !tbaa !5
  %60 = getelementptr inbounds double, ptr %59, i64 2
  %61 = load double, ptr %60, align 8, !tbaa !9
  %62 = fsub double %58, %61
  %63 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %64 = getelementptr inbounds [3 x double], ptr %63, i64 0, i64 2
  store double %62, ptr %64, align 16, !tbaa !9
  %65 = load ptr, ptr %10, align 8, !tbaa !5
  %66 = getelementptr inbounds double, ptr %65, i64 0
  %67 = load double, ptr %66, align 8, !tbaa !9
  %68 = load ptr, ptr %7, align 8, !tbaa !5
  %69 = getelementptr inbounds double, ptr %68, i64 0
  %70 = load double, ptr %69, align 8, !tbaa !9
  %71 = fsub double %67, %70
  %72 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %73 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 0
  store double %71, ptr %73, align 8, !tbaa !9
  %74 = load ptr, ptr %10, align 8, !tbaa !5
  %75 = getelementptr inbounds double, ptr %74, i64 1
  %76 = load double, ptr %75, align 8, !tbaa !9
  %77 = load ptr, ptr %7, align 8, !tbaa !5
  %78 = getelementptr inbounds double, ptr %77, i64 1
  %79 = load double, ptr %78, align 8, !tbaa !9
  %80 = fsub double %76, %79
  %81 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %82 = getelementptr inbounds [3 x double], ptr %81, i64 0, i64 1
  store double %80, ptr %82, align 8, !tbaa !9
  %83 = load ptr, ptr %10, align 8, !tbaa !5
  %84 = getelementptr inbounds double, ptr %83, i64 2
  %85 = load double, ptr %84, align 8, !tbaa !9
  %86 = load ptr, ptr %7, align 8, !tbaa !5
  %87 = getelementptr inbounds double, ptr %86, i64 2
  %88 = load double, ptr %87, align 8, !tbaa !9
  %89 = fsub double %85, %88
  %90 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %91 = getelementptr inbounds [3 x double], ptr %90, i64 0, i64 2
  store double %89, ptr %91, align 8, !tbaa !9
  %92 = load ptr, ptr %11, align 8, !tbaa !5
  %93 = getelementptr inbounds double, ptr %92, i64 0
  %94 = load double, ptr %93, align 8, !tbaa !9
  %95 = load ptr, ptr %7, align 8, !tbaa !5
  %96 = getelementptr inbounds double, ptr %95, i64 0
  %97 = load double, ptr %96, align 8, !tbaa !9
  %98 = fsub double %94, %97
  %99 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %100 = getelementptr inbounds [3 x double], ptr %99, i64 0, i64 0
  store double %98, ptr %100, align 16, !tbaa !9
  %101 = load ptr, ptr %11, align 8, !tbaa !5
  %102 = getelementptr inbounds double, ptr %101, i64 1
  %103 = load double, ptr %102, align 8, !tbaa !9
  %104 = load ptr, ptr %7, align 8, !tbaa !5
  %105 = getelementptr inbounds double, ptr %104, i64 1
  %106 = load double, ptr %105, align 8, !tbaa !9
  %107 = fsub double %103, %106
  %108 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %109 = getelementptr inbounds [3 x double], ptr %108, i64 0, i64 1
  store double %107, ptr %109, align 8, !tbaa !9
  %110 = load ptr, ptr %11, align 8, !tbaa !5
  %111 = getelementptr inbounds double, ptr %110, i64 2
  %112 = load double, ptr %111, align 8, !tbaa !9
  %113 = load ptr, ptr %7, align 8, !tbaa !5
  %114 = getelementptr inbounds double, ptr %113, i64 2
  %115 = load double, ptr %114, align 8, !tbaa !9
  %116 = fsub double %112, %115
  %117 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %118 = getelementptr inbounds [3 x double], ptr %117, i64 0, i64 2
  store double %116, ptr %118, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %119 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %120 = getelementptr inbounds [3 x double], ptr %119, i64 0, i64 0
  %121 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %122 = getelementptr inbounds [3 x double], ptr %121, i64 0, i64 0
  %123 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef nonnull align 8 dereferenceable(8) %122)
  %124 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %125 = getelementptr inbounds [3 x double], ptr %124, i64 0, i64 0
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %125)
  %127 = load double, ptr %126, align 8, !tbaa !9
  store double %127, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  %128 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %129 = getelementptr inbounds [3 x double], ptr %128, i64 0, i64 1
  %130 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %131 = getelementptr inbounds [3 x double], ptr %130, i64 0, i64 1
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %131)
  %133 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %134 = getelementptr inbounds [3 x double], ptr %133, i64 0, i64 1
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull align 8 dereferenceable(8) %134)
  %136 = load double, ptr %135, align 8, !tbaa !9
  store double %136, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %137 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %138 = getelementptr inbounds [3 x double], ptr %137, i64 0, i64 2
  %139 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %140 = getelementptr inbounds [3 x double], ptr %139, i64 0, i64 2
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef nonnull align 8 dereferenceable(8) %140)
  %142 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %143 = getelementptr inbounds [3 x double], ptr %142, i64 0, i64 2
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull align 8 dereferenceable(8) %143)
  %145 = load double, ptr %144, align 8, !tbaa !9
  store double %145, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  %146 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %147 = getelementptr inbounds [3 x double], ptr %146, i64 0, i64 0
  %148 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %149 = getelementptr inbounds [3 x double], ptr %148, i64 0, i64 0
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef nonnull align 8 dereferenceable(8) %149)
  %151 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %152 = getelementptr inbounds [3 x double], ptr %151, i64 0, i64 0
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull align 8 dereferenceable(8) %152)
  %154 = load double, ptr %153, align 8, !tbaa !9
  store double %154, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %155 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %156 = getelementptr inbounds [3 x double], ptr %155, i64 0, i64 1
  %157 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %158 = getelementptr inbounds [3 x double], ptr %157, i64 0, i64 1
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull align 8 dereferenceable(8) %158)
  %160 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %161 = getelementptr inbounds [3 x double], ptr %160, i64 0, i64 1
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(8) %161)
  %163 = load double, ptr %162, align 8, !tbaa !9
  store double %163, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %164 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %165 = getelementptr inbounds [3 x double], ptr %164, i64 0, i64 2
  %166 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %167 = getelementptr inbounds [3 x double], ptr %166, i64 0, i64 2
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull align 8 dereferenceable(8) %167)
  %169 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %170 = getelementptr inbounds [3 x double], ptr %169, i64 0, i64 2
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull align 8 dereferenceable(8) %170)
  %172 = load double, ptr %171, align 8, !tbaa !9
  store double %172, ptr %18, align 8, !tbaa !9
  %173 = load ptr, ptr %8, align 8, !tbaa !5
  %174 = getelementptr inbounds double, ptr %173, i64 0
  %175 = load double, ptr %174, align 8, !tbaa !9
  %176 = load double, ptr %13, align 8, !tbaa !9
  %177 = fcmp olt double %175, %176
  br i1 %177, label %211, label %178

178:                                              ; preds = %5
  %179 = load double, ptr %16, align 8, !tbaa !9
  %180 = load ptr, ptr %8, align 8, !tbaa !5
  %181 = getelementptr inbounds double, ptr %180, i64 0
  %182 = load double, ptr %181, align 8, !tbaa !9
  %183 = fneg double %182
  %184 = fcmp olt double %179, %183
  br i1 %184, label %211, label %185

185:                                              ; preds = %178
  %186 = load ptr, ptr %8, align 8, !tbaa !5
  %187 = getelementptr inbounds double, ptr %186, i64 1
  %188 = load double, ptr %187, align 8, !tbaa !9
  %189 = load double, ptr %14, align 8, !tbaa !9
  %190 = fcmp olt double %188, %189
  br i1 %190, label %211, label %191

191:                                              ; preds = %185
  %192 = load double, ptr %17, align 8, !tbaa !9
  %193 = load ptr, ptr %8, align 8, !tbaa !5
  %194 = getelementptr inbounds double, ptr %193, i64 1
  %195 = load double, ptr %194, align 8, !tbaa !9
  %196 = fneg double %195
  %197 = fcmp olt double %192, %196
  br i1 %197, label %211, label %198

198:                                              ; preds = %191
  %199 = load ptr, ptr %8, align 8, !tbaa !5
  %200 = getelementptr inbounds double, ptr %199, i64 2
  %201 = load double, ptr %200, align 8, !tbaa !9
  %202 = load double, ptr %15, align 8, !tbaa !9
  %203 = fcmp olt double %201, %202
  br i1 %203, label %211, label %204

204:                                              ; preds = %198
  %205 = load double, ptr %18, align 8, !tbaa !9
  %206 = load ptr, ptr %8, align 8, !tbaa !5
  %207 = getelementptr inbounds double, ptr %206, i64 2
  %208 = load double, ptr %207, align 8, !tbaa !9
  %209 = fneg double %208
  %210 = fcmp olt double %205, %209
  br i1 %210, label %211, label %212

211:                                              ; preds = %204, %198, %191, %185, %178, %5
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1806

212:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %20, ptr align 16 @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %21, ptr align 16 @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e1, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %22, ptr align 16 @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e2, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #5
  %213 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %214 = getelementptr inbounds [3 x double], ptr %213, i64 0, i64 0
  %215 = load double, ptr %214, align 8, !tbaa !9
  %216 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %217 = getelementptr inbounds [3 x double], ptr %216, i64 0, i64 0
  %218 = load double, ptr %217, align 16, !tbaa !9
  %219 = fsub double %215, %218
  %220 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 0
  store double %219, ptr %220, align 16, !tbaa !9
  %221 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %222 = getelementptr inbounds [3 x double], ptr %221, i64 0, i64 1
  %223 = load double, ptr %222, align 8, !tbaa !9
  %224 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %225 = getelementptr inbounds [3 x double], ptr %224, i64 0, i64 1
  %226 = load double, ptr %225, align 8, !tbaa !9
  %227 = fsub double %223, %226
  %228 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 1
  store double %227, ptr %228, align 8, !tbaa !9
  %229 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %230 = getelementptr inbounds [3 x double], ptr %229, i64 0, i64 2
  %231 = load double, ptr %230, align 8, !tbaa !9
  %232 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %233 = getelementptr inbounds [3 x double], ptr %232, i64 0, i64 2
  %234 = load double, ptr %233, align 16, !tbaa !9
  %235 = fsub double %231, %234
  %236 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 2
  store double %235, ptr %236, align 16, !tbaa !9
  %237 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %238 = getelementptr inbounds [3 x double], ptr %237, i64 0, i64 0
  %239 = load double, ptr %238, align 16, !tbaa !9
  %240 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %241 = getelementptr inbounds [3 x double], ptr %240, i64 0, i64 0
  %242 = load double, ptr %241, align 8, !tbaa !9
  %243 = fsub double %239, %242
  %244 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 0
  store double %243, ptr %244, align 16, !tbaa !9
  %245 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %246 = getelementptr inbounds [3 x double], ptr %245, i64 0, i64 1
  %247 = load double, ptr %246, align 8, !tbaa !9
  %248 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %249 = getelementptr inbounds [3 x double], ptr %248, i64 0, i64 1
  %250 = load double, ptr %249, align 8, !tbaa !9
  %251 = fsub double %247, %250
  %252 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 1
  store double %251, ptr %252, align 8, !tbaa !9
  %253 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %254 = getelementptr inbounds [3 x double], ptr %253, i64 0, i64 2
  %255 = load double, ptr %254, align 16, !tbaa !9
  %256 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %257 = getelementptr inbounds [3 x double], ptr %256, i64 0, i64 2
  %258 = load double, ptr %257, align 8, !tbaa !9
  %259 = fsub double %255, %258
  %260 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 2
  store double %259, ptr %260, align 16, !tbaa !9
  %261 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %262 = getelementptr inbounds [3 x double], ptr %261, i64 0, i64 0
  %263 = load double, ptr %262, align 16, !tbaa !9
  %264 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %265 = getelementptr inbounds [3 x double], ptr %264, i64 0, i64 0
  %266 = load double, ptr %265, align 16, !tbaa !9
  %267 = fsub double %263, %266
  %268 = getelementptr inbounds [3 x double], ptr %25, i64 0, i64 0
  store double %267, ptr %268, align 16, !tbaa !9
  %269 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %270 = getelementptr inbounds [3 x double], ptr %269, i64 0, i64 1
  %271 = load double, ptr %270, align 8, !tbaa !9
  %272 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %273 = getelementptr inbounds [3 x double], ptr %272, i64 0, i64 1
  %274 = load double, ptr %273, align 8, !tbaa !9
  %275 = fsub double %271, %274
  %276 = getelementptr inbounds [3 x double], ptr %25, i64 0, i64 1
  store double %275, ptr %276, align 8, !tbaa !9
  %277 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %278 = getelementptr inbounds [3 x double], ptr %277, i64 0, i64 2
  %279 = load double, ptr %278, align 16, !tbaa !9
  %280 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %281 = getelementptr inbounds [3 x double], ptr %280, i64 0, i64 2
  %282 = load double, ptr %281, align 16, !tbaa !9
  %283 = fsub double %279, %282
  %284 = getelementptr inbounds [3 x double], ptr %25, i64 0, i64 2
  store double %283, ptr %284, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #5
  %285 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  store ptr %285, ptr %26, align 8, !tbaa !5
  %286 = getelementptr inbounds ptr, ptr %26, i64 1
  %287 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 0
  store ptr %287, ptr %286, align 8, !tbaa !5
  %288 = getelementptr inbounds ptr, ptr %26, i64 2
  %289 = getelementptr inbounds [3 x double], ptr %22, i64 0, i64 0
  store ptr %289, ptr %288, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %27) #5
  %290 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 0
  store ptr %290, ptr %27, align 8, !tbaa !5
  %291 = getelementptr inbounds ptr, ptr %27, i64 1
  %292 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 0
  store ptr %292, ptr %291, align 8, !tbaa !5
  %293 = getelementptr inbounds ptr, ptr %27, i64 2
  %294 = getelementptr inbounds [3 x double], ptr %25, i64 0, i64 0
  store ptr %294, ptr %293, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %295 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %296 = load ptr, ptr %295, align 16, !tbaa !5
  %297 = getelementptr inbounds double, ptr %296, i64 1
  %298 = load double, ptr %297, align 8, !tbaa !9
  %299 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %300 = load ptr, ptr %299, align 16, !tbaa !5
  %301 = getelementptr inbounds double, ptr %300, i64 2
  %302 = load double, ptr %301, align 8, !tbaa !9
  %303 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %304 = load ptr, ptr %303, align 16, !tbaa !5
  %305 = getelementptr inbounds double, ptr %304, i64 1
  %306 = load double, ptr %305, align 8, !tbaa !9
  %307 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %308 = load ptr, ptr %307, align 16, !tbaa !5
  %309 = getelementptr inbounds double, ptr %308, i64 2
  %310 = load double, ptr %309, align 8, !tbaa !9
  %311 = fmul double %306, %310
  %312 = fneg double %311
  %313 = call double @llvm.fmuladd.f64(double %298, double %302, double %312)
  %314 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %313, ptr %314, align 16, !tbaa !9
  %315 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %316 = load ptr, ptr %315, align 16, !tbaa !5
  %317 = getelementptr inbounds double, ptr %316, i64 0
  %318 = load double, ptr %317, align 8, !tbaa !9
  %319 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %320 = load ptr, ptr %319, align 16, !tbaa !5
  %321 = getelementptr inbounds double, ptr %320, i64 2
  %322 = load double, ptr %321, align 8, !tbaa !9
  %323 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %324 = load ptr, ptr %323, align 16, !tbaa !5
  %325 = getelementptr inbounds double, ptr %324, i64 0
  %326 = load double, ptr %325, align 8, !tbaa !9
  %327 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %328 = load ptr, ptr %327, align 16, !tbaa !5
  %329 = getelementptr inbounds double, ptr %328, i64 2
  %330 = load double, ptr %329, align 8, !tbaa !9
  %331 = fmul double %326, %330
  %332 = fneg double %331
  %333 = call double @llvm.fmuladd.f64(double %318, double %322, double %332)
  %334 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %333, ptr %334, align 8, !tbaa !9
  %335 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %336 = load ptr, ptr %335, align 16, !tbaa !5
  %337 = getelementptr inbounds double, ptr %336, i64 0
  %338 = load double, ptr %337, align 8, !tbaa !9
  %339 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %340 = load ptr, ptr %339, align 16, !tbaa !5
  %341 = getelementptr inbounds double, ptr %340, i64 1
  %342 = load double, ptr %341, align 8, !tbaa !9
  %343 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %344 = load ptr, ptr %343, align 16, !tbaa !5
  %345 = getelementptr inbounds double, ptr %344, i64 0
  %346 = load double, ptr %345, align 8, !tbaa !9
  %347 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %348 = load ptr, ptr %347, align 16, !tbaa !5
  %349 = getelementptr inbounds double, ptr %348, i64 1
  %350 = load double, ptr %349, align 8, !tbaa !9
  %351 = fmul double %346, %350
  %352 = fneg double %351
  %353 = call double @llvm.fmuladd.f64(double %338, double %342, double %352)
  %354 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %353, ptr %354, align 16, !tbaa !9
  %355 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %356 = load double, ptr %355, align 16, !tbaa !9
  %357 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %358 = getelementptr inbounds [3 x double], ptr %357, i64 0, i64 0
  %359 = load double, ptr %358, align 16, !tbaa !9
  %360 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %361 = load double, ptr %360, align 8, !tbaa !9
  %362 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %363 = getelementptr inbounds [3 x double], ptr %362, i64 0, i64 1
  %364 = load double, ptr %363, align 8, !tbaa !9
  %365 = fmul double %361, %364
  %366 = call double @llvm.fmuladd.f64(double %356, double %359, double %365)
  %367 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %368 = load double, ptr %367, align 16, !tbaa !9
  %369 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %370 = getelementptr inbounds [3 x double], ptr %369, i64 0, i64 2
  %371 = load double, ptr %370, align 16, !tbaa !9
  %372 = call double @llvm.fmuladd.f64(double %368, double %371, double %366)
  store double %372, ptr %29, align 8, !tbaa !9
  %373 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %374 = load double, ptr %373, align 16, !tbaa !9
  %375 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %376 = getelementptr inbounds [3 x double], ptr %375, i64 0, i64 0
  %377 = load double, ptr %376, align 8, !tbaa !9
  %378 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %379 = load double, ptr %378, align 8, !tbaa !9
  %380 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %381 = getelementptr inbounds [3 x double], ptr %380, i64 0, i64 1
  %382 = load double, ptr %381, align 8, !tbaa !9
  %383 = fmul double %379, %382
  %384 = call double @llvm.fmuladd.f64(double %374, double %377, double %383)
  %385 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %386 = load double, ptr %385, align 16, !tbaa !9
  %387 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %388 = getelementptr inbounds [3 x double], ptr %387, i64 0, i64 2
  %389 = load double, ptr %388, align 8, !tbaa !9
  %390 = call double @llvm.fmuladd.f64(double %386, double %389, double %384)
  store double %390, ptr %30, align 8, !tbaa !9
  %391 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %392 = load double, ptr %391, align 16, !tbaa !9
  %393 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %394 = getelementptr inbounds [3 x double], ptr %393, i64 0, i64 0
  %395 = load double, ptr %394, align 16, !tbaa !9
  %396 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %397 = load double, ptr %396, align 8, !tbaa !9
  %398 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %399 = getelementptr inbounds [3 x double], ptr %398, i64 0, i64 1
  %400 = load double, ptr %399, align 8, !tbaa !9
  %401 = fmul double %397, %400
  %402 = call double @llvm.fmuladd.f64(double %392, double %395, double %401)
  %403 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %404 = load double, ptr %403, align 16, !tbaa !9
  %405 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %406 = getelementptr inbounds [3 x double], ptr %405, i64 0, i64 2
  %407 = load double, ptr %406, align 16, !tbaa !9
  %408 = call double @llvm.fmuladd.f64(double %404, double %407, double %402)
  store double %408, ptr %31, align 8, !tbaa !9
  %409 = load ptr, ptr %8, align 8, !tbaa !5
  %410 = getelementptr inbounds double, ptr %409, i64 0
  %411 = load double, ptr %410, align 8, !tbaa !9
  %412 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %413 = load double, ptr %412, align 16, !tbaa !9
  %414 = call double @llvm.fabs.f64(double %413)
  %415 = load ptr, ptr %8, align 8, !tbaa !5
  %416 = getelementptr inbounds double, ptr %415, i64 1
  %417 = load double, ptr %416, align 8, !tbaa !9
  %418 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %419 = load double, ptr %418, align 8, !tbaa !9
  %420 = call double @llvm.fabs.f64(double %419)
  %421 = fmul double %417, %420
  %422 = call double @llvm.fmuladd.f64(double %411, double %414, double %421)
  %423 = load ptr, ptr %8, align 8, !tbaa !5
  %424 = getelementptr inbounds double, ptr %423, i64 2
  %425 = load double, ptr %424, align 8, !tbaa !9
  %426 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %427 = load double, ptr %426, align 16, !tbaa !9
  %428 = call double @llvm.fabs.f64(double %427)
  %429 = call double @llvm.fmuladd.f64(double %425, double %428, double %422)
  store double %429, ptr %32, align 8, !tbaa !9
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %431 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %430, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %432 = load double, ptr %431, align 8, !tbaa !9
  %433 = load double, ptr %32, align 8, !tbaa !9
  %434 = fcmp ogt double %432, %433
  br i1 %434, label %442, label %435

435:                                              ; preds = %212
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %437 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %438 = load double, ptr %437, align 8, !tbaa !9
  %439 = load double, ptr %32, align 8, !tbaa !9
  %440 = fneg double %439
  %441 = fcmp olt double %438, %440
  br i1 %441, label %442, label %443

442:                                              ; preds = %435, %212
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

443:                                              ; preds = %435
  %444 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %445 = load ptr, ptr %444, align 16, !tbaa !5
  %446 = getelementptr inbounds double, ptr %445, i64 1
  %447 = load double, ptr %446, align 8, !tbaa !9
  %448 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %449 = load ptr, ptr %448, align 8, !tbaa !5
  %450 = getelementptr inbounds double, ptr %449, i64 2
  %451 = load double, ptr %450, align 8, !tbaa !9
  %452 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %453 = load ptr, ptr %452, align 8, !tbaa !5
  %454 = getelementptr inbounds double, ptr %453, i64 1
  %455 = load double, ptr %454, align 8, !tbaa !9
  %456 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %457 = load ptr, ptr %456, align 16, !tbaa !5
  %458 = getelementptr inbounds double, ptr %457, i64 2
  %459 = load double, ptr %458, align 8, !tbaa !9
  %460 = fmul double %455, %459
  %461 = fneg double %460
  %462 = call double @llvm.fmuladd.f64(double %447, double %451, double %461)
  %463 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %462, ptr %463, align 16, !tbaa !9
  %464 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %465 = load ptr, ptr %464, align 8, !tbaa !5
  %466 = getelementptr inbounds double, ptr %465, i64 0
  %467 = load double, ptr %466, align 8, !tbaa !9
  %468 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %469 = load ptr, ptr %468, align 16, !tbaa !5
  %470 = getelementptr inbounds double, ptr %469, i64 2
  %471 = load double, ptr %470, align 8, !tbaa !9
  %472 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %473 = load ptr, ptr %472, align 16, !tbaa !5
  %474 = getelementptr inbounds double, ptr %473, i64 0
  %475 = load double, ptr %474, align 8, !tbaa !9
  %476 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %477 = load ptr, ptr %476, align 8, !tbaa !5
  %478 = getelementptr inbounds double, ptr %477, i64 2
  %479 = load double, ptr %478, align 8, !tbaa !9
  %480 = fmul double %475, %479
  %481 = fneg double %480
  %482 = call double @llvm.fmuladd.f64(double %467, double %471, double %481)
  %483 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %482, ptr %483, align 8, !tbaa !9
  %484 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %485 = load ptr, ptr %484, align 16, !tbaa !5
  %486 = getelementptr inbounds double, ptr %485, i64 0
  %487 = load double, ptr %486, align 8, !tbaa !9
  %488 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %489 = load ptr, ptr %488, align 8, !tbaa !5
  %490 = getelementptr inbounds double, ptr %489, i64 1
  %491 = load double, ptr %490, align 8, !tbaa !9
  %492 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %493 = load ptr, ptr %492, align 8, !tbaa !5
  %494 = getelementptr inbounds double, ptr %493, i64 0
  %495 = load double, ptr %494, align 8, !tbaa !9
  %496 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %497 = load ptr, ptr %496, align 16, !tbaa !5
  %498 = getelementptr inbounds double, ptr %497, i64 1
  %499 = load double, ptr %498, align 8, !tbaa !9
  %500 = fmul double %495, %499
  %501 = fneg double %500
  %502 = call double @llvm.fmuladd.f64(double %487, double %491, double %501)
  %503 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %502, ptr %503, align 16, !tbaa !9
  %504 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %505 = load double, ptr %504, align 16, !tbaa !9
  %506 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %507 = getelementptr inbounds [3 x double], ptr %506, i64 0, i64 0
  %508 = load double, ptr %507, align 16, !tbaa !9
  %509 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %510 = load double, ptr %509, align 8, !tbaa !9
  %511 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %512 = getelementptr inbounds [3 x double], ptr %511, i64 0, i64 1
  %513 = load double, ptr %512, align 8, !tbaa !9
  %514 = fmul double %510, %513
  %515 = call double @llvm.fmuladd.f64(double %505, double %508, double %514)
  %516 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %517 = load double, ptr %516, align 16, !tbaa !9
  %518 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %519 = getelementptr inbounds [3 x double], ptr %518, i64 0, i64 2
  %520 = load double, ptr %519, align 16, !tbaa !9
  %521 = call double @llvm.fmuladd.f64(double %517, double %520, double %515)
  store double %521, ptr %29, align 8, !tbaa !9
  %522 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %523 = load double, ptr %522, align 16, !tbaa !9
  %524 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %525 = getelementptr inbounds [3 x double], ptr %524, i64 0, i64 0
  %526 = load double, ptr %525, align 8, !tbaa !9
  %527 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %528 = load double, ptr %527, align 8, !tbaa !9
  %529 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %530 = getelementptr inbounds [3 x double], ptr %529, i64 0, i64 1
  %531 = load double, ptr %530, align 8, !tbaa !9
  %532 = fmul double %528, %531
  %533 = call double @llvm.fmuladd.f64(double %523, double %526, double %532)
  %534 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %535 = load double, ptr %534, align 16, !tbaa !9
  %536 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %537 = getelementptr inbounds [3 x double], ptr %536, i64 0, i64 2
  %538 = load double, ptr %537, align 8, !tbaa !9
  %539 = call double @llvm.fmuladd.f64(double %535, double %538, double %533)
  store double %539, ptr %30, align 8, !tbaa !9
  %540 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %541 = load double, ptr %540, align 16, !tbaa !9
  %542 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %543 = getelementptr inbounds [3 x double], ptr %542, i64 0, i64 0
  %544 = load double, ptr %543, align 16, !tbaa !9
  %545 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %546 = load double, ptr %545, align 8, !tbaa !9
  %547 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %548 = getelementptr inbounds [3 x double], ptr %547, i64 0, i64 1
  %549 = load double, ptr %548, align 8, !tbaa !9
  %550 = fmul double %546, %549
  %551 = call double @llvm.fmuladd.f64(double %541, double %544, double %550)
  %552 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %553 = load double, ptr %552, align 16, !tbaa !9
  %554 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %555 = getelementptr inbounds [3 x double], ptr %554, i64 0, i64 2
  %556 = load double, ptr %555, align 16, !tbaa !9
  %557 = call double @llvm.fmuladd.f64(double %553, double %556, double %551)
  store double %557, ptr %31, align 8, !tbaa !9
  %558 = load ptr, ptr %8, align 8, !tbaa !5
  %559 = getelementptr inbounds double, ptr %558, i64 0
  %560 = load double, ptr %559, align 8, !tbaa !9
  %561 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %562 = load double, ptr %561, align 16, !tbaa !9
  %563 = call double @llvm.fabs.f64(double %562)
  %564 = load ptr, ptr %8, align 8, !tbaa !5
  %565 = getelementptr inbounds double, ptr %564, i64 1
  %566 = load double, ptr %565, align 8, !tbaa !9
  %567 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %568 = load double, ptr %567, align 8, !tbaa !9
  %569 = call double @llvm.fabs.f64(double %568)
  %570 = fmul double %566, %569
  %571 = call double @llvm.fmuladd.f64(double %560, double %563, double %570)
  %572 = load ptr, ptr %8, align 8, !tbaa !5
  %573 = getelementptr inbounds double, ptr %572, i64 2
  %574 = load double, ptr %573, align 8, !tbaa !9
  %575 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %576 = load double, ptr %575, align 16, !tbaa !9
  %577 = call double @llvm.fabs.f64(double %576)
  %578 = call double @llvm.fmuladd.f64(double %574, double %577, double %571)
  store double %578, ptr %32, align 8, !tbaa !9
  %579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %580 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %581 = load double, ptr %580, align 8, !tbaa !9
  %582 = load double, ptr %32, align 8, !tbaa !9
  %583 = fcmp ogt double %581, %582
  br i1 %583, label %591, label %584

584:                                              ; preds = %443
  %585 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %585, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %587 = load double, ptr %586, align 8, !tbaa !9
  %588 = load double, ptr %32, align 8, !tbaa !9
  %589 = fneg double %588
  %590 = fcmp olt double %587, %589
  br i1 %590, label %591, label %592

591:                                              ; preds = %584, %443
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

592:                                              ; preds = %584
  %593 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %594 = load ptr, ptr %593, align 16, !tbaa !5
  %595 = getelementptr inbounds double, ptr %594, i64 1
  %596 = load double, ptr %595, align 8, !tbaa !9
  %597 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %598 = load ptr, ptr %597, align 16, !tbaa !5
  %599 = getelementptr inbounds double, ptr %598, i64 2
  %600 = load double, ptr %599, align 8, !tbaa !9
  %601 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %602 = load ptr, ptr %601, align 16, !tbaa !5
  %603 = getelementptr inbounds double, ptr %602, i64 1
  %604 = load double, ptr %603, align 8, !tbaa !9
  %605 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %606 = load ptr, ptr %605, align 16, !tbaa !5
  %607 = getelementptr inbounds double, ptr %606, i64 2
  %608 = load double, ptr %607, align 8, !tbaa !9
  %609 = fmul double %604, %608
  %610 = fneg double %609
  %611 = call double @llvm.fmuladd.f64(double %596, double %600, double %610)
  %612 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %611, ptr %612, align 16, !tbaa !9
  %613 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %614 = load ptr, ptr %613, align 16, !tbaa !5
  %615 = getelementptr inbounds double, ptr %614, i64 0
  %616 = load double, ptr %615, align 8, !tbaa !9
  %617 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %618 = load ptr, ptr %617, align 16, !tbaa !5
  %619 = getelementptr inbounds double, ptr %618, i64 2
  %620 = load double, ptr %619, align 8, !tbaa !9
  %621 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %622 = load ptr, ptr %621, align 16, !tbaa !5
  %623 = getelementptr inbounds double, ptr %622, i64 0
  %624 = load double, ptr %623, align 8, !tbaa !9
  %625 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %626 = load ptr, ptr %625, align 16, !tbaa !5
  %627 = getelementptr inbounds double, ptr %626, i64 2
  %628 = load double, ptr %627, align 8, !tbaa !9
  %629 = fmul double %624, %628
  %630 = fneg double %629
  %631 = call double @llvm.fmuladd.f64(double %616, double %620, double %630)
  %632 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %631, ptr %632, align 8, !tbaa !9
  %633 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %634 = load ptr, ptr %633, align 16, !tbaa !5
  %635 = getelementptr inbounds double, ptr %634, i64 0
  %636 = load double, ptr %635, align 8, !tbaa !9
  %637 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %638 = load ptr, ptr %637, align 16, !tbaa !5
  %639 = getelementptr inbounds double, ptr %638, i64 1
  %640 = load double, ptr %639, align 8, !tbaa !9
  %641 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %642 = load ptr, ptr %641, align 16, !tbaa !5
  %643 = getelementptr inbounds double, ptr %642, i64 0
  %644 = load double, ptr %643, align 8, !tbaa !9
  %645 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %646 = load ptr, ptr %645, align 16, !tbaa !5
  %647 = getelementptr inbounds double, ptr %646, i64 1
  %648 = load double, ptr %647, align 8, !tbaa !9
  %649 = fmul double %644, %648
  %650 = fneg double %649
  %651 = call double @llvm.fmuladd.f64(double %636, double %640, double %650)
  %652 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %651, ptr %652, align 16, !tbaa !9
  %653 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %654 = load double, ptr %653, align 16, !tbaa !9
  %655 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %656 = getelementptr inbounds [3 x double], ptr %655, i64 0, i64 0
  %657 = load double, ptr %656, align 16, !tbaa !9
  %658 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %659 = load double, ptr %658, align 8, !tbaa !9
  %660 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %661 = getelementptr inbounds [3 x double], ptr %660, i64 0, i64 1
  %662 = load double, ptr %661, align 8, !tbaa !9
  %663 = fmul double %659, %662
  %664 = call double @llvm.fmuladd.f64(double %654, double %657, double %663)
  %665 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %666 = load double, ptr %665, align 16, !tbaa !9
  %667 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %668 = getelementptr inbounds [3 x double], ptr %667, i64 0, i64 2
  %669 = load double, ptr %668, align 16, !tbaa !9
  %670 = call double @llvm.fmuladd.f64(double %666, double %669, double %664)
  store double %670, ptr %29, align 8, !tbaa !9
  %671 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %672 = load double, ptr %671, align 16, !tbaa !9
  %673 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %674 = getelementptr inbounds [3 x double], ptr %673, i64 0, i64 0
  %675 = load double, ptr %674, align 8, !tbaa !9
  %676 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %677 = load double, ptr %676, align 8, !tbaa !9
  %678 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %679 = getelementptr inbounds [3 x double], ptr %678, i64 0, i64 1
  %680 = load double, ptr %679, align 8, !tbaa !9
  %681 = fmul double %677, %680
  %682 = call double @llvm.fmuladd.f64(double %672, double %675, double %681)
  %683 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %684 = load double, ptr %683, align 16, !tbaa !9
  %685 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %686 = getelementptr inbounds [3 x double], ptr %685, i64 0, i64 2
  %687 = load double, ptr %686, align 8, !tbaa !9
  %688 = call double @llvm.fmuladd.f64(double %684, double %687, double %682)
  store double %688, ptr %30, align 8, !tbaa !9
  %689 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %690 = load double, ptr %689, align 16, !tbaa !9
  %691 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %692 = getelementptr inbounds [3 x double], ptr %691, i64 0, i64 0
  %693 = load double, ptr %692, align 16, !tbaa !9
  %694 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %695 = load double, ptr %694, align 8, !tbaa !9
  %696 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %697 = getelementptr inbounds [3 x double], ptr %696, i64 0, i64 1
  %698 = load double, ptr %697, align 8, !tbaa !9
  %699 = fmul double %695, %698
  %700 = call double @llvm.fmuladd.f64(double %690, double %693, double %699)
  %701 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %702 = load double, ptr %701, align 16, !tbaa !9
  %703 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %704 = getelementptr inbounds [3 x double], ptr %703, i64 0, i64 2
  %705 = load double, ptr %704, align 16, !tbaa !9
  %706 = call double @llvm.fmuladd.f64(double %702, double %705, double %700)
  store double %706, ptr %31, align 8, !tbaa !9
  %707 = load ptr, ptr %8, align 8, !tbaa !5
  %708 = getelementptr inbounds double, ptr %707, i64 0
  %709 = load double, ptr %708, align 8, !tbaa !9
  %710 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %711 = load double, ptr %710, align 16, !tbaa !9
  %712 = call double @llvm.fabs.f64(double %711)
  %713 = load ptr, ptr %8, align 8, !tbaa !5
  %714 = getelementptr inbounds double, ptr %713, i64 1
  %715 = load double, ptr %714, align 8, !tbaa !9
  %716 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %717 = load double, ptr %716, align 8, !tbaa !9
  %718 = call double @llvm.fabs.f64(double %717)
  %719 = fmul double %715, %718
  %720 = call double @llvm.fmuladd.f64(double %709, double %712, double %719)
  %721 = load ptr, ptr %8, align 8, !tbaa !5
  %722 = getelementptr inbounds double, ptr %721, i64 2
  %723 = load double, ptr %722, align 8, !tbaa !9
  %724 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %725 = load double, ptr %724, align 16, !tbaa !9
  %726 = call double @llvm.fabs.f64(double %725)
  %727 = call double @llvm.fmuladd.f64(double %723, double %726, double %720)
  store double %727, ptr %32, align 8, !tbaa !9
  %728 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %729 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %728, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %730 = load double, ptr %729, align 8, !tbaa !9
  %731 = load double, ptr %32, align 8, !tbaa !9
  %732 = fcmp ogt double %730, %731
  br i1 %732, label %740, label %733

733:                                              ; preds = %592
  %734 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %735 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %736 = load double, ptr %735, align 8, !tbaa !9
  %737 = load double, ptr %32, align 8, !tbaa !9
  %738 = fneg double %737
  %739 = fcmp olt double %736, %738
  br i1 %739, label %740, label %741

740:                                              ; preds = %733, %592
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

741:                                              ; preds = %733
  %742 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %743 = load ptr, ptr %742, align 8, !tbaa !5
  %744 = getelementptr inbounds double, ptr %743, i64 1
  %745 = load double, ptr %744, align 8, !tbaa !9
  %746 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %747 = load ptr, ptr %746, align 16, !tbaa !5
  %748 = getelementptr inbounds double, ptr %747, i64 2
  %749 = load double, ptr %748, align 8, !tbaa !9
  %750 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %751 = load ptr, ptr %750, align 16, !tbaa !5
  %752 = getelementptr inbounds double, ptr %751, i64 1
  %753 = load double, ptr %752, align 8, !tbaa !9
  %754 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %755 = load ptr, ptr %754, align 8, !tbaa !5
  %756 = getelementptr inbounds double, ptr %755, i64 2
  %757 = load double, ptr %756, align 8, !tbaa !9
  %758 = fmul double %753, %757
  %759 = fneg double %758
  %760 = call double @llvm.fmuladd.f64(double %745, double %749, double %759)
  %761 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %760, ptr %761, align 16, !tbaa !9
  %762 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %763 = load ptr, ptr %762, align 16, !tbaa !5
  %764 = getelementptr inbounds double, ptr %763, i64 0
  %765 = load double, ptr %764, align 8, !tbaa !9
  %766 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %767 = load ptr, ptr %766, align 8, !tbaa !5
  %768 = getelementptr inbounds double, ptr %767, i64 2
  %769 = load double, ptr %768, align 8, !tbaa !9
  %770 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %771 = load ptr, ptr %770, align 8, !tbaa !5
  %772 = getelementptr inbounds double, ptr %771, i64 0
  %773 = load double, ptr %772, align 8, !tbaa !9
  %774 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %775 = load ptr, ptr %774, align 16, !tbaa !5
  %776 = getelementptr inbounds double, ptr %775, i64 2
  %777 = load double, ptr %776, align 8, !tbaa !9
  %778 = fmul double %773, %777
  %779 = fneg double %778
  %780 = call double @llvm.fmuladd.f64(double %765, double %769, double %779)
  %781 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %780, ptr %781, align 8, !tbaa !9
  %782 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %783 = load ptr, ptr %782, align 8, !tbaa !5
  %784 = getelementptr inbounds double, ptr %783, i64 0
  %785 = load double, ptr %784, align 8, !tbaa !9
  %786 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %787 = load ptr, ptr %786, align 16, !tbaa !5
  %788 = getelementptr inbounds double, ptr %787, i64 1
  %789 = load double, ptr %788, align 8, !tbaa !9
  %790 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %791 = load ptr, ptr %790, align 16, !tbaa !5
  %792 = getelementptr inbounds double, ptr %791, i64 0
  %793 = load double, ptr %792, align 8, !tbaa !9
  %794 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %795 = load ptr, ptr %794, align 8, !tbaa !5
  %796 = getelementptr inbounds double, ptr %795, i64 1
  %797 = load double, ptr %796, align 8, !tbaa !9
  %798 = fmul double %793, %797
  %799 = fneg double %798
  %800 = call double @llvm.fmuladd.f64(double %785, double %789, double %799)
  %801 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %800, ptr %801, align 16, !tbaa !9
  %802 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %803 = load double, ptr %802, align 16, !tbaa !9
  %804 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %805 = getelementptr inbounds [3 x double], ptr %804, i64 0, i64 0
  %806 = load double, ptr %805, align 16, !tbaa !9
  %807 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %808 = load double, ptr %807, align 8, !tbaa !9
  %809 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %810 = getelementptr inbounds [3 x double], ptr %809, i64 0, i64 1
  %811 = load double, ptr %810, align 8, !tbaa !9
  %812 = fmul double %808, %811
  %813 = call double @llvm.fmuladd.f64(double %803, double %806, double %812)
  %814 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %815 = load double, ptr %814, align 16, !tbaa !9
  %816 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %817 = getelementptr inbounds [3 x double], ptr %816, i64 0, i64 2
  %818 = load double, ptr %817, align 16, !tbaa !9
  %819 = call double @llvm.fmuladd.f64(double %815, double %818, double %813)
  store double %819, ptr %29, align 8, !tbaa !9
  %820 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %821 = load double, ptr %820, align 16, !tbaa !9
  %822 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %823 = getelementptr inbounds [3 x double], ptr %822, i64 0, i64 0
  %824 = load double, ptr %823, align 8, !tbaa !9
  %825 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %826 = load double, ptr %825, align 8, !tbaa !9
  %827 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %828 = getelementptr inbounds [3 x double], ptr %827, i64 0, i64 1
  %829 = load double, ptr %828, align 8, !tbaa !9
  %830 = fmul double %826, %829
  %831 = call double @llvm.fmuladd.f64(double %821, double %824, double %830)
  %832 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %833 = load double, ptr %832, align 16, !tbaa !9
  %834 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %835 = getelementptr inbounds [3 x double], ptr %834, i64 0, i64 2
  %836 = load double, ptr %835, align 8, !tbaa !9
  %837 = call double @llvm.fmuladd.f64(double %833, double %836, double %831)
  store double %837, ptr %30, align 8, !tbaa !9
  %838 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %839 = load double, ptr %838, align 16, !tbaa !9
  %840 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %841 = getelementptr inbounds [3 x double], ptr %840, i64 0, i64 0
  %842 = load double, ptr %841, align 16, !tbaa !9
  %843 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %844 = load double, ptr %843, align 8, !tbaa !9
  %845 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %846 = getelementptr inbounds [3 x double], ptr %845, i64 0, i64 1
  %847 = load double, ptr %846, align 8, !tbaa !9
  %848 = fmul double %844, %847
  %849 = call double @llvm.fmuladd.f64(double %839, double %842, double %848)
  %850 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %851 = load double, ptr %850, align 16, !tbaa !9
  %852 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %853 = getelementptr inbounds [3 x double], ptr %852, i64 0, i64 2
  %854 = load double, ptr %853, align 16, !tbaa !9
  %855 = call double @llvm.fmuladd.f64(double %851, double %854, double %849)
  store double %855, ptr %31, align 8, !tbaa !9
  %856 = load ptr, ptr %8, align 8, !tbaa !5
  %857 = getelementptr inbounds double, ptr %856, i64 0
  %858 = load double, ptr %857, align 8, !tbaa !9
  %859 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %860 = load double, ptr %859, align 16, !tbaa !9
  %861 = call double @llvm.fabs.f64(double %860)
  %862 = load ptr, ptr %8, align 8, !tbaa !5
  %863 = getelementptr inbounds double, ptr %862, i64 1
  %864 = load double, ptr %863, align 8, !tbaa !9
  %865 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %866 = load double, ptr %865, align 8, !tbaa !9
  %867 = call double @llvm.fabs.f64(double %866)
  %868 = fmul double %864, %867
  %869 = call double @llvm.fmuladd.f64(double %858, double %861, double %868)
  %870 = load ptr, ptr %8, align 8, !tbaa !5
  %871 = getelementptr inbounds double, ptr %870, i64 2
  %872 = load double, ptr %871, align 8, !tbaa !9
  %873 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %874 = load double, ptr %873, align 16, !tbaa !9
  %875 = call double @llvm.fabs.f64(double %874)
  %876 = call double @llvm.fmuladd.f64(double %872, double %875, double %869)
  store double %876, ptr %32, align 8, !tbaa !9
  %877 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %878 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %877, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %879 = load double, ptr %878, align 8, !tbaa !9
  %880 = load double, ptr %32, align 8, !tbaa !9
  %881 = fcmp ogt double %879, %880
  br i1 %881, label %889, label %882

882:                                              ; preds = %741
  %883 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %884 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %883, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %885 = load double, ptr %884, align 8, !tbaa !9
  %886 = load double, ptr %32, align 8, !tbaa !9
  %887 = fneg double %886
  %888 = fcmp olt double %885, %887
  br i1 %888, label %889, label %890

889:                                              ; preds = %882, %741
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

890:                                              ; preds = %882
  %891 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %892 = load ptr, ptr %891, align 8, !tbaa !5
  %893 = getelementptr inbounds double, ptr %892, i64 1
  %894 = load double, ptr %893, align 8, !tbaa !9
  %895 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %896 = load ptr, ptr %895, align 8, !tbaa !5
  %897 = getelementptr inbounds double, ptr %896, i64 2
  %898 = load double, ptr %897, align 8, !tbaa !9
  %899 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %900 = load ptr, ptr %899, align 8, !tbaa !5
  %901 = getelementptr inbounds double, ptr %900, i64 1
  %902 = load double, ptr %901, align 8, !tbaa !9
  %903 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %904 = load ptr, ptr %903, align 8, !tbaa !5
  %905 = getelementptr inbounds double, ptr %904, i64 2
  %906 = load double, ptr %905, align 8, !tbaa !9
  %907 = fmul double %902, %906
  %908 = fneg double %907
  %909 = call double @llvm.fmuladd.f64(double %894, double %898, double %908)
  %910 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %909, ptr %910, align 16, !tbaa !9
  %911 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %912 = load ptr, ptr %911, align 8, !tbaa !5
  %913 = getelementptr inbounds double, ptr %912, i64 0
  %914 = load double, ptr %913, align 8, !tbaa !9
  %915 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %916 = load ptr, ptr %915, align 8, !tbaa !5
  %917 = getelementptr inbounds double, ptr %916, i64 2
  %918 = load double, ptr %917, align 8, !tbaa !9
  %919 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %920 = load ptr, ptr %919, align 8, !tbaa !5
  %921 = getelementptr inbounds double, ptr %920, i64 0
  %922 = load double, ptr %921, align 8, !tbaa !9
  %923 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %924 = load ptr, ptr %923, align 8, !tbaa !5
  %925 = getelementptr inbounds double, ptr %924, i64 2
  %926 = load double, ptr %925, align 8, !tbaa !9
  %927 = fmul double %922, %926
  %928 = fneg double %927
  %929 = call double @llvm.fmuladd.f64(double %914, double %918, double %928)
  %930 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %929, ptr %930, align 8, !tbaa !9
  %931 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %932 = load ptr, ptr %931, align 8, !tbaa !5
  %933 = getelementptr inbounds double, ptr %932, i64 0
  %934 = load double, ptr %933, align 8, !tbaa !9
  %935 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %936 = load ptr, ptr %935, align 8, !tbaa !5
  %937 = getelementptr inbounds double, ptr %936, i64 1
  %938 = load double, ptr %937, align 8, !tbaa !9
  %939 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %940 = load ptr, ptr %939, align 8, !tbaa !5
  %941 = getelementptr inbounds double, ptr %940, i64 0
  %942 = load double, ptr %941, align 8, !tbaa !9
  %943 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %944 = load ptr, ptr %943, align 8, !tbaa !5
  %945 = getelementptr inbounds double, ptr %944, i64 1
  %946 = load double, ptr %945, align 8, !tbaa !9
  %947 = fmul double %942, %946
  %948 = fneg double %947
  %949 = call double @llvm.fmuladd.f64(double %934, double %938, double %948)
  %950 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %949, ptr %950, align 16, !tbaa !9
  %951 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %952 = load double, ptr %951, align 16, !tbaa !9
  %953 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %954 = getelementptr inbounds [3 x double], ptr %953, i64 0, i64 0
  %955 = load double, ptr %954, align 16, !tbaa !9
  %956 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %957 = load double, ptr %956, align 8, !tbaa !9
  %958 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %959 = getelementptr inbounds [3 x double], ptr %958, i64 0, i64 1
  %960 = load double, ptr %959, align 8, !tbaa !9
  %961 = fmul double %957, %960
  %962 = call double @llvm.fmuladd.f64(double %952, double %955, double %961)
  %963 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %964 = load double, ptr %963, align 16, !tbaa !9
  %965 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %966 = getelementptr inbounds [3 x double], ptr %965, i64 0, i64 2
  %967 = load double, ptr %966, align 16, !tbaa !9
  %968 = call double @llvm.fmuladd.f64(double %964, double %967, double %962)
  store double %968, ptr %29, align 8, !tbaa !9
  %969 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %970 = load double, ptr %969, align 16, !tbaa !9
  %971 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %972 = getelementptr inbounds [3 x double], ptr %971, i64 0, i64 0
  %973 = load double, ptr %972, align 8, !tbaa !9
  %974 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %975 = load double, ptr %974, align 8, !tbaa !9
  %976 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %977 = getelementptr inbounds [3 x double], ptr %976, i64 0, i64 1
  %978 = load double, ptr %977, align 8, !tbaa !9
  %979 = fmul double %975, %978
  %980 = call double @llvm.fmuladd.f64(double %970, double %973, double %979)
  %981 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %982 = load double, ptr %981, align 16, !tbaa !9
  %983 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %984 = getelementptr inbounds [3 x double], ptr %983, i64 0, i64 2
  %985 = load double, ptr %984, align 8, !tbaa !9
  %986 = call double @llvm.fmuladd.f64(double %982, double %985, double %980)
  store double %986, ptr %30, align 8, !tbaa !9
  %987 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %988 = load double, ptr %987, align 16, !tbaa !9
  %989 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %990 = getelementptr inbounds [3 x double], ptr %989, i64 0, i64 0
  %991 = load double, ptr %990, align 16, !tbaa !9
  %992 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %993 = load double, ptr %992, align 8, !tbaa !9
  %994 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %995 = getelementptr inbounds [3 x double], ptr %994, i64 0, i64 1
  %996 = load double, ptr %995, align 8, !tbaa !9
  %997 = fmul double %993, %996
  %998 = call double @llvm.fmuladd.f64(double %988, double %991, double %997)
  %999 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1000 = load double, ptr %999, align 16, !tbaa !9
  %1001 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1002 = getelementptr inbounds [3 x double], ptr %1001, i64 0, i64 2
  %1003 = load double, ptr %1002, align 16, !tbaa !9
  %1004 = call double @llvm.fmuladd.f64(double %1000, double %1003, double %998)
  store double %1004, ptr %31, align 8, !tbaa !9
  %1005 = load ptr, ptr %8, align 8, !tbaa !5
  %1006 = getelementptr inbounds double, ptr %1005, i64 0
  %1007 = load double, ptr %1006, align 8, !tbaa !9
  %1008 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1009 = load double, ptr %1008, align 16, !tbaa !9
  %1010 = call double @llvm.fabs.f64(double %1009)
  %1011 = load ptr, ptr %8, align 8, !tbaa !5
  %1012 = getelementptr inbounds double, ptr %1011, i64 1
  %1013 = load double, ptr %1012, align 8, !tbaa !9
  %1014 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1015 = load double, ptr %1014, align 8, !tbaa !9
  %1016 = call double @llvm.fabs.f64(double %1015)
  %1017 = fmul double %1013, %1016
  %1018 = call double @llvm.fmuladd.f64(double %1007, double %1010, double %1017)
  %1019 = load ptr, ptr %8, align 8, !tbaa !5
  %1020 = getelementptr inbounds double, ptr %1019, i64 2
  %1021 = load double, ptr %1020, align 8, !tbaa !9
  %1022 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1023 = load double, ptr %1022, align 16, !tbaa !9
  %1024 = call double @llvm.fabs.f64(double %1023)
  %1025 = call double @llvm.fmuladd.f64(double %1021, double %1024, double %1018)
  store double %1025, ptr %32, align 8, !tbaa !9
  %1026 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1027 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1026, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1028 = load double, ptr %1027, align 8, !tbaa !9
  %1029 = load double, ptr %32, align 8, !tbaa !9
  %1030 = fcmp ogt double %1028, %1029
  br i1 %1030, label %1038, label %1031

1031:                                             ; preds = %890
  %1032 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1033 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1032, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1034 = load double, ptr %1033, align 8, !tbaa !9
  %1035 = load double, ptr %32, align 8, !tbaa !9
  %1036 = fneg double %1035
  %1037 = fcmp olt double %1034, %1036
  br i1 %1037, label %1038, label %1039

1038:                                             ; preds = %1031, %890
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

1039:                                             ; preds = %1031
  %1040 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %1041 = load ptr, ptr %1040, align 8, !tbaa !5
  %1042 = getelementptr inbounds double, ptr %1041, i64 1
  %1043 = load double, ptr %1042, align 8, !tbaa !9
  %1044 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1045 = load ptr, ptr %1044, align 16, !tbaa !5
  %1046 = getelementptr inbounds double, ptr %1045, i64 2
  %1047 = load double, ptr %1046, align 8, !tbaa !9
  %1048 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1049 = load ptr, ptr %1048, align 16, !tbaa !5
  %1050 = getelementptr inbounds double, ptr %1049, i64 1
  %1051 = load double, ptr %1050, align 8, !tbaa !9
  %1052 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %1053 = load ptr, ptr %1052, align 8, !tbaa !5
  %1054 = getelementptr inbounds double, ptr %1053, i64 2
  %1055 = load double, ptr %1054, align 8, !tbaa !9
  %1056 = fmul double %1051, %1055
  %1057 = fneg double %1056
  %1058 = call double @llvm.fmuladd.f64(double %1043, double %1047, double %1057)
  %1059 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %1058, ptr %1059, align 16, !tbaa !9
  %1060 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1061 = load ptr, ptr %1060, align 16, !tbaa !5
  %1062 = getelementptr inbounds double, ptr %1061, i64 0
  %1063 = load double, ptr %1062, align 8, !tbaa !9
  %1064 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %1065 = load ptr, ptr %1064, align 8, !tbaa !5
  %1066 = getelementptr inbounds double, ptr %1065, i64 2
  %1067 = load double, ptr %1066, align 8, !tbaa !9
  %1068 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %1069 = load ptr, ptr %1068, align 8, !tbaa !5
  %1070 = getelementptr inbounds double, ptr %1069, i64 0
  %1071 = load double, ptr %1070, align 8, !tbaa !9
  %1072 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1073 = load ptr, ptr %1072, align 16, !tbaa !5
  %1074 = getelementptr inbounds double, ptr %1073, i64 2
  %1075 = load double, ptr %1074, align 8, !tbaa !9
  %1076 = fmul double %1071, %1075
  %1077 = fneg double %1076
  %1078 = call double @llvm.fmuladd.f64(double %1063, double %1067, double %1077)
  %1079 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %1078, ptr %1079, align 8, !tbaa !9
  %1080 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %1081 = load ptr, ptr %1080, align 8, !tbaa !5
  %1082 = getelementptr inbounds double, ptr %1081, i64 0
  %1083 = load double, ptr %1082, align 8, !tbaa !9
  %1084 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1085 = load ptr, ptr %1084, align 16, !tbaa !5
  %1086 = getelementptr inbounds double, ptr %1085, i64 1
  %1087 = load double, ptr %1086, align 8, !tbaa !9
  %1088 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1089 = load ptr, ptr %1088, align 16, !tbaa !5
  %1090 = getelementptr inbounds double, ptr %1089, i64 0
  %1091 = load double, ptr %1090, align 8, !tbaa !9
  %1092 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %1093 = load ptr, ptr %1092, align 8, !tbaa !5
  %1094 = getelementptr inbounds double, ptr %1093, i64 1
  %1095 = load double, ptr %1094, align 8, !tbaa !9
  %1096 = fmul double %1091, %1095
  %1097 = fneg double %1096
  %1098 = call double @llvm.fmuladd.f64(double %1083, double %1087, double %1097)
  %1099 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %1098, ptr %1099, align 16, !tbaa !9
  %1100 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1101 = load double, ptr %1100, align 16, !tbaa !9
  %1102 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1103 = getelementptr inbounds [3 x double], ptr %1102, i64 0, i64 0
  %1104 = load double, ptr %1103, align 16, !tbaa !9
  %1105 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1106 = load double, ptr %1105, align 8, !tbaa !9
  %1107 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1108 = getelementptr inbounds [3 x double], ptr %1107, i64 0, i64 1
  %1109 = load double, ptr %1108, align 8, !tbaa !9
  %1110 = fmul double %1106, %1109
  %1111 = call double @llvm.fmuladd.f64(double %1101, double %1104, double %1110)
  %1112 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1113 = load double, ptr %1112, align 16, !tbaa !9
  %1114 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1115 = getelementptr inbounds [3 x double], ptr %1114, i64 0, i64 2
  %1116 = load double, ptr %1115, align 16, !tbaa !9
  %1117 = call double @llvm.fmuladd.f64(double %1113, double %1116, double %1111)
  store double %1117, ptr %29, align 8, !tbaa !9
  %1118 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1119 = load double, ptr %1118, align 16, !tbaa !9
  %1120 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1121 = getelementptr inbounds [3 x double], ptr %1120, i64 0, i64 0
  %1122 = load double, ptr %1121, align 8, !tbaa !9
  %1123 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1124 = load double, ptr %1123, align 8, !tbaa !9
  %1125 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1126 = getelementptr inbounds [3 x double], ptr %1125, i64 0, i64 1
  %1127 = load double, ptr %1126, align 8, !tbaa !9
  %1128 = fmul double %1124, %1127
  %1129 = call double @llvm.fmuladd.f64(double %1119, double %1122, double %1128)
  %1130 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1131 = load double, ptr %1130, align 16, !tbaa !9
  %1132 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1133 = getelementptr inbounds [3 x double], ptr %1132, i64 0, i64 2
  %1134 = load double, ptr %1133, align 8, !tbaa !9
  %1135 = call double @llvm.fmuladd.f64(double %1131, double %1134, double %1129)
  store double %1135, ptr %30, align 8, !tbaa !9
  %1136 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1137 = load double, ptr %1136, align 16, !tbaa !9
  %1138 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1139 = getelementptr inbounds [3 x double], ptr %1138, i64 0, i64 0
  %1140 = load double, ptr %1139, align 16, !tbaa !9
  %1141 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1142 = load double, ptr %1141, align 8, !tbaa !9
  %1143 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1144 = getelementptr inbounds [3 x double], ptr %1143, i64 0, i64 1
  %1145 = load double, ptr %1144, align 8, !tbaa !9
  %1146 = fmul double %1142, %1145
  %1147 = call double @llvm.fmuladd.f64(double %1137, double %1140, double %1146)
  %1148 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1149 = load double, ptr %1148, align 16, !tbaa !9
  %1150 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1151 = getelementptr inbounds [3 x double], ptr %1150, i64 0, i64 2
  %1152 = load double, ptr %1151, align 16, !tbaa !9
  %1153 = call double @llvm.fmuladd.f64(double %1149, double %1152, double %1147)
  store double %1153, ptr %31, align 8, !tbaa !9
  %1154 = load ptr, ptr %8, align 8, !tbaa !5
  %1155 = getelementptr inbounds double, ptr %1154, i64 0
  %1156 = load double, ptr %1155, align 8, !tbaa !9
  %1157 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1158 = load double, ptr %1157, align 16, !tbaa !9
  %1159 = call double @llvm.fabs.f64(double %1158)
  %1160 = load ptr, ptr %8, align 8, !tbaa !5
  %1161 = getelementptr inbounds double, ptr %1160, i64 1
  %1162 = load double, ptr %1161, align 8, !tbaa !9
  %1163 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1164 = load double, ptr %1163, align 8, !tbaa !9
  %1165 = call double @llvm.fabs.f64(double %1164)
  %1166 = fmul double %1162, %1165
  %1167 = call double @llvm.fmuladd.f64(double %1156, double %1159, double %1166)
  %1168 = load ptr, ptr %8, align 8, !tbaa !5
  %1169 = getelementptr inbounds double, ptr %1168, i64 2
  %1170 = load double, ptr %1169, align 8, !tbaa !9
  %1171 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1172 = load double, ptr %1171, align 16, !tbaa !9
  %1173 = call double @llvm.fabs.f64(double %1172)
  %1174 = call double @llvm.fmuladd.f64(double %1170, double %1173, double %1167)
  store double %1174, ptr %32, align 8, !tbaa !9
  %1175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1175, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1177 = load double, ptr %1176, align 8, !tbaa !9
  %1178 = load double, ptr %32, align 8, !tbaa !9
  %1179 = fcmp ogt double %1177, %1178
  br i1 %1179, label %1187, label %1180

1180:                                             ; preds = %1039
  %1181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1181, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1183 = load double, ptr %1182, align 8, !tbaa !9
  %1184 = load double, ptr %32, align 8, !tbaa !9
  %1185 = fneg double %1184
  %1186 = fcmp olt double %1183, %1185
  br i1 %1186, label %1187, label %1188

1187:                                             ; preds = %1180, %1039
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

1188:                                             ; preds = %1180
  %1189 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1190 = load ptr, ptr %1189, align 16, !tbaa !5
  %1191 = getelementptr inbounds double, ptr %1190, i64 1
  %1192 = load double, ptr %1191, align 8, !tbaa !9
  %1193 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %1194 = load ptr, ptr %1193, align 16, !tbaa !5
  %1195 = getelementptr inbounds double, ptr %1194, i64 2
  %1196 = load double, ptr %1195, align 8, !tbaa !9
  %1197 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %1198 = load ptr, ptr %1197, align 16, !tbaa !5
  %1199 = getelementptr inbounds double, ptr %1198, i64 1
  %1200 = load double, ptr %1199, align 8, !tbaa !9
  %1201 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1202 = load ptr, ptr %1201, align 16, !tbaa !5
  %1203 = getelementptr inbounds double, ptr %1202, i64 2
  %1204 = load double, ptr %1203, align 8, !tbaa !9
  %1205 = fmul double %1200, %1204
  %1206 = fneg double %1205
  %1207 = call double @llvm.fmuladd.f64(double %1192, double %1196, double %1206)
  %1208 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %1207, ptr %1208, align 16, !tbaa !9
  %1209 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %1210 = load ptr, ptr %1209, align 16, !tbaa !5
  %1211 = getelementptr inbounds double, ptr %1210, i64 0
  %1212 = load double, ptr %1211, align 8, !tbaa !9
  %1213 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1214 = load ptr, ptr %1213, align 16, !tbaa !5
  %1215 = getelementptr inbounds double, ptr %1214, i64 2
  %1216 = load double, ptr %1215, align 8, !tbaa !9
  %1217 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1218 = load ptr, ptr %1217, align 16, !tbaa !5
  %1219 = getelementptr inbounds double, ptr %1218, i64 0
  %1220 = load double, ptr %1219, align 8, !tbaa !9
  %1221 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %1222 = load ptr, ptr %1221, align 16, !tbaa !5
  %1223 = getelementptr inbounds double, ptr %1222, i64 2
  %1224 = load double, ptr %1223, align 8, !tbaa !9
  %1225 = fmul double %1220, %1224
  %1226 = fneg double %1225
  %1227 = call double @llvm.fmuladd.f64(double %1212, double %1216, double %1226)
  %1228 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %1227, ptr %1228, align 8, !tbaa !9
  %1229 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1230 = load ptr, ptr %1229, align 16, !tbaa !5
  %1231 = getelementptr inbounds double, ptr %1230, i64 0
  %1232 = load double, ptr %1231, align 8, !tbaa !9
  %1233 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %1234 = load ptr, ptr %1233, align 16, !tbaa !5
  %1235 = getelementptr inbounds double, ptr %1234, i64 1
  %1236 = load double, ptr %1235, align 8, !tbaa !9
  %1237 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 0
  %1238 = load ptr, ptr %1237, align 16, !tbaa !5
  %1239 = getelementptr inbounds double, ptr %1238, i64 0
  %1240 = load double, ptr %1239, align 8, !tbaa !9
  %1241 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1242 = load ptr, ptr %1241, align 16, !tbaa !5
  %1243 = getelementptr inbounds double, ptr %1242, i64 1
  %1244 = load double, ptr %1243, align 8, !tbaa !9
  %1245 = fmul double %1240, %1244
  %1246 = fneg double %1245
  %1247 = call double @llvm.fmuladd.f64(double %1232, double %1236, double %1246)
  %1248 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %1247, ptr %1248, align 16, !tbaa !9
  %1249 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1250 = load double, ptr %1249, align 16, !tbaa !9
  %1251 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1252 = getelementptr inbounds [3 x double], ptr %1251, i64 0, i64 0
  %1253 = load double, ptr %1252, align 16, !tbaa !9
  %1254 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1255 = load double, ptr %1254, align 8, !tbaa !9
  %1256 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1257 = getelementptr inbounds [3 x double], ptr %1256, i64 0, i64 1
  %1258 = load double, ptr %1257, align 8, !tbaa !9
  %1259 = fmul double %1255, %1258
  %1260 = call double @llvm.fmuladd.f64(double %1250, double %1253, double %1259)
  %1261 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1262 = load double, ptr %1261, align 16, !tbaa !9
  %1263 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1264 = getelementptr inbounds [3 x double], ptr %1263, i64 0, i64 2
  %1265 = load double, ptr %1264, align 16, !tbaa !9
  %1266 = call double @llvm.fmuladd.f64(double %1262, double %1265, double %1260)
  store double %1266, ptr %29, align 8, !tbaa !9
  %1267 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1268 = load double, ptr %1267, align 16, !tbaa !9
  %1269 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1270 = getelementptr inbounds [3 x double], ptr %1269, i64 0, i64 0
  %1271 = load double, ptr %1270, align 8, !tbaa !9
  %1272 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1273 = load double, ptr %1272, align 8, !tbaa !9
  %1274 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1275 = getelementptr inbounds [3 x double], ptr %1274, i64 0, i64 1
  %1276 = load double, ptr %1275, align 8, !tbaa !9
  %1277 = fmul double %1273, %1276
  %1278 = call double @llvm.fmuladd.f64(double %1268, double %1271, double %1277)
  %1279 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1280 = load double, ptr %1279, align 16, !tbaa !9
  %1281 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1282 = getelementptr inbounds [3 x double], ptr %1281, i64 0, i64 2
  %1283 = load double, ptr %1282, align 8, !tbaa !9
  %1284 = call double @llvm.fmuladd.f64(double %1280, double %1283, double %1278)
  store double %1284, ptr %30, align 8, !tbaa !9
  %1285 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1286 = load double, ptr %1285, align 16, !tbaa !9
  %1287 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1288 = getelementptr inbounds [3 x double], ptr %1287, i64 0, i64 0
  %1289 = load double, ptr %1288, align 16, !tbaa !9
  %1290 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1291 = load double, ptr %1290, align 8, !tbaa !9
  %1292 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1293 = getelementptr inbounds [3 x double], ptr %1292, i64 0, i64 1
  %1294 = load double, ptr %1293, align 8, !tbaa !9
  %1295 = fmul double %1291, %1294
  %1296 = call double @llvm.fmuladd.f64(double %1286, double %1289, double %1295)
  %1297 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1298 = load double, ptr %1297, align 16, !tbaa !9
  %1299 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1300 = getelementptr inbounds [3 x double], ptr %1299, i64 0, i64 2
  %1301 = load double, ptr %1300, align 16, !tbaa !9
  %1302 = call double @llvm.fmuladd.f64(double %1298, double %1301, double %1296)
  store double %1302, ptr %31, align 8, !tbaa !9
  %1303 = load ptr, ptr %8, align 8, !tbaa !5
  %1304 = getelementptr inbounds double, ptr %1303, i64 0
  %1305 = load double, ptr %1304, align 8, !tbaa !9
  %1306 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1307 = load double, ptr %1306, align 16, !tbaa !9
  %1308 = call double @llvm.fabs.f64(double %1307)
  %1309 = load ptr, ptr %8, align 8, !tbaa !5
  %1310 = getelementptr inbounds double, ptr %1309, i64 1
  %1311 = load double, ptr %1310, align 8, !tbaa !9
  %1312 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1313 = load double, ptr %1312, align 8, !tbaa !9
  %1314 = call double @llvm.fabs.f64(double %1313)
  %1315 = fmul double %1311, %1314
  %1316 = call double @llvm.fmuladd.f64(double %1305, double %1308, double %1315)
  %1317 = load ptr, ptr %8, align 8, !tbaa !5
  %1318 = getelementptr inbounds double, ptr %1317, i64 2
  %1319 = load double, ptr %1318, align 8, !tbaa !9
  %1320 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1321 = load double, ptr %1320, align 16, !tbaa !9
  %1322 = call double @llvm.fabs.f64(double %1321)
  %1323 = call double @llvm.fmuladd.f64(double %1319, double %1322, double %1316)
  store double %1323, ptr %32, align 8, !tbaa !9
  %1324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1324, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1326 = load double, ptr %1325, align 8, !tbaa !9
  %1327 = load double, ptr %32, align 8, !tbaa !9
  %1328 = fcmp ogt double %1326, %1327
  br i1 %1328, label %1336, label %1329

1329:                                             ; preds = %1188
  %1330 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1330, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1332 = load double, ptr %1331, align 8, !tbaa !9
  %1333 = load double, ptr %32, align 8, !tbaa !9
  %1334 = fneg double %1333
  %1335 = fcmp olt double %1332, %1334
  br i1 %1335, label %1336, label %1337

1336:                                             ; preds = %1329, %1188
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

1337:                                             ; preds = %1329
  %1338 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1339 = load ptr, ptr %1338, align 16, !tbaa !5
  %1340 = getelementptr inbounds double, ptr %1339, i64 1
  %1341 = load double, ptr %1340, align 8, !tbaa !9
  %1342 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %1343 = load ptr, ptr %1342, align 8, !tbaa !5
  %1344 = getelementptr inbounds double, ptr %1343, i64 2
  %1345 = load double, ptr %1344, align 8, !tbaa !9
  %1346 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %1347 = load ptr, ptr %1346, align 8, !tbaa !5
  %1348 = getelementptr inbounds double, ptr %1347, i64 1
  %1349 = load double, ptr %1348, align 8, !tbaa !9
  %1350 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1351 = load ptr, ptr %1350, align 16, !tbaa !5
  %1352 = getelementptr inbounds double, ptr %1351, i64 2
  %1353 = load double, ptr %1352, align 8, !tbaa !9
  %1354 = fmul double %1349, %1353
  %1355 = fneg double %1354
  %1356 = call double @llvm.fmuladd.f64(double %1341, double %1345, double %1355)
  %1357 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %1356, ptr %1357, align 16, !tbaa !9
  %1358 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %1359 = load ptr, ptr %1358, align 8, !tbaa !5
  %1360 = getelementptr inbounds double, ptr %1359, i64 0
  %1361 = load double, ptr %1360, align 8, !tbaa !9
  %1362 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1363 = load ptr, ptr %1362, align 16, !tbaa !5
  %1364 = getelementptr inbounds double, ptr %1363, i64 2
  %1365 = load double, ptr %1364, align 8, !tbaa !9
  %1366 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1367 = load ptr, ptr %1366, align 16, !tbaa !5
  %1368 = getelementptr inbounds double, ptr %1367, i64 0
  %1369 = load double, ptr %1368, align 8, !tbaa !9
  %1370 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %1371 = load ptr, ptr %1370, align 8, !tbaa !5
  %1372 = getelementptr inbounds double, ptr %1371, i64 2
  %1373 = load double, ptr %1372, align 8, !tbaa !9
  %1374 = fmul double %1369, %1373
  %1375 = fneg double %1374
  %1376 = call double @llvm.fmuladd.f64(double %1361, double %1365, double %1375)
  %1377 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %1376, ptr %1377, align 8, !tbaa !9
  %1378 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1379 = load ptr, ptr %1378, align 16, !tbaa !5
  %1380 = getelementptr inbounds double, ptr %1379, i64 0
  %1381 = load double, ptr %1380, align 8, !tbaa !9
  %1382 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %1383 = load ptr, ptr %1382, align 8, !tbaa !5
  %1384 = getelementptr inbounds double, ptr %1383, i64 1
  %1385 = load double, ptr %1384, align 8, !tbaa !9
  %1386 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 1
  %1387 = load ptr, ptr %1386, align 8, !tbaa !5
  %1388 = getelementptr inbounds double, ptr %1387, i64 0
  %1389 = load double, ptr %1388, align 8, !tbaa !9
  %1390 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1391 = load ptr, ptr %1390, align 16, !tbaa !5
  %1392 = getelementptr inbounds double, ptr %1391, i64 1
  %1393 = load double, ptr %1392, align 8, !tbaa !9
  %1394 = fmul double %1389, %1393
  %1395 = fneg double %1394
  %1396 = call double @llvm.fmuladd.f64(double %1381, double %1385, double %1395)
  %1397 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %1396, ptr %1397, align 16, !tbaa !9
  %1398 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1399 = load double, ptr %1398, align 16, !tbaa !9
  %1400 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1401 = getelementptr inbounds [3 x double], ptr %1400, i64 0, i64 0
  %1402 = load double, ptr %1401, align 16, !tbaa !9
  %1403 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1404 = load double, ptr %1403, align 8, !tbaa !9
  %1405 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1406 = getelementptr inbounds [3 x double], ptr %1405, i64 0, i64 1
  %1407 = load double, ptr %1406, align 8, !tbaa !9
  %1408 = fmul double %1404, %1407
  %1409 = call double @llvm.fmuladd.f64(double %1399, double %1402, double %1408)
  %1410 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1411 = load double, ptr %1410, align 16, !tbaa !9
  %1412 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1413 = getelementptr inbounds [3 x double], ptr %1412, i64 0, i64 2
  %1414 = load double, ptr %1413, align 16, !tbaa !9
  %1415 = call double @llvm.fmuladd.f64(double %1411, double %1414, double %1409)
  store double %1415, ptr %29, align 8, !tbaa !9
  %1416 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1417 = load double, ptr %1416, align 16, !tbaa !9
  %1418 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1419 = getelementptr inbounds [3 x double], ptr %1418, i64 0, i64 0
  %1420 = load double, ptr %1419, align 8, !tbaa !9
  %1421 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1422 = load double, ptr %1421, align 8, !tbaa !9
  %1423 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1424 = getelementptr inbounds [3 x double], ptr %1423, i64 0, i64 1
  %1425 = load double, ptr %1424, align 8, !tbaa !9
  %1426 = fmul double %1422, %1425
  %1427 = call double @llvm.fmuladd.f64(double %1417, double %1420, double %1426)
  %1428 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1429 = load double, ptr %1428, align 16, !tbaa !9
  %1430 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1431 = getelementptr inbounds [3 x double], ptr %1430, i64 0, i64 2
  %1432 = load double, ptr %1431, align 8, !tbaa !9
  %1433 = call double @llvm.fmuladd.f64(double %1429, double %1432, double %1427)
  store double %1433, ptr %30, align 8, !tbaa !9
  %1434 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1435 = load double, ptr %1434, align 16, !tbaa !9
  %1436 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1437 = getelementptr inbounds [3 x double], ptr %1436, i64 0, i64 0
  %1438 = load double, ptr %1437, align 16, !tbaa !9
  %1439 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1440 = load double, ptr %1439, align 8, !tbaa !9
  %1441 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1442 = getelementptr inbounds [3 x double], ptr %1441, i64 0, i64 1
  %1443 = load double, ptr %1442, align 8, !tbaa !9
  %1444 = fmul double %1440, %1443
  %1445 = call double @llvm.fmuladd.f64(double %1435, double %1438, double %1444)
  %1446 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1447 = load double, ptr %1446, align 16, !tbaa !9
  %1448 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1449 = getelementptr inbounds [3 x double], ptr %1448, i64 0, i64 2
  %1450 = load double, ptr %1449, align 16, !tbaa !9
  %1451 = call double @llvm.fmuladd.f64(double %1447, double %1450, double %1445)
  store double %1451, ptr %31, align 8, !tbaa !9
  %1452 = load ptr, ptr %8, align 8, !tbaa !5
  %1453 = getelementptr inbounds double, ptr %1452, i64 0
  %1454 = load double, ptr %1453, align 8, !tbaa !9
  %1455 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1456 = load double, ptr %1455, align 16, !tbaa !9
  %1457 = call double @llvm.fabs.f64(double %1456)
  %1458 = load ptr, ptr %8, align 8, !tbaa !5
  %1459 = getelementptr inbounds double, ptr %1458, i64 1
  %1460 = load double, ptr %1459, align 8, !tbaa !9
  %1461 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1462 = load double, ptr %1461, align 8, !tbaa !9
  %1463 = call double @llvm.fabs.f64(double %1462)
  %1464 = fmul double %1460, %1463
  %1465 = call double @llvm.fmuladd.f64(double %1454, double %1457, double %1464)
  %1466 = load ptr, ptr %8, align 8, !tbaa !5
  %1467 = getelementptr inbounds double, ptr %1466, i64 2
  %1468 = load double, ptr %1467, align 8, !tbaa !9
  %1469 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1470 = load double, ptr %1469, align 16, !tbaa !9
  %1471 = call double @llvm.fabs.f64(double %1470)
  %1472 = call double @llvm.fmuladd.f64(double %1468, double %1471, double %1465)
  store double %1472, ptr %32, align 8, !tbaa !9
  %1473 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1473, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1475 = load double, ptr %1474, align 8, !tbaa !9
  %1476 = load double, ptr %32, align 8, !tbaa !9
  %1477 = fcmp ogt double %1475, %1476
  br i1 %1477, label %1485, label %1478

1478:                                             ; preds = %1337
  %1479 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1479, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1481 = load double, ptr %1480, align 8, !tbaa !9
  %1482 = load double, ptr %32, align 8, !tbaa !9
  %1483 = fneg double %1482
  %1484 = fcmp olt double %1481, %1483
  br i1 %1484, label %1485, label %1486

1485:                                             ; preds = %1478, %1337
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

1486:                                             ; preds = %1478
  %1487 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1488 = load ptr, ptr %1487, align 16, !tbaa !5
  %1489 = getelementptr inbounds double, ptr %1488, i64 1
  %1490 = load double, ptr %1489, align 8, !tbaa !9
  %1491 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1492 = load ptr, ptr %1491, align 16, !tbaa !5
  %1493 = getelementptr inbounds double, ptr %1492, i64 2
  %1494 = load double, ptr %1493, align 8, !tbaa !9
  %1495 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1496 = load ptr, ptr %1495, align 16, !tbaa !5
  %1497 = getelementptr inbounds double, ptr %1496, i64 1
  %1498 = load double, ptr %1497, align 8, !tbaa !9
  %1499 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1500 = load ptr, ptr %1499, align 16, !tbaa !5
  %1501 = getelementptr inbounds double, ptr %1500, i64 2
  %1502 = load double, ptr %1501, align 8, !tbaa !9
  %1503 = fmul double %1498, %1502
  %1504 = fneg double %1503
  %1505 = call double @llvm.fmuladd.f64(double %1490, double %1494, double %1504)
  %1506 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  store double %1505, ptr %1506, align 16, !tbaa !9
  %1507 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1508 = load ptr, ptr %1507, align 16, !tbaa !5
  %1509 = getelementptr inbounds double, ptr %1508, i64 0
  %1510 = load double, ptr %1509, align 8, !tbaa !9
  %1511 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1512 = load ptr, ptr %1511, align 16, !tbaa !5
  %1513 = getelementptr inbounds double, ptr %1512, i64 2
  %1514 = load double, ptr %1513, align 8, !tbaa !9
  %1515 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1516 = load ptr, ptr %1515, align 16, !tbaa !5
  %1517 = getelementptr inbounds double, ptr %1516, i64 0
  %1518 = load double, ptr %1517, align 8, !tbaa !9
  %1519 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1520 = load ptr, ptr %1519, align 16, !tbaa !5
  %1521 = getelementptr inbounds double, ptr %1520, i64 2
  %1522 = load double, ptr %1521, align 8, !tbaa !9
  %1523 = fmul double %1518, %1522
  %1524 = fneg double %1523
  %1525 = call double @llvm.fmuladd.f64(double %1510, double %1514, double %1524)
  %1526 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  store double %1525, ptr %1526, align 8, !tbaa !9
  %1527 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1528 = load ptr, ptr %1527, align 16, !tbaa !5
  %1529 = getelementptr inbounds double, ptr %1528, i64 0
  %1530 = load double, ptr %1529, align 8, !tbaa !9
  %1531 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1532 = load ptr, ptr %1531, align 16, !tbaa !5
  %1533 = getelementptr inbounds double, ptr %1532, i64 1
  %1534 = load double, ptr %1533, align 8, !tbaa !9
  %1535 = getelementptr inbounds [3 x ptr], ptr %27, i64 0, i64 2
  %1536 = load ptr, ptr %1535, align 16, !tbaa !5
  %1537 = getelementptr inbounds double, ptr %1536, i64 0
  %1538 = load double, ptr %1537, align 8, !tbaa !9
  %1539 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %1540 = load ptr, ptr %1539, align 16, !tbaa !5
  %1541 = getelementptr inbounds double, ptr %1540, i64 1
  %1542 = load double, ptr %1541, align 8, !tbaa !9
  %1543 = fmul double %1538, %1542
  %1544 = fneg double %1543
  %1545 = call double @llvm.fmuladd.f64(double %1530, double %1534, double %1544)
  %1546 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  store double %1545, ptr %1546, align 16, !tbaa !9
  %1547 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1548 = load double, ptr %1547, align 16, !tbaa !9
  %1549 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1550 = getelementptr inbounds [3 x double], ptr %1549, i64 0, i64 0
  %1551 = load double, ptr %1550, align 16, !tbaa !9
  %1552 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1553 = load double, ptr %1552, align 8, !tbaa !9
  %1554 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1555 = getelementptr inbounds [3 x double], ptr %1554, i64 0, i64 1
  %1556 = load double, ptr %1555, align 8, !tbaa !9
  %1557 = fmul double %1553, %1556
  %1558 = call double @llvm.fmuladd.f64(double %1548, double %1551, double %1557)
  %1559 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1560 = load double, ptr %1559, align 16, !tbaa !9
  %1561 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1562 = getelementptr inbounds [3 x double], ptr %1561, i64 0, i64 2
  %1563 = load double, ptr %1562, align 16, !tbaa !9
  %1564 = call double @llvm.fmuladd.f64(double %1560, double %1563, double %1558)
  store double %1564, ptr %29, align 8, !tbaa !9
  %1565 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1566 = load double, ptr %1565, align 16, !tbaa !9
  %1567 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1568 = getelementptr inbounds [3 x double], ptr %1567, i64 0, i64 0
  %1569 = load double, ptr %1568, align 8, !tbaa !9
  %1570 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1571 = load double, ptr %1570, align 8, !tbaa !9
  %1572 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1573 = getelementptr inbounds [3 x double], ptr %1572, i64 0, i64 1
  %1574 = load double, ptr %1573, align 8, !tbaa !9
  %1575 = fmul double %1571, %1574
  %1576 = call double @llvm.fmuladd.f64(double %1566, double %1569, double %1575)
  %1577 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1578 = load double, ptr %1577, align 16, !tbaa !9
  %1579 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 1
  %1580 = getelementptr inbounds [3 x double], ptr %1579, i64 0, i64 2
  %1581 = load double, ptr %1580, align 8, !tbaa !9
  %1582 = call double @llvm.fmuladd.f64(double %1578, double %1581, double %1576)
  store double %1582, ptr %30, align 8, !tbaa !9
  %1583 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1584 = load double, ptr %1583, align 16, !tbaa !9
  %1585 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1586 = getelementptr inbounds [3 x double], ptr %1585, i64 0, i64 0
  %1587 = load double, ptr %1586, align 16, !tbaa !9
  %1588 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1589 = load double, ptr %1588, align 8, !tbaa !9
  %1590 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1591 = getelementptr inbounds [3 x double], ptr %1590, i64 0, i64 1
  %1592 = load double, ptr %1591, align 8, !tbaa !9
  %1593 = fmul double %1589, %1592
  %1594 = call double @llvm.fmuladd.f64(double %1584, double %1587, double %1593)
  %1595 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1596 = load double, ptr %1595, align 16, !tbaa !9
  %1597 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 2
  %1598 = getelementptr inbounds [3 x double], ptr %1597, i64 0, i64 2
  %1599 = load double, ptr %1598, align 16, !tbaa !9
  %1600 = call double @llvm.fmuladd.f64(double %1596, double %1599, double %1594)
  store double %1600, ptr %31, align 8, !tbaa !9
  %1601 = load ptr, ptr %8, align 8, !tbaa !5
  %1602 = getelementptr inbounds double, ptr %1601, i64 0
  %1603 = load double, ptr %1602, align 8, !tbaa !9
  %1604 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 0
  %1605 = load double, ptr %1604, align 16, !tbaa !9
  %1606 = call double @llvm.fabs.f64(double %1605)
  %1607 = load ptr, ptr %8, align 8, !tbaa !5
  %1608 = getelementptr inbounds double, ptr %1607, i64 1
  %1609 = load double, ptr %1608, align 8, !tbaa !9
  %1610 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 1
  %1611 = load double, ptr %1610, align 8, !tbaa !9
  %1612 = call double @llvm.fabs.f64(double %1611)
  %1613 = fmul double %1609, %1612
  %1614 = call double @llvm.fmuladd.f64(double %1603, double %1606, double %1613)
  %1615 = load ptr, ptr %8, align 8, !tbaa !5
  %1616 = getelementptr inbounds double, ptr %1615, i64 2
  %1617 = load double, ptr %1616, align 8, !tbaa !9
  %1618 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 2
  %1619 = load double, ptr %1618, align 16, !tbaa !9
  %1620 = call double @llvm.fabs.f64(double %1619)
  %1621 = call double @llvm.fmuladd.f64(double %1617, double %1620, double %1614)
  store double %1621, ptr %32, align 8, !tbaa !9
  %1622 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1623 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1622, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1624 = load double, ptr %1623, align 8, !tbaa !9
  %1625 = load double, ptr %32, align 8, !tbaa !9
  %1626 = fcmp ogt double %1624, %1625
  br i1 %1626, label %1634, label %1627

1627:                                             ; preds = %1486
  %1628 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %1629 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %1628, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %1630 = load double, ptr %1629, align 8, !tbaa !9
  %1631 = load double, ptr %32, align 8, !tbaa !9
  %1632 = fneg double %1631
  %1633 = fcmp olt double %1630, %1632
  br i1 %1633, label %1634, label %1635

1634:                                             ; preds = %1627, %1486
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1805

1635:                                             ; preds = %1627
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #5
  %1636 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 1
  %1637 = load double, ptr %1636, align 8, !tbaa !9
  %1638 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 2
  %1639 = load double, ptr %1638, align 16, !tbaa !9
  %1640 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 1
  %1641 = load double, ptr %1640, align 8, !tbaa !9
  %1642 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 2
  %1643 = load double, ptr %1642, align 16, !tbaa !9
  %1644 = fmul double %1641, %1643
  %1645 = fneg double %1644
  %1646 = call double @llvm.fmuladd.f64(double %1637, double %1639, double %1645)
  %1647 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 0
  store double %1646, ptr %1647, align 16, !tbaa !9
  %1648 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 0
  %1649 = load double, ptr %1648, align 16, !tbaa !9
  %1650 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 2
  %1651 = load double, ptr %1650, align 16, !tbaa !9
  %1652 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 0
  %1653 = load double, ptr %1652, align 16, !tbaa !9
  %1654 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 2
  %1655 = load double, ptr %1654, align 16, !tbaa !9
  %1656 = fmul double %1653, %1655
  %1657 = fneg double %1656
  %1658 = call double @llvm.fmuladd.f64(double %1649, double %1651, double %1657)
  %1659 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 1
  store double %1658, ptr %1659, align 8, !tbaa !9
  %1660 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 0
  %1661 = load double, ptr %1660, align 16, !tbaa !9
  %1662 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 1
  %1663 = load double, ptr %1662, align 8, !tbaa !9
  %1664 = getelementptr inbounds [3 x double], ptr %24, i64 0, i64 0
  %1665 = load double, ptr %1664, align 16, !tbaa !9
  %1666 = getelementptr inbounds [3 x double], ptr %23, i64 0, i64 1
  %1667 = load double, ptr %1666, align 8, !tbaa !9
  %1668 = fmul double %1665, %1667
  %1669 = fneg double %1668
  %1670 = call double @llvm.fmuladd.f64(double %1661, double %1663, double %1669)
  %1671 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 2
  store double %1670, ptr %1671, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  %1672 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 0
  %1673 = load double, ptr %1672, align 16, !tbaa !9
  %1674 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1675 = getelementptr inbounds [3 x double], ptr %1674, i64 0, i64 0
  %1676 = load double, ptr %1675, align 16, !tbaa !9
  %1677 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 1
  %1678 = load double, ptr %1677, align 8, !tbaa !9
  %1679 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1680 = getelementptr inbounds [3 x double], ptr %1679, i64 0, i64 1
  %1681 = load double, ptr %1680, align 8, !tbaa !9
  %1682 = fmul double %1678, %1681
  %1683 = call double @llvm.fmuladd.f64(double %1673, double %1676, double %1682)
  %1684 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 2
  %1685 = load double, ptr %1684, align 16, !tbaa !9
  %1686 = getelementptr inbounds [3 x [3 x double]], ptr %12, i64 0, i64 0
  %1687 = getelementptr inbounds [3 x double], ptr %1686, i64 0, i64 2
  %1688 = load double, ptr %1687, align 16, !tbaa !9
  %1689 = call double @llvm.fmuladd.f64(double %1685, double %1688, double %1683)
  %1690 = fneg double %1689
  store double %1690, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #5
  %1691 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 0
  %1692 = load double, ptr %1691, align 16, !tbaa !9
  %1693 = fcmp olt double %1692, 0.000000e+00
  br i1 %1693, label %1694, label %1704

1694:                                             ; preds = %1635
  %1695 = load ptr, ptr %8, align 8, !tbaa !5
  %1696 = getelementptr inbounds double, ptr %1695, i64 0
  %1697 = load double, ptr %1696, align 8, !tbaa !9
  %1698 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 0
  store double %1697, ptr %1698, align 16, !tbaa !9
  %1699 = load ptr, ptr %8, align 8, !tbaa !5
  %1700 = getelementptr inbounds double, ptr %1699, i64 0
  %1701 = load double, ptr %1700, align 8, !tbaa !9
  %1702 = fneg double %1701
  %1703 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 0
  store double %1702, ptr %1703, align 16, !tbaa !9
  br label %1714

1704:                                             ; preds = %1635
  %1705 = load ptr, ptr %8, align 8, !tbaa !5
  %1706 = getelementptr inbounds double, ptr %1705, i64 0
  %1707 = load double, ptr %1706, align 8, !tbaa !9
  %1708 = fneg double %1707
  %1709 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 0
  store double %1708, ptr %1709, align 16, !tbaa !9
  %1710 = load ptr, ptr %8, align 8, !tbaa !5
  %1711 = getelementptr inbounds double, ptr %1710, i64 0
  %1712 = load double, ptr %1711, align 8, !tbaa !9
  %1713 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 0
  store double %1712, ptr %1713, align 16, !tbaa !9
  br label %1714

1714:                                             ; preds = %1704, %1694
  %1715 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 1
  %1716 = load double, ptr %1715, align 8, !tbaa !9
  %1717 = fcmp olt double %1716, 0.000000e+00
  br i1 %1717, label %1718, label %1728

1718:                                             ; preds = %1714
  %1719 = load ptr, ptr %8, align 8, !tbaa !5
  %1720 = getelementptr inbounds double, ptr %1719, i64 1
  %1721 = load double, ptr %1720, align 8, !tbaa !9
  %1722 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 1
  store double %1721, ptr %1722, align 8, !tbaa !9
  %1723 = load ptr, ptr %8, align 8, !tbaa !5
  %1724 = getelementptr inbounds double, ptr %1723, i64 1
  %1725 = load double, ptr %1724, align 8, !tbaa !9
  %1726 = fneg double %1725
  %1727 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 1
  store double %1726, ptr %1727, align 8, !tbaa !9
  br label %1738

1728:                                             ; preds = %1714
  %1729 = load ptr, ptr %8, align 8, !tbaa !5
  %1730 = getelementptr inbounds double, ptr %1729, i64 1
  %1731 = load double, ptr %1730, align 8, !tbaa !9
  %1732 = fneg double %1731
  %1733 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 1
  store double %1732, ptr %1733, align 8, !tbaa !9
  %1734 = load ptr, ptr %8, align 8, !tbaa !5
  %1735 = getelementptr inbounds double, ptr %1734, i64 1
  %1736 = load double, ptr %1735, align 8, !tbaa !9
  %1737 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 1
  store double %1736, ptr %1737, align 8, !tbaa !9
  br label %1738

1738:                                             ; preds = %1728, %1718
  %1739 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 2
  %1740 = load double, ptr %1739, align 16, !tbaa !9
  %1741 = fcmp olt double %1740, 0.000000e+00
  br i1 %1741, label %1742, label %1752

1742:                                             ; preds = %1738
  %1743 = load ptr, ptr %8, align 8, !tbaa !5
  %1744 = getelementptr inbounds double, ptr %1743, i64 2
  %1745 = load double, ptr %1744, align 8, !tbaa !9
  %1746 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 2
  store double %1745, ptr %1746, align 16, !tbaa !9
  %1747 = load ptr, ptr %8, align 8, !tbaa !5
  %1748 = getelementptr inbounds double, ptr %1747, i64 2
  %1749 = load double, ptr %1748, align 8, !tbaa !9
  %1750 = fneg double %1749
  %1751 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 2
  store double %1750, ptr %1751, align 16, !tbaa !9
  br label %1762

1752:                                             ; preds = %1738
  %1753 = load ptr, ptr %8, align 8, !tbaa !5
  %1754 = getelementptr inbounds double, ptr %1753, i64 2
  %1755 = load double, ptr %1754, align 8, !tbaa !9
  %1756 = fneg double %1755
  %1757 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 2
  store double %1756, ptr %1757, align 16, !tbaa !9
  %1758 = load ptr, ptr %8, align 8, !tbaa !5
  %1759 = getelementptr inbounds double, ptr %1758, i64 2
  %1760 = load double, ptr %1759, align 8, !tbaa !9
  %1761 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 2
  store double %1760, ptr %1761, align 16, !tbaa !9
  br label %1762

1762:                                             ; preds = %1752, %1742
  %1763 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 0
  %1764 = load double, ptr %1763, align 16, !tbaa !9
  %1765 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 0
  %1766 = load double, ptr %1765, align 16, !tbaa !9
  %1767 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 1
  %1768 = load double, ptr %1767, align 8, !tbaa !9
  %1769 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 1
  %1770 = load double, ptr %1769, align 8, !tbaa !9
  %1771 = fmul double %1768, %1770
  %1772 = call double @llvm.fmuladd.f64(double %1764, double %1766, double %1771)
  %1773 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 2
  %1774 = load double, ptr %1773, align 16, !tbaa !9
  %1775 = getelementptr inbounds [3 x double], ptr %35, i64 0, i64 2
  %1776 = load double, ptr %1775, align 16, !tbaa !9
  %1777 = call double @llvm.fmuladd.f64(double %1774, double %1776, double %1772)
  %1778 = load double, ptr %34, align 8, !tbaa !9
  %1779 = fadd double %1777, %1778
  %1780 = fcmp ogt double %1779, 0.000000e+00
  br i1 %1780, label %1781, label %1782

1781:                                             ; preds = %1762
  store i1 false, ptr %6, align 1
  store i32 1, ptr %19, align 4
  br label %1804

1782:                                             ; preds = %1762
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #5
  %1783 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 0
  %1784 = load double, ptr %1783, align 16, !tbaa !9
  %1785 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 0
  %1786 = load double, ptr %1785, align 16, !tbaa !9
  %1787 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 1
  %1788 = load double, ptr %1787, align 8, !tbaa !9
  %1789 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 1
  %1790 = load double, ptr %1789, align 8, !tbaa !9
  %1791 = fmul double %1788, %1790
  %1792 = call double @llvm.fmuladd.f64(double %1784, double %1786, double %1791)
  %1793 = getelementptr inbounds [3 x double], ptr %33, i64 0, i64 2
  %1794 = load double, ptr %1793, align 16, !tbaa !9
  %1795 = getelementptr inbounds [3 x double], ptr %36, i64 0, i64 2
  %1796 = load double, ptr %1795, align 16, !tbaa !9
  %1797 = call double @llvm.fmuladd.f64(double %1794, double %1796, double %1792)
  %1798 = load double, ptr %34, align 8, !tbaa !9
  %1799 = fadd double %1797, %1798
  %1800 = fcmp oge double %1799, 0.000000e+00
  %1801 = zext i1 %1800 to i8
  store i8 %1801, ptr %37, align 1, !tbaa !11
  %1802 = load i8, ptr %37, align 1, !tbaa !11, !range !13, !noundef !14
  %1803 = trunc i8 %1802 to i1
  store i1 %1803, ptr %6, align 1
  store i32 1, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #5
  br label %1804

1804:                                             ; preds = %1782, %1781
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #5
  br label %1805

1805:                                             ; preds = %1804, %1634, %1485, %1336, %1187, %1038, %889, %740, %591, %442
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #5
  br label %1806

1806:                                             ; preds = %1805, %211
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 72, ptr %12) #5
  %1807 = load i1, ptr %6, align 1
  ret i1 %1807
}

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

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

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

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

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

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

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


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

@__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e0 = external hidden unnamed_addr constant [3 x double], align 16
@__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e1 = external hidden unnamed_addr constant [3 x double], align 16
@__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e2 = external hidden unnamed_addr constant [3 x double], align 16

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef zeroext i1 @_ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4) local_unnamed_addr #0 {
  %6 = alloca [3 x [3 x double]], align 16
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %6) #5
  %10 = getelementptr inbounds i8, ptr %6, i64 8
  %11 = load <2 x double>, ptr %2, align 8, !tbaa !5
  %12 = load <2 x double>, ptr %0, align 8, !tbaa !5
  %13 = fsub <2 x double> %11, %12
  store <2 x double> %13, ptr %6, align 16, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %2, i64 16
  %15 = load double, ptr %14, align 8, !tbaa !5
  %16 = getelementptr inbounds i8, ptr %0, i64 16
  %17 = load double, ptr %16, align 8, !tbaa !5
  %18 = fsub double %15, %17
  %19 = getelementptr inbounds i8, ptr %6, i64 16
  store double %18, ptr %19, align 16, !tbaa !5
  %20 = getelementptr inbounds i8, ptr %6, i64 24
  %21 = getelementptr inbounds i8, ptr %6, i64 32
  %22 = load <2 x double>, ptr %3, align 8, !tbaa !5
  %23 = fsub <2 x double> %22, %12
  store <2 x double> %23, ptr %20, align 8, !tbaa !5
  %24 = getelementptr inbounds i8, ptr %3, i64 16
  %25 = load double, ptr %24, align 8, !tbaa !5
  %26 = fsub double %25, %17
  %27 = getelementptr inbounds i8, ptr %6, i64 40
  store double %26, ptr %27, align 8, !tbaa !5
  %28 = getelementptr inbounds i8, ptr %6, i64 48
  %29 = getelementptr inbounds i8, ptr %6, i64 56
  %30 = load <2 x double>, ptr %4, align 8, !tbaa !5
  %31 = fsub <2 x double> %30, %12
  store <2 x double> %31, ptr %28, align 16, !tbaa !5
  %32 = getelementptr inbounds i8, ptr %4, i64 16
  %33 = load double, ptr %32, align 8, !tbaa !5
  %34 = fsub double %33, %17
  %35 = getelementptr inbounds i8, ptr %6, i64 64
  store double %34, ptr %35, align 16, !tbaa !5
  %36 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %20)
  %37 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %28)
  %38 = load double, ptr %37, align 8, !tbaa !5
  %39 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %21)
  %40 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %29)
  %41 = load double, ptr %40, align 8, !tbaa !5
  %42 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %27)
  %43 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %35)
  %44 = load double, ptr %43, align 8, !tbaa !5
  %45 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %20)
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %28)
  %47 = load double, ptr %46, align 8, !tbaa !5
  %48 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %21)
  %49 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %29)
  %50 = load double, ptr %49, align 8, !tbaa !5
  %51 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %27)
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %35)
  %53 = load double, ptr %52, align 8, !tbaa !5
  %54 = load double, ptr %1, align 8, !tbaa !5
  %55 = fcmp olt double %54, %38
  %56 = fneg double %54
  %57 = fcmp olt double %47, %56
  %or.cond = select i1 %55, i1 true, i1 %57
  br i1 %or.cond, label %525, label %58

58:                                               ; preds = %5
  %59 = getelementptr inbounds i8, ptr %1, i64 8
  %60 = load double, ptr %59, align 8, !tbaa !5
  %61 = fcmp olt double %60, %41
  %62 = fneg double %60
  %63 = fcmp olt double %50, %62
  %or.cond443 = select i1 %61, i1 true, i1 %63
  br i1 %or.cond443, label %525, label %64

64:                                               ; preds = %58
  %65 = getelementptr inbounds i8, ptr %1, i64 16
  %66 = load double, ptr %65, align 8, !tbaa !5
  %67 = fcmp olt double %66, %44
  %68 = fneg double %66
  %69 = fcmp olt double %53, %68
  %or.cond445 = select i1 %67, i1 true, i1 %69
  br i1 %or.cond445, label %525, label %70

70:                                               ; preds = %64
  %.sroa.0348.0.copyload = load double, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e0, align 16
  %.sroa.9354.0.copyload = load double, ptr getelementptr inbounds (i8, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e0, i64 8), align 8
  %.sroa.15360.0.copyload = load double, ptr getelementptr inbounds (i8, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e0, i64 16), align 16
  %.sroa.0330.0.copyload = load double, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e1, align 16
  %.sroa.9336.0.copyload = load double, ptr getelementptr inbounds (i8, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e1, i64 8), align 8
  %.sroa.15342.0.copyload = load double, ptr getelementptr inbounds (i8, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e1, i64 16), align 16
  %.sroa.0.0.copyload = load double, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e2, align 16
  %.sroa.9.0.copyload = load double, ptr getelementptr inbounds (i8, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e2, i64 8), align 8
  %.sroa.15.0.copyload = load double, ptr getelementptr inbounds (i8, ptr @__const._ZN3pgo4Mesh13triBoxOverlapEPKdS2_S2_S2_S2_.e2, i64 16), align 16
  %71 = load double, ptr %20, align 8, !tbaa !5
  %72 = load double, ptr %6, align 16, !tbaa !5
  %73 = fsub double %71, %72
  %74 = load double, ptr %21, align 16, !tbaa !5
  %75 = load double, ptr %10, align 8, !tbaa !5
  %76 = fsub double %74, %75
  %77 = load double, ptr %27, align 8, !tbaa !5
  %78 = load double, ptr %19, align 16, !tbaa !5
  %79 = fsub double %77, %78
  %80 = load double, ptr %28, align 16, !tbaa !5
  %81 = fsub double %80, %71
  %82 = load double, ptr %29, align 8, !tbaa !5
  %83 = fsub double %82, %74
  %84 = load double, ptr %35, align 16, !tbaa !5
  %85 = fsub double %84, %77
  %86 = fsub double %72, %80
  %87 = fsub double %75, %82
  %88 = fsub double %78, %84
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %89 = fneg double %76
  %90 = fmul double %.sroa.15360.0.copyload, %89
  %91 = call double @llvm.fmuladd.f64(double %.sroa.9354.0.copyload, double %79, double %90)
  %92 = fneg double %.sroa.0348.0.copyload
  %93 = fmul double %79, %92
  %94 = call double @llvm.fmuladd.f64(double %73, double %.sroa.15360.0.copyload, double %93)
  %95 = fneg double %73
  %96 = fmul double %.sroa.9354.0.copyload, %95
  %97 = call double @llvm.fmuladd.f64(double %.sroa.0348.0.copyload, double %76, double %96)
  %98 = fmul double %75, %94
  %99 = call double @llvm.fmuladd.f64(double %91, double %72, double %98)
  %100 = call double @llvm.fmuladd.f64(double %97, double %78, double %99)
  store double %100, ptr %7, align 8, !tbaa !5
  %101 = fmul double %74, %94
  %102 = call double @llvm.fmuladd.f64(double %91, double %71, double %101)
  %103 = call double @llvm.fmuladd.f64(double %97, double %77, double %102)
  store double %103, ptr %8, align 8, !tbaa !5
  %104 = fmul double %82, %94
  %105 = call double @llvm.fmuladd.f64(double %91, double %80, double %104)
  %106 = call double @llvm.fmuladd.f64(double %97, double %84, double %105)
  store double %106, ptr %9, align 8, !tbaa !5
  %107 = call double @llvm.fabs.f64(double %91)
  %108 = call double @llvm.fabs.f64(double %94)
  %109 = fmul double %60, %108
  %110 = call double @llvm.fmuladd.f64(double %54, double %107, double %109)
  %111 = call double @llvm.fabs.f64(double %97)
  %112 = call double @llvm.fmuladd.f64(double %66, double %111, double %110)
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %115 = load double, ptr %114, align 8, !tbaa !5
  %116 = fcmp ogt double %115, %112
  br i1 %116, label %524, label %117

117:                                              ; preds = %70
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %120 = load double, ptr %119, align 8, !tbaa !5
  %121 = fneg double %112
  %122 = fcmp olt double %120, %121
  br i1 %122, label %524, label %123

123:                                              ; preds = %117
  %124 = fneg double %83
  %125 = fmul double %.sroa.15360.0.copyload, %124
  %126 = call double @llvm.fmuladd.f64(double %.sroa.9354.0.copyload, double %85, double %125)
  %127 = fmul double %85, %92
  %128 = call double @llvm.fmuladd.f64(double %81, double %.sroa.15360.0.copyload, double %127)
  %129 = fneg double %81
  %130 = fmul double %.sroa.9354.0.copyload, %129
  %131 = call double @llvm.fmuladd.f64(double %.sroa.0348.0.copyload, double %83, double %130)
  %132 = load double, ptr %6, align 16, !tbaa !5
  %133 = load double, ptr %10, align 8, !tbaa !5
  %134 = fmul double %128, %133
  %135 = call double @llvm.fmuladd.f64(double %126, double %132, double %134)
  %136 = load double, ptr %19, align 16, !tbaa !5
  %137 = call double @llvm.fmuladd.f64(double %131, double %136, double %135)
  store double %137, ptr %7, align 8, !tbaa !5
  %138 = load double, ptr %20, align 8, !tbaa !5
  %139 = load double, ptr %21, align 16, !tbaa !5
  %140 = fmul double %128, %139
  %141 = call double @llvm.fmuladd.f64(double %126, double %138, double %140)
  %142 = load double, ptr %27, align 8, !tbaa !5
  %143 = call double @llvm.fmuladd.f64(double %131, double %142, double %141)
  store double %143, ptr %8, align 8, !tbaa !5
  %144 = load double, ptr %28, align 16, !tbaa !5
  %145 = load double, ptr %29, align 8, !tbaa !5
  %146 = fmul double %128, %145
  %147 = call double @llvm.fmuladd.f64(double %126, double %144, double %146)
  %148 = load double, ptr %35, align 16, !tbaa !5
  %149 = call double @llvm.fmuladd.f64(double %131, double %148, double %147)
  store double %149, ptr %9, align 8, !tbaa !5
  %150 = load double, ptr %1, align 8, !tbaa !5
  %151 = call double @llvm.fabs.f64(double %126)
  %152 = load double, ptr %59, align 8, !tbaa !5
  %153 = call double @llvm.fabs.f64(double %128)
  %154 = fmul double %153, %152
  %155 = call double @llvm.fmuladd.f64(double %150, double %151, double %154)
  %156 = load double, ptr %65, align 8, !tbaa !5
  %157 = call double @llvm.fabs.f64(double %131)
  %158 = call double @llvm.fmuladd.f64(double %156, double %157, double %155)
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %161 = load double, ptr %160, align 8, !tbaa !5
  %162 = fcmp ogt double %161, %158
  br i1 %162, label %524, label %163

163:                                              ; preds = %123
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %166 = load double, ptr %165, align 8, !tbaa !5
  %167 = fneg double %158
  %168 = fcmp olt double %166, %167
  br i1 %168, label %524, label %169

169:                                              ; preds = %163
  %170 = fneg double %87
  %171 = fmul double %.sroa.15360.0.copyload, %170
  %172 = call double @llvm.fmuladd.f64(double %.sroa.9354.0.copyload, double %88, double %171)
  %173 = fmul double %88, %92
  %174 = call double @llvm.fmuladd.f64(double %86, double %.sroa.15360.0.copyload, double %173)
  %175 = fneg double %86
  %176 = fmul double %.sroa.9354.0.copyload, %175
  %177 = call double @llvm.fmuladd.f64(double %.sroa.0348.0.copyload, double %87, double %176)
  %178 = load double, ptr %6, align 16, !tbaa !5
  %179 = load double, ptr %10, align 8, !tbaa !5
  %180 = fmul double %174, %179
  %181 = call double @llvm.fmuladd.f64(double %172, double %178, double %180)
  %182 = load double, ptr %19, align 16, !tbaa !5
  %183 = call double @llvm.fmuladd.f64(double %177, double %182, double %181)
  store double %183, ptr %7, align 8, !tbaa !5
  %184 = load double, ptr %20, align 8, !tbaa !5
  %185 = load double, ptr %21, align 16, !tbaa !5
  %186 = fmul double %174, %185
  %187 = call double @llvm.fmuladd.f64(double %172, double %184, double %186)
  %188 = load double, ptr %27, align 8, !tbaa !5
  %189 = call double @llvm.fmuladd.f64(double %177, double %188, double %187)
  store double %189, ptr %8, align 8, !tbaa !5
  %190 = load double, ptr %28, align 16, !tbaa !5
  %191 = load double, ptr %29, align 8, !tbaa !5
  %192 = fmul double %174, %191
  %193 = call double @llvm.fmuladd.f64(double %172, double %190, double %192)
  %194 = load double, ptr %35, align 16, !tbaa !5
  %195 = call double @llvm.fmuladd.f64(double %177, double %194, double %193)
  store double %195, ptr %9, align 8, !tbaa !5
  %196 = load double, ptr %1, align 8, !tbaa !5
  %197 = call double @llvm.fabs.f64(double %172)
  %198 = load double, ptr %59, align 8, !tbaa !5
  %199 = call double @llvm.fabs.f64(double %174)
  %200 = fmul double %199, %198
  %201 = call double @llvm.fmuladd.f64(double %196, double %197, double %200)
  %202 = load double, ptr %65, align 8, !tbaa !5
  %203 = call double @llvm.fabs.f64(double %177)
  %204 = call double @llvm.fmuladd.f64(double %202, double %203, double %201)
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %207 = load double, ptr %206, align 8, !tbaa !5
  %208 = fcmp ogt double %207, %204
  br i1 %208, label %524, label %209

209:                                              ; preds = %169
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %211 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %212 = load double, ptr %211, align 8, !tbaa !5
  %213 = fneg double %204
  %214 = fcmp olt double %212, %213
  br i1 %214, label %524, label %215

215:                                              ; preds = %209
  %216 = fmul double %.sroa.15342.0.copyload, %89
  %217 = call double @llvm.fmuladd.f64(double %.sroa.9336.0.copyload, double %79, double %216)
  %218 = fneg double %.sroa.0330.0.copyload
  %219 = fmul double %79, %218
  %220 = call double @llvm.fmuladd.f64(double %73, double %.sroa.15342.0.copyload, double %219)
  %221 = fmul double %.sroa.9336.0.copyload, %95
  %222 = call double @llvm.fmuladd.f64(double %.sroa.0330.0.copyload, double %76, double %221)
  %223 = load double, ptr %6, align 16, !tbaa !5
  %224 = load double, ptr %10, align 8, !tbaa !5
  %225 = fmul double %220, %224
  %226 = call double @llvm.fmuladd.f64(double %217, double %223, double %225)
  %227 = load double, ptr %19, align 16, !tbaa !5
  %228 = call double @llvm.fmuladd.f64(double %222, double %227, double %226)
  store double %228, ptr %7, align 8, !tbaa !5
  %229 = load double, ptr %20, align 8, !tbaa !5
  %230 = load double, ptr %21, align 16, !tbaa !5
  %231 = fmul double %220, %230
  %232 = call double @llvm.fmuladd.f64(double %217, double %229, double %231)
  %233 = load double, ptr %27, align 8, !tbaa !5
  %234 = call double @llvm.fmuladd.f64(double %222, double %233, double %232)
  store double %234, ptr %8, align 8, !tbaa !5
  %235 = load double, ptr %28, align 16, !tbaa !5
  %236 = load double, ptr %29, align 8, !tbaa !5
  %237 = fmul double %220, %236
  %238 = call double @llvm.fmuladd.f64(double %217, double %235, double %237)
  %239 = load double, ptr %35, align 16, !tbaa !5
  %240 = call double @llvm.fmuladd.f64(double %222, double %239, double %238)
  store double %240, ptr %9, align 8, !tbaa !5
  %241 = load double, ptr %1, align 8, !tbaa !5
  %242 = call double @llvm.fabs.f64(double %217)
  %243 = load double, ptr %59, align 8, !tbaa !5
  %244 = call double @llvm.fabs.f64(double %220)
  %245 = fmul double %244, %243
  %246 = call double @llvm.fmuladd.f64(double %241, double %242, double %245)
  %247 = load double, ptr %65, align 8, !tbaa !5
  %248 = call double @llvm.fabs.f64(double %222)
  %249 = call double @llvm.fmuladd.f64(double %247, double %248, double %246)
  %250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %252 = load double, ptr %251, align 8, !tbaa !5
  %253 = fcmp ogt double %252, %249
  br i1 %253, label %524, label %254

254:                                              ; preds = %215
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %257 = load double, ptr %256, align 8, !tbaa !5
  %258 = fneg double %249
  %259 = fcmp olt double %257, %258
  br i1 %259, label %524, label %260

260:                                              ; preds = %254
  %261 = fmul double %.sroa.15342.0.copyload, %124
  %262 = call double @llvm.fmuladd.f64(double %.sroa.9336.0.copyload, double %85, double %261)
  %263 = fmul double %85, %218
  %264 = call double @llvm.fmuladd.f64(double %81, double %.sroa.15342.0.copyload, double %263)
  %265 = fmul double %.sroa.9336.0.copyload, %129
  %266 = call double @llvm.fmuladd.f64(double %.sroa.0330.0.copyload, double %83, double %265)
  %267 = load double, ptr %6, align 16, !tbaa !5
  %268 = load double, ptr %10, align 8, !tbaa !5
  %269 = fmul double %264, %268
  %270 = call double @llvm.fmuladd.f64(double %262, double %267, double %269)
  %271 = load double, ptr %19, align 16, !tbaa !5
  %272 = call double @llvm.fmuladd.f64(double %266, double %271, double %270)
  store double %272, ptr %7, align 8, !tbaa !5
  %273 = load double, ptr %20, align 8, !tbaa !5
  %274 = load double, ptr %21, align 16, !tbaa !5
  %275 = fmul double %264, %274
  %276 = call double @llvm.fmuladd.f64(double %262, double %273, double %275)
  %277 = load double, ptr %27, align 8, !tbaa !5
  %278 = call double @llvm.fmuladd.f64(double %266, double %277, double %276)
  store double %278, ptr %8, align 8, !tbaa !5
  %279 = load double, ptr %28, align 16, !tbaa !5
  %280 = load double, ptr %29, align 8, !tbaa !5
  %281 = fmul double %264, %280
  %282 = call double @llvm.fmuladd.f64(double %262, double %279, double %281)
  %283 = load double, ptr %35, align 16, !tbaa !5
  %284 = call double @llvm.fmuladd.f64(double %266, double %283, double %282)
  store double %284, ptr %9, align 8, !tbaa !5
  %285 = load double, ptr %1, align 8, !tbaa !5
  %286 = call double @llvm.fabs.f64(double %262)
  %287 = load double, ptr %59, align 8, !tbaa !5
  %288 = call double @llvm.fabs.f64(double %264)
  %289 = fmul double %288, %287
  %290 = call double @llvm.fmuladd.f64(double %285, double %286, double %289)
  %291 = load double, ptr %65, align 8, !tbaa !5
  %292 = call double @llvm.fabs.f64(double %266)
  %293 = call double @llvm.fmuladd.f64(double %291, double %292, double %290)
  %294 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %296 = load double, ptr %295, align 8, !tbaa !5
  %297 = fcmp ogt double %296, %293
  br i1 %297, label %524, label %298

298:                                              ; preds = %260
  %299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %301 = load double, ptr %300, align 8, !tbaa !5
  %302 = fneg double %293
  %303 = fcmp olt double %301, %302
  br i1 %303, label %524, label %304

304:                                              ; preds = %298
  %305 = fmul double %.sroa.15342.0.copyload, %170
  %306 = call double @llvm.fmuladd.f64(double %.sroa.9336.0.copyload, double %88, double %305)
  %307 = fmul double %88, %218
  %308 = call double @llvm.fmuladd.f64(double %86, double %.sroa.15342.0.copyload, double %307)
  %309 = fmul double %.sroa.9336.0.copyload, %175
  %310 = call double @llvm.fmuladd.f64(double %.sroa.0330.0.copyload, double %87, double %309)
  %311 = load double, ptr %6, align 16, !tbaa !5
  %312 = load double, ptr %10, align 8, !tbaa !5
  %313 = fmul double %308, %312
  %314 = call double @llvm.fmuladd.f64(double %306, double %311, double %313)
  %315 = load double, ptr %19, align 16, !tbaa !5
  %316 = call double @llvm.fmuladd.f64(double %310, double %315, double %314)
  store double %316, ptr %7, align 8, !tbaa !5
  %317 = load double, ptr %20, align 8, !tbaa !5
  %318 = load double, ptr %21, align 16, !tbaa !5
  %319 = fmul double %308, %318
  %320 = call double @llvm.fmuladd.f64(double %306, double %317, double %319)
  %321 = load double, ptr %27, align 8, !tbaa !5
  %322 = call double @llvm.fmuladd.f64(double %310, double %321, double %320)
  store double %322, ptr %8, align 8, !tbaa !5
  %323 = load double, ptr %28, align 16, !tbaa !5
  %324 = load double, ptr %29, align 8, !tbaa !5
  %325 = fmul double %308, %324
  %326 = call double @llvm.fmuladd.f64(double %306, double %323, double %325)
  %327 = load double, ptr %35, align 16, !tbaa !5
  %328 = call double @llvm.fmuladd.f64(double %310, double %327, double %326)
  store double %328, ptr %9, align 8, !tbaa !5
  %329 = load double, ptr %1, align 8, !tbaa !5
  %330 = call double @llvm.fabs.f64(double %306)
  %331 = load double, ptr %59, align 8, !tbaa !5
  %332 = call double @llvm.fabs.f64(double %308)
  %333 = fmul double %332, %331
  %334 = call double @llvm.fmuladd.f64(double %329, double %330, double %333)
  %335 = load double, ptr %65, align 8, !tbaa !5
  %336 = call double @llvm.fabs.f64(double %310)
  %337 = call double @llvm.fmuladd.f64(double %335, double %336, double %334)
  %338 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %338, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %340 = load double, ptr %339, align 8, !tbaa !5
  %341 = fcmp ogt double %340, %337
  br i1 %341, label %524, label %342

342:                                              ; preds = %304
  %343 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %345 = load double, ptr %344, align 8, !tbaa !5
  %346 = fneg double %337
  %347 = fcmp olt double %345, %346
  br i1 %347, label %524, label %348

348:                                              ; preds = %342
  %349 = fmul double %.sroa.15.0.copyload, %89
  %350 = call double @llvm.fmuladd.f64(double %.sroa.9.0.copyload, double %79, double %349)
  %351 = fneg double %.sroa.0.0.copyload
  %352 = fmul double %79, %351
  %353 = call double @llvm.fmuladd.f64(double %73, double %.sroa.15.0.copyload, double %352)
  %354 = fmul double %.sroa.9.0.copyload, %95
  %355 = call double @llvm.fmuladd.f64(double %.sroa.0.0.copyload, double %76, double %354)
  %356 = load double, ptr %6, align 16, !tbaa !5
  %357 = load double, ptr %10, align 8, !tbaa !5
  %358 = fmul double %353, %357
  %359 = call double @llvm.fmuladd.f64(double %350, double %356, double %358)
  %360 = load double, ptr %19, align 16, !tbaa !5
  %361 = call double @llvm.fmuladd.f64(double %355, double %360, double %359)
  store double %361, ptr %7, align 8, !tbaa !5
  %362 = load double, ptr %20, align 8, !tbaa !5
  %363 = load double, ptr %21, align 16, !tbaa !5
  %364 = fmul double %353, %363
  %365 = call double @llvm.fmuladd.f64(double %350, double %362, double %364)
  %366 = load double, ptr %27, align 8, !tbaa !5
  %367 = call double @llvm.fmuladd.f64(double %355, double %366, double %365)
  store double %367, ptr %8, align 8, !tbaa !5
  %368 = load double, ptr %28, align 16, !tbaa !5
  %369 = load double, ptr %29, align 8, !tbaa !5
  %370 = fmul double %353, %369
  %371 = call double @llvm.fmuladd.f64(double %350, double %368, double %370)
  %372 = load double, ptr %35, align 16, !tbaa !5
  %373 = call double @llvm.fmuladd.f64(double %355, double %372, double %371)
  store double %373, ptr %9, align 8, !tbaa !5
  %374 = load double, ptr %1, align 8, !tbaa !5
  %375 = call double @llvm.fabs.f64(double %350)
  %376 = load double, ptr %59, align 8, !tbaa !5
  %377 = call double @llvm.fabs.f64(double %353)
  %378 = fmul double %377, %376
  %379 = call double @llvm.fmuladd.f64(double %374, double %375, double %378)
  %380 = load double, ptr %65, align 8, !tbaa !5
  %381 = call double @llvm.fabs.f64(double %355)
  %382 = call double @llvm.fmuladd.f64(double %380, double %381, double %379)
  %383 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %385 = load double, ptr %384, align 8, !tbaa !5
  %386 = fcmp ogt double %385, %382
  br i1 %386, label %524, label %387

387:                                              ; preds = %348
  %388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %389 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %388, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %390 = load double, ptr %389, align 8, !tbaa !5
  %391 = fneg double %382
  %392 = fcmp olt double %390, %391
  br i1 %392, label %524, label %393

393:                                              ; preds = %387
  %394 = fmul double %.sroa.15.0.copyload, %124
  %395 = call double @llvm.fmuladd.f64(double %.sroa.9.0.copyload, double %85, double %394)
  %396 = fmul double %85, %351
  %397 = call double @llvm.fmuladd.f64(double %81, double %.sroa.15.0.copyload, double %396)
  %398 = fmul double %.sroa.9.0.copyload, %129
  %399 = call double @llvm.fmuladd.f64(double %.sroa.0.0.copyload, double %83, double %398)
  %400 = load double, ptr %6, align 16, !tbaa !5
  %401 = load double, ptr %10, align 8, !tbaa !5
  %402 = fmul double %397, %401
  %403 = call double @llvm.fmuladd.f64(double %395, double %400, double %402)
  %404 = load double, ptr %19, align 16, !tbaa !5
  %405 = call double @llvm.fmuladd.f64(double %399, double %404, double %403)
  store double %405, ptr %7, align 8, !tbaa !5
  %406 = load double, ptr %20, align 8, !tbaa !5
  %407 = load double, ptr %21, align 16, !tbaa !5
  %408 = fmul double %397, %407
  %409 = call double @llvm.fmuladd.f64(double %395, double %406, double %408)
  %410 = load double, ptr %27, align 8, !tbaa !5
  %411 = call double @llvm.fmuladd.f64(double %399, double %410, double %409)
  store double %411, ptr %8, align 8, !tbaa !5
  %412 = load double, ptr %28, align 16, !tbaa !5
  %413 = load double, ptr %29, align 8, !tbaa !5
  %414 = fmul double %397, %413
  %415 = call double @llvm.fmuladd.f64(double %395, double %412, double %414)
  %416 = load double, ptr %35, align 16, !tbaa !5
  %417 = call double @llvm.fmuladd.f64(double %399, double %416, double %415)
  store double %417, ptr %9, align 8, !tbaa !5
  %418 = load double, ptr %1, align 8, !tbaa !5
  %419 = call double @llvm.fabs.f64(double %395)
  %420 = load double, ptr %59, align 8, !tbaa !5
  %421 = call double @llvm.fabs.f64(double %397)
  %422 = fmul double %421, %420
  %423 = call double @llvm.fmuladd.f64(double %418, double %419, double %422)
  %424 = load double, ptr %65, align 8, !tbaa !5
  %425 = call double @llvm.fabs.f64(double %399)
  %426 = call double @llvm.fmuladd.f64(double %424, double %425, double %423)
  %427 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %427, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %429 = load double, ptr %428, align 8, !tbaa !5
  %430 = fcmp ogt double %429, %426
  br i1 %430, label %524, label %431

431:                                              ; preds = %393
  %432 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %434 = load double, ptr %433, align 8, !tbaa !5
  %435 = fneg double %426
  %436 = fcmp olt double %434, %435
  br i1 %436, label %524, label %437

437:                                              ; preds = %431
  %438 = fmul double %.sroa.15.0.copyload, %170
  %439 = call double @llvm.fmuladd.f64(double %.sroa.9.0.copyload, double %88, double %438)
  %440 = fmul double %88, %351
  %441 = call double @llvm.fmuladd.f64(double %86, double %.sroa.15.0.copyload, double %440)
  %442 = fmul double %.sroa.9.0.copyload, %175
  %443 = call double @llvm.fmuladd.f64(double %.sroa.0.0.copyload, double %87, double %442)
  %444 = load double, ptr %6, align 16, !tbaa !5
  %445 = load double, ptr %10, align 8, !tbaa !5
  %446 = fmul double %441, %445
  %447 = call double @llvm.fmuladd.f64(double %439, double %444, double %446)
  %448 = load double, ptr %19, align 16, !tbaa !5
  %449 = call double @llvm.fmuladd.f64(double %443, double %448, double %447)
  store double %449, ptr %7, align 8, !tbaa !5
  %450 = load double, ptr %20, align 8, !tbaa !5
  %451 = load double, ptr %21, align 16, !tbaa !5
  %452 = fmul double %441, %451
  %453 = call double @llvm.fmuladd.f64(double %439, double %450, double %452)
  %454 = load double, ptr %27, align 8, !tbaa !5
  %455 = call double @llvm.fmuladd.f64(double %443, double %454, double %453)
  store double %455, ptr %8, align 8, !tbaa !5
  %456 = load double, ptr %28, align 16, !tbaa !5
  %457 = load double, ptr %29, align 8, !tbaa !5
  %458 = fmul double %441, %457
  %459 = call double @llvm.fmuladd.f64(double %439, double %456, double %458)
  %460 = load double, ptr %35, align 16, !tbaa !5
  %461 = call double @llvm.fmuladd.f64(double %443, double %460, double %459)
  store double %461, ptr %9, align 8, !tbaa !5
  %462 = load double, ptr %1, align 8, !tbaa !5
  %463 = call double @llvm.fabs.f64(double %439)
  %464 = load double, ptr %59, align 8, !tbaa !5
  %465 = call double @llvm.fabs.f64(double %441)
  %466 = fmul double %465, %464
  %467 = call double @llvm.fmuladd.f64(double %462, double %463, double %466)
  %468 = load double, ptr %65, align 8, !tbaa !5
  %469 = call double @llvm.fabs.f64(double %443)
  %470 = call double @llvm.fmuladd.f64(double %468, double %469, double %467)
  %471 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %472 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %471, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %473 = load double, ptr %472, align 8, !tbaa !5
  %474 = fcmp ogt double %473, %470
  br i1 %474, label %524, label %475

475:                                              ; preds = %437
  %476 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %476, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %478 = load double, ptr %477, align 8, !tbaa !5
  %479 = fneg double %470
  %480 = fcmp olt double %478, %479
  br i1 %480, label %524, label %481

481:                                              ; preds = %475
  %482 = fmul double %79, %124
  %483 = call double @llvm.fmuladd.f64(double %76, double %85, double %482)
  %484 = fmul double %85, %95
  %485 = call double @llvm.fmuladd.f64(double %81, double %79, double %484)
  %486 = fmul double %76, %129
  %487 = call double @llvm.fmuladd.f64(double %73, double %83, double %486)
  %488 = load double, ptr %6, align 16, !tbaa !5
  %489 = load double, ptr %10, align 8, !tbaa !5
  %490 = load double, ptr %19, align 16, !tbaa !5
  %491 = fcmp olt double %483, 0.000000e+00
  %492 = load double, ptr %1, align 8, !tbaa !5
  %493 = fneg double %492
  %. = select i1 %491, double %492, double %493
  %494 = fcmp olt double %485, 0.000000e+00
  %495 = load double, ptr %59, align 8, !tbaa !5
  %496 = fneg double %495
  %.449 = select i1 %494, double %495, double %496
  %497 = fcmp olt double %487, 0.000000e+00
  %498 = load double, ptr %65, align 8, !tbaa !5
  %499 = fneg double %498
  %.447 = select i1 %497, double %498, double %499
  %500 = insertelement <2 x double> poison, double %485, i64 0
  %501 = shufflevector <2 x double> %500, <2 x double> poison, <2 x i32> zeroinitializer
  %502 = insertelement <2 x double> poison, double %.449, i64 0
  %503 = insertelement <2 x double> %502, double %489, i64 1
  %504 = fmul <2 x double> %501, %503
  %505 = insertelement <2 x double> poison, double %483, i64 0
  %506 = shufflevector <2 x double> %505, <2 x double> poison, <2 x i32> zeroinitializer
  %507 = insertelement <2 x double> poison, double %., i64 0
  %508 = insertelement <2 x double> %507, double %488, i64 1
  %509 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %506, <2 x double> %508, <2 x double> %504)
  %510 = insertelement <2 x double> poison, double %487, i64 0
  %511 = shufflevector <2 x double> %510, <2 x double> poison, <2 x i32> zeroinitializer
  %512 = insertelement <2 x double> poison, double %.447, i64 0
  %513 = insertelement <2 x double> %512, double %490, i64 1
  %514 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %511, <2 x double> %513, <2 x double> %509)
  %515 = extractelement <2 x double> %514, i64 0
  %516 = extractelement <2 x double> %514, i64 1
  %517 = fcmp ogt double %515, %516
  br i1 %517, label %524, label %518

518:                                              ; preds = %481
  %.448 = select i1 %497, double %499, double %498
  %.450 = select i1 %494, double %496, double %495
  %.446 = select i1 %491, double %493, double %492
  %519 = fmul double %485, %.450
  %520 = call double @llvm.fmuladd.f64(double %483, double %.446, double %519)
  %521 = call double @llvm.fmuladd.f64(double %487, double %.448, double %520)
  %522 = fsub double %521, %516
  %523 = fcmp oge double %522, 0.000000e+00
  br label %524

524:                                              ; preds = %518, %481, %437, %475, %393, %431, %348, %387, %304, %342, %260, %298, %215, %254, %169, %209, %123, %163, %70, %117
  %.1 = phi i1 [ false, %117 ], [ false, %70 ], [ false, %163 ], [ false, %123 ], [ false, %209 ], [ false, %169 ], [ false, %254 ], [ false, %215 ], [ false, %298 ], [ false, %260 ], [ false, %342 ], [ false, %304 ], [ false, %387 ], [ false, %348 ], [ false, %431 ], [ false, %393 ], [ false, %475 ], [ false, %437 ], [ %523, %518 ], [ false, %481 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  br label %525

525:                                              ; preds = %5, %58, %64, %524
  %.2 = phi i1 [ %.1, %524 ], [ false, %64 ], [ false, %58 ], [ false, %5 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6) #5
  ret i1 %.2
}

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

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

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

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

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

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

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

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


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