; LLVM IR from pantor/ruckig :: src/ruckig (position_third_step2)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.ruckig::roots::PositiveSet" = type { %"class.ruckig::roots::Set" }
%"class.ruckig::roots::Set" = type { %"struct.std::array.2", i64 }
%"struct.std::array.2" = type { [4 x double] }
%"class.ruckig::roots::PositiveSet.3" = type { %"class.ruckig::roots::Set.4" }
%"class.ruckig::roots::Set.4" = type { %"struct.std::array.5", i64 }
%"struct.std::array.5" = type { [3 x double] }
%"class.ruckig::PositionThirdOrderStep2" = type <{ double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, i8, [7 x i8] }>
%"class.ruckig::Profile" = type <{ %"struct.std::array", %"struct.std::array", %"struct.std::array", %"struct.std::array.0", %"struct.std::array.0", %"struct.std::array.0", %"class.ruckig::BrakeProfile", %"class.ruckig::BrakeProfile", double, double, double, i32, i32, i32, [4 x i8] }>
%"struct.std::array" = type { [7 x double] }
%"struct.std::array.0" = type { [8 x double] }
%"class.ruckig::BrakeProfile" = type { double, %"struct.std::array.1", %"struct.std::array.1", %"struct.std::array.1", %"struct.std::array.1", %"struct.std::array.1" }
%"struct.std::array.1" = type { [2 x double] }

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #4 align 2

; 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)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind noalias writable sret(%"class.ruckig::roots::PositiveSet") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ruckig5roots11solve_cubicEdddd(ptr dead_on_unwind noalias writable sret(%"class.ruckig::roots::PositiveSet.3") align 8, double noundef, double noundef, double noundef, double noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm3EE5beginEv(ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm3EE3endEv(ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE1ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6ruckig23PositionThirdOrderStep29time_noneERNS_7ProfileEddddd(ptr noundef nonnull align 8 dereferenceable(265) %0, ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6) #6 align 2 {
  %8 = alloca i1, align 1
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %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 i32, align 4
  %19 = alloca %"struct.std::array.2", align 8
  %20 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca %"struct.std::array.2", align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca %"struct.std::array.2", align 8
  %59 = alloca double, align 8
  %60 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca %"struct.std::array.2", align 8
  %80 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca %"struct.std::array.2", align 8
  %88 = alloca %"class.ruckig::roots::PositiveSet.3", align 8
  %89 = alloca ptr, align 8
  %90 = alloca ptr, align 8
  %91 = alloca ptr, align 8
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store double %2, ptr %11, align 8, !tbaa !9
  store double %3, ptr %12, align 8, !tbaa !9
  store double %4, ptr %13, align 8, !tbaa !9
  store double %5, ptr %14, align 8, !tbaa !9
  store double %6, ptr %15, align 8, !tbaa !9
  %94 = load ptr, ptr %9, align 8
  %95 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %96 = load double, ptr %95, align 8, !tbaa !11
  %97 = call noundef double @_ZSt3absd(double noundef %96)
  %98 = fcmp olt double %97, 0x3CB0000000000000
  br i1 %98, label %99, label %190

99:                                               ; preds = %7
  %100 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %101 = load double, ptr %100, align 8, !tbaa !14
  %102 = call noundef double @_ZSt3absd(double noundef %101)
  %103 = fcmp olt double %102, 0x3CB0000000000000
  br i1 %103, label %104, label %190

104:                                              ; preds = %99
  %105 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %106 = load double, ptr %105, align 8, !tbaa !15
  %107 = call noundef double @_ZSt3absd(double noundef %106)
  %108 = fcmp olt double %107, 0x3CB0000000000000
  br i1 %108, label %109, label %190

109:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %110 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %111 = load double, ptr %110, align 8, !tbaa !16
  %112 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 19
  %113 = load double, ptr %112, align 8, !tbaa !17
  %114 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %115 = load double, ptr %114, align 8, !tbaa !18
  %116 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %117 = load double, ptr %116, align 8, !tbaa !19
  %118 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %119 = load double, ptr %118, align 8, !tbaa !20
  %120 = fmul double %117, %119
  %121 = fneg double %120
  %122 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %115, double %121)
  %123 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %122)
  %124 = call double @llvm.fmuladd.f64(double %111, double %113, double %123)
  %125 = call double @sqrt(double noundef %124) #7
  store double %125, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %126 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %127 = load double, ptr %126, align 8, !tbaa !18
  %128 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %129 = load double, ptr %128, align 8, !tbaa !19
  %130 = fmul double 2.000000e+00, %129
  %131 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %132 = load double, ptr %131, align 8, !tbaa !20
  %133 = fmul double %130, %132
  %134 = fneg double %133
  %135 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %127, double %134)
  %136 = load double, ptr %16, align 8, !tbaa !9
  %137 = fadd double %135, %136
  %138 = fmul double 4.000000e+00, %137
  %139 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %140 = load double, ptr %139, align 8, !tbaa !21
  %141 = fdiv double %138, %140
  store double %141, ptr %17, align 8, !tbaa !9
  %142 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %143 = load double, ptr %142, align 8, !tbaa !19
  %144 = fdiv double %143, 4.000000e+00
  %145 = load ptr, ptr %10, align 8, !tbaa !5
  %146 = getelementptr inbounds %"class.ruckig::Profile", ptr %145, i32 0, i32 0
  %147 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %146, i64 noundef 0) #7
  store double %144, ptr %147, align 8, !tbaa !9
  %148 = load ptr, ptr %10, align 8, !tbaa !5
  %149 = getelementptr inbounds %"class.ruckig::Profile", ptr %148, i32 0, i32 0
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %149, i64 noundef 1) #7
  store double 0.000000e+00, ptr %150, align 8, !tbaa !9
  %151 = load ptr, ptr %10, align 8, !tbaa !5
  %152 = getelementptr inbounds %"class.ruckig::Profile", ptr %151, i32 0, i32 0
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %152, i64 noundef 0) #7
  %154 = load double, ptr %153, align 8, !tbaa !9
  %155 = fmul double 2.000000e+00, %154
  %156 = load ptr, ptr %10, align 8, !tbaa !5
  %157 = getelementptr inbounds %"class.ruckig::Profile", ptr %156, i32 0, i32 0
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %157, i64 noundef 2) #7
  store double %155, ptr %158, align 8, !tbaa !9
  %159 = load ptr, ptr %10, align 8, !tbaa !5
  %160 = getelementptr inbounds %"class.ruckig::Profile", ptr %159, i32 0, i32 0
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %160, i64 noundef 3) #7
  store double 0.000000e+00, ptr %161, align 8, !tbaa !9
  %162 = load ptr, ptr %10, align 8, !tbaa !5
  %163 = getelementptr inbounds %"class.ruckig::Profile", ptr %162, i32 0, i32 0
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %163, i64 noundef 4) #7
  store double 0.000000e+00, ptr %164, align 8, !tbaa !9
  %165 = load ptr, ptr %10, align 8, !tbaa !5
  %166 = getelementptr inbounds %"class.ruckig::Profile", ptr %165, i32 0, i32 0
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %166, i64 noundef 5) #7
  store double 0.000000e+00, ptr %167, align 8, !tbaa !9
  %168 = load ptr, ptr %10, align 8, !tbaa !5
  %169 = getelementptr inbounds %"class.ruckig::Profile", ptr %168, i32 0, i32 0
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %169, i64 noundef 0) #7
  %171 = load double, ptr %170, align 8, !tbaa !9
  %172 = load ptr, ptr %10, align 8, !tbaa !5
  %173 = getelementptr inbounds %"class.ruckig::Profile", ptr %172, i32 0, i32 0
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %173, i64 noundef 6) #7
  store double %171, ptr %174, align 8, !tbaa !9
  %175 = load ptr, ptr %10, align 8, !tbaa !5
  %176 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %177 = load double, ptr %176, align 8, !tbaa !19
  %178 = load double, ptr %17, align 8, !tbaa !9
  %179 = load double, ptr %11, align 8, !tbaa !9
  %180 = load double, ptr %12, align 8, !tbaa !9
  %181 = load double, ptr %13, align 8, !tbaa !9
  %182 = load double, ptr %14, align 8, !tbaa !9
  %183 = load double, ptr %15, align 8, !tbaa !9
  %184 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbddddddd(ptr noundef nonnull align 8 dereferenceable(572) %175, double noundef %177, double noundef %178, double noundef %179, double noundef %180, double noundef %181, double noundef %182, double noundef %183)
  br i1 %184, label %185, label %186

185:                                              ; preds = %109
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %187

186:                                              ; preds = %109
  store i32 0, ptr %18, align 4
  br label %187

187:                                              ; preds = %186, %185
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  %188 = load i32, ptr %18, align 4
  switch i32 %188, label %3970 [
    i32 0, label %189
    i32 1, label %3968
  ]

189:                                              ; preds = %187
  br label %190

190:                                              ; preds = %189, %104, %99, %7
  %191 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %192 = load double, ptr %191, align 8, !tbaa !14
  %193 = call noundef double @_ZSt3absd(double noundef %192)
  %194 = fcmp olt double %193, 0x3CB0000000000000
  br i1 %194, label %195, label %463

195:                                              ; preds = %190
  %196 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %197 = load double, ptr %196, align 8, !tbaa !15
  %198 = call noundef double @_ZSt3absd(double noundef %197)
  %199 = fcmp olt double %198, 0x3CB0000000000000
  br i1 %199, label %200, label %463

200:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #7
  %201 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %202 = load double, ptr %201, align 8, !tbaa !19
  %203 = fmul double -2.000000e+00, %202
  %204 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 0) #7
  store double %203, ptr %204, align 8, !tbaa !9
  %205 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %206 = load double, ptr %205, align 8, !tbaa !22
  %207 = fmul double 2.000000e+00, %206
  %208 = load double, ptr %15, align 8, !tbaa !9
  %209 = fdiv double %207, %208
  %210 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %211 = load double, ptr %210, align 8, !tbaa !16
  %212 = fadd double %209, %211
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 1) #7
  store double %212, ptr %213, align 8, !tbaa !9
  %214 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %215 = load double, ptr %214, align 8, !tbaa !18
  %216 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %217 = load double, ptr %216, align 8, !tbaa !19
  %218 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %219 = load double, ptr %218, align 8, !tbaa !20
  %220 = fneg double %217
  %221 = call double @llvm.fmuladd.f64(double %220, double %219, double %215)
  %222 = fmul double 4.000000e+00, %221
  %223 = load double, ptr %15, align 8, !tbaa !9
  %224 = fdiv double %222, %223
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 2) #7
  store double %224, ptr %225, align 8, !tbaa !9
  %226 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %227 = load double, ptr %226, align 8, !tbaa !23
  %228 = load double, ptr %15, align 8, !tbaa !9
  %229 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %230 = load double, ptr %229, align 8, !tbaa !19
  %231 = fmul double %228, %230
  %232 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 32
  %233 = load double, ptr %232, align 8, !tbaa !24
  %234 = call double @llvm.fmuladd.f64(double %231, double %233, double %227)
  %235 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %236 = load double, ptr %235, align 8, !tbaa !25
  %237 = fdiv double %234, %236
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 3) #7
  store double %237, ptr %238, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %20) #7
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind writable sret(%"class.ruckig::roots::PositiveSet") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %19)
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  store ptr %20, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %239 = load ptr, ptr %21, align 8, !tbaa !5
  %240 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %239)
  store ptr %240, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %241 = load ptr, ptr %21, align 8, !tbaa !5
  %242 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %241)
  store ptr %242, ptr %23, align 8, !tbaa !5
  br label %243

243:                                              ; preds = %454, %200
  %244 = load ptr, ptr %22, align 8, !tbaa !5
  %245 = load ptr, ptr %23, align 8, !tbaa !5
  %246 = icmp ne ptr %244, %245
  br i1 %246, label %248, label %247

247:                                              ; preds = %243
  store i32 2, ptr %18, align 4
  br label %457

248:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %249 = load ptr, ptr %22, align 8, !tbaa !5
  %250 = load double, ptr %249, align 8, !tbaa !9
  store double %250, ptr %24, align 8, !tbaa !9
  %251 = load double, ptr %24, align 8, !tbaa !9
  %252 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %253 = load double, ptr %252, align 8, !tbaa !19
  %254 = fdiv double %253, 2.000000e+00
  %255 = fcmp ogt double %251, %254
  br i1 %255, label %265, label %256

256:                                              ; preds = %248
  %257 = load double, ptr %24, align 8, !tbaa !9
  %258 = load double, ptr %13, align 8, !tbaa !9
  %259 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %260 = load double, ptr %259, align 8, !tbaa !14
  %261 = fsub double %258, %260
  %262 = load double, ptr %15, align 8, !tbaa !9
  %263 = fdiv double %261, %262
  %264 = fcmp ogt double %257, %263
  br i1 %264, label %265, label %266

265:                                              ; preds = %256, %248
  store i32 3, ptr %18, align 4
  br label %451

266:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %267 = load double, ptr %15, align 8, !tbaa !9
  %268 = load double, ptr %24, align 8, !tbaa !9
  %269 = fmul double %267, %268
  %270 = load double, ptr %24, align 8, !tbaa !9
  %271 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %272 = load double, ptr %271, align 8, !tbaa !19
  %273 = fsub double %270, %272
  %274 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %275 = load double, ptr %274, align 8, !tbaa !22
  %276 = call double @llvm.fmuladd.f64(double %269, double %273, double %275)
  %277 = load double, ptr %15, align 8, !tbaa !9
  %278 = load double, ptr %24, align 8, !tbaa !9
  %279 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %280 = load double, ptr %279, align 8, !tbaa !19
  %281 = fneg double %280
  %282 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %278, double %281)
  %283 = fmul double %277, %282
  %284 = fdiv double %276, %283
  store double %284, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %285 = load double, ptr %15, align 8, !tbaa !9
  %286 = fmul double 2.000000e+00, %285
  %287 = load double, ptr %24, align 8, !tbaa !9
  %288 = fmul double %286, %287
  %289 = load double, ptr %24, align 8, !tbaa !9
  %290 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %291 = load double, ptr %290, align 8, !tbaa !19
  %292 = fsub double %289, %291
  %293 = load double, ptr %15, align 8, !tbaa !9
  %294 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %295 = load double, ptr %294, align 8, !tbaa !16
  %296 = fmul double %293, %295
  %297 = call double @llvm.fmuladd.f64(double %288, double %292, double %296)
  %298 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %299 = load double, ptr %298, align 8, !tbaa !22
  %300 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %299, double %297)
  %301 = load double, ptr %15, align 8, !tbaa !9
  %302 = load double, ptr %24, align 8, !tbaa !9
  %303 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %304 = load double, ptr %303, align 8, !tbaa !19
  %305 = fneg double %304
  %306 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %302, double %305)
  %307 = fmul double %301, %306
  %308 = load double, ptr %24, align 8, !tbaa !9
  %309 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %310 = load double, ptr %309, align 8, !tbaa !19
  %311 = fneg double %310
  %312 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %308, double %311)
  %313 = fmul double %307, %312
  %314 = fdiv double %300, %313
  store double %314, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %315 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %316 = load double, ptr %315, align 8, !tbaa !18
  %317 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %318 = load double, ptr %317, align 8, !tbaa !19
  %319 = fmul double 2.000000e+00, %318
  %320 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %321 = load double, ptr %320, align 8, !tbaa !11
  %322 = fmul double %319, %321
  %323 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %316, double %322)
  %324 = load double, ptr %25, align 8, !tbaa !9
  %325 = load double, ptr %25, align 8, !tbaa !9
  %326 = fmul double %324, %325
  %327 = load double, ptr %15, align 8, !tbaa !9
  %328 = fmul double %326, %327
  %329 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %330 = load double, ptr %329, align 8, !tbaa !19
  %331 = load double, ptr %24, align 8, !tbaa !9
  %332 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %331, double %330)
  %333 = call double @llvm.fmuladd.f64(double %328, double %332, double %323)
  %334 = load double, ptr %15, align 8, !tbaa !9
  %335 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %336 = load double, ptr %335, align 8, !tbaa !19
  %337 = fmul double %334, %336
  %338 = load double, ptr %25, align 8, !tbaa !9
  %339 = fmul double 2.000000e+00, %338
  %340 = load double, ptr %24, align 8, !tbaa !9
  %341 = load double, ptr %24, align 8, !tbaa !9
  %342 = load double, ptr %24, align 8, !tbaa !9
  %343 = fmul double %341, %342
  %344 = fneg double %343
  %345 = call double @llvm.fmuladd.f64(double %339, double %340, double %344)
  %346 = load double, ptr %25, align 8, !tbaa !9
  %347 = load double, ptr %24, align 8, !tbaa !9
  %348 = fsub double %346, %347
  %349 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %350 = load double, ptr %349, align 8, !tbaa !19
  %351 = fneg double %348
  %352 = call double @llvm.fmuladd.f64(double %351, double %350, double %345)
  %353 = call double @llvm.fmuladd.f64(double %337, double %352, double %333)
  %354 = fdiv double %353, 2.000000e+00
  store double %354, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %355 = load double, ptr %15, align 8, !tbaa !9
  %356 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %357 = load double, ptr %356, align 8, !tbaa !19
  %358 = fmul double %355, %357
  %359 = load double, ptr %24, align 8, !tbaa !9
  %360 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %361 = load double, ptr %360, align 8, !tbaa !19
  %362 = fneg double %361
  %363 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %359, double %362)
  %364 = fmul double %358, %363
  %365 = load double, ptr %26, align 8, !tbaa !9
  %366 = fsub double %365, 1.000000e+00
  %367 = fmul double %364, %366
  %368 = fdiv double %367, 2.000000e+00
  %369 = load double, ptr %25, align 8, !tbaa !9
  %370 = load double, ptr %15, align 8, !tbaa !9
  %371 = fmul double %369, %370
  %372 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %373 = load double, ptr %372, align 8, !tbaa !19
  %374 = load double, ptr %24, align 8, !tbaa !9
  %375 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %376 = load double, ptr %375, align 8, !tbaa !19
  %377 = fneg double %376
  %378 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %374, double %377)
  %379 = load double, ptr %26, align 8, !tbaa !9
  %380 = fneg double %378
  %381 = call double @llvm.fmuladd.f64(double %380, double %379, double %373)
  %382 = load double, ptr %25, align 8, !tbaa !9
  %383 = fsub double %381, %382
  %384 = call double @llvm.fmuladd.f64(double %371, double %383, double %368)
  store double %384, ptr %28, align 8, !tbaa !9
  %385 = load double, ptr %27, align 8, !tbaa !9
  %386 = load double, ptr %28, align 8, !tbaa !9
  %387 = fdiv double %385, %386
  %388 = load double, ptr %24, align 8, !tbaa !9
  %389 = fsub double %388, %387
  store double %389, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  %390 = load double, ptr %24, align 8, !tbaa !9
  %391 = load ptr, ptr %10, align 8, !tbaa !5
  %392 = getelementptr inbounds %"class.ruckig::Profile", ptr %391, i32 0, i32 0
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %392, i64 noundef 0) #7
  store double %390, ptr %393, align 8, !tbaa !9
  %394 = load ptr, ptr %10, align 8, !tbaa !5
  %395 = getelementptr inbounds %"class.ruckig::Profile", ptr %394, i32 0, i32 0
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %395, i64 noundef 1) #7
  store double 0.000000e+00, ptr %396, align 8, !tbaa !9
  %397 = load double, ptr %15, align 8, !tbaa !9
  %398 = load double, ptr %24, align 8, !tbaa !9
  %399 = fmul double %397, %398
  %400 = load double, ptr %24, align 8, !tbaa !9
  %401 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %402 = load double, ptr %401, align 8, !tbaa !19
  %403 = fsub double %400, %402
  %404 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %405 = load double, ptr %404, align 8, !tbaa !22
  %406 = call double @llvm.fmuladd.f64(double %399, double %403, double %405)
  %407 = load double, ptr %15, align 8, !tbaa !9
  %408 = load double, ptr %24, align 8, !tbaa !9
  %409 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %410 = load double, ptr %409, align 8, !tbaa !19
  %411 = fneg double %410
  %412 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %408, double %411)
  %413 = fmul double %407, %412
  %414 = fdiv double %406, %413
  %415 = load ptr, ptr %10, align 8, !tbaa !5
  %416 = getelementptr inbounds %"class.ruckig::Profile", ptr %415, i32 0, i32 0
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %416, i64 noundef 2) #7
  store double %414, ptr %417, align 8, !tbaa !9
  %418 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %419 = load double, ptr %418, align 8, !tbaa !19
  %420 = load double, ptr %24, align 8, !tbaa !9
  %421 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %420, double %419)
  %422 = load ptr, ptr %10, align 8, !tbaa !5
  %423 = getelementptr inbounds %"class.ruckig::Profile", ptr %422, i32 0, i32 0
  %424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %423, i64 noundef 3) #7
  store double %421, ptr %424, align 8, !tbaa !9
  %425 = load double, ptr %24, align 8, !tbaa !9
  %426 = load ptr, ptr %10, align 8, !tbaa !5
  %427 = getelementptr inbounds %"class.ruckig::Profile", ptr %426, i32 0, i32 0
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %427, i64 noundef 2) #7
  %429 = load double, ptr %428, align 8, !tbaa !9
  %430 = fsub double %425, %429
  %431 = load ptr, ptr %10, align 8, !tbaa !5
  %432 = getelementptr inbounds %"class.ruckig::Profile", ptr %431, i32 0, i32 0
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %432, i64 noundef 4) #7
  store double %430, ptr %433, align 8, !tbaa !9
  %434 = load ptr, ptr %10, align 8, !tbaa !5
  %435 = getelementptr inbounds %"class.ruckig::Profile", ptr %434, i32 0, i32 0
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %435, i64 noundef 5) #7
  store double 0.000000e+00, ptr %436, align 8, !tbaa !9
  %437 = load ptr, ptr %10, align 8, !tbaa !5
  %438 = getelementptr inbounds %"class.ruckig::Profile", ptr %437, i32 0, i32 0
  %439 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %438, i64 noundef 6) #7
  store double 0.000000e+00, ptr %439, align 8, !tbaa !9
  %440 = load ptr, ptr %10, align 8, !tbaa !5
  %441 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %442 = load double, ptr %441, align 8, !tbaa !19
  %443 = load double, ptr %15, align 8, !tbaa !9
  %444 = load double, ptr %11, align 8, !tbaa !9
  %445 = load double, ptr %12, align 8, !tbaa !9
  %446 = load double, ptr %13, align 8, !tbaa !9
  %447 = load double, ptr %14, align 8, !tbaa !9
  %448 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %440, double noundef %442, double noundef %443, double noundef %444, double noundef %445, double noundef %446, double noundef %447)
  br i1 %448, label %449, label %450

449:                                              ; preds = %266
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %451

450:                                              ; preds = %266
  store i32 0, ptr %18, align 4
  br label %451

451:                                              ; preds = %450, %449, %265
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  %452 = load i32, ptr %18, align 4
  switch i32 %452, label %457 [
    i32 0, label %453
    i32 3, label %454
  ]

453:                                              ; preds = %451
  br label %454

454:                                              ; preds = %453, %451
  %455 = load ptr, ptr %22, align 8, !tbaa !5
  %456 = getelementptr inbounds double, ptr %455, i32 1
  store ptr %456, ptr %22, align 8, !tbaa !5
  br label %243

457:                                              ; preds = %451, %247
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  %458 = load i32, ptr %18, align 4
  switch i32 %458, label %460 [
    i32 2, label %459
  ]

459:                                              ; preds = %457
  store i32 0, ptr %18, align 4
  br label %460

460:                                              ; preds = %459, %457
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  %461 = load i32, ptr %18, align 4
  switch i32 %461, label %3970 [
    i32 0, label %462
    i32 1, label %3968
  ]

462:                                              ; preds = %460
  br label %463

463:                                              ; preds = %462, %195, %190
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %464 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %465 = load double, ptr %464, align 8, !tbaa !25
  %466 = fmul double 2.000000e+00, %465
  %467 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %468 = load double, ptr %467, align 8, !tbaa !26
  %469 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %470 = load double, ptr %469, align 8, !tbaa !27
  %471 = fsub double %468, %470
  %472 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %473 = load double, ptr %472, align 8, !tbaa !28
  %474 = fmul double 3.000000e+00, %473
  %475 = load double, ptr %15, align 8, !tbaa !9
  %476 = fmul double %474, %475
  %477 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %478 = load double, ptr %477, align 8, !tbaa !19
  %479 = fneg double %476
  %480 = call double @llvm.fmuladd.f64(double %479, double %478, double %471)
  %481 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %482 = load double, ptr %481, align 8, !tbaa !15
  %483 = fmul double 9.000000e+00, %482
  %484 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %485 = load double, ptr %484, align 8, !tbaa !25
  %486 = fmul double %483, %485
  %487 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %488 = load double, ptr %487, align 8, !tbaa !16
  %489 = call double @llvm.fmuladd.f64(double %486, double %488, double %480)
  %490 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %491 = load double, ptr %490, align 8, !tbaa !29
  %492 = fmul double 3.000000e+00, %491
  %493 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %494 = load double, ptr %493, align 8, !tbaa !15
  %495 = load double, ptr %15, align 8, !tbaa !9
  %496 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %497 = load double, ptr %496, align 8, !tbaa !19
  %498 = call double @llvm.fmuladd.f64(double %495, double %497, double %494)
  %499 = fneg double %492
  %500 = call double @llvm.fmuladd.f64(double %499, double %498, double %489)
  %501 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %502 = load double, ptr %501, align 8, !tbaa !14
  %503 = fmul double 3.000000e+00, %502
  %504 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %505 = load double, ptr %504, align 8, !tbaa !15
  %506 = load double, ptr %15, align 8, !tbaa !9
  %507 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %508 = load double, ptr %507, align 8, !tbaa !19
  %509 = call double @llvm.fmuladd.f64(double %506, double %508, double %505)
  %510 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %509)
  %511 = call double @llvm.fmuladd.f64(double %503, double %510, double %500)
  %512 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %513 = load double, ptr %512, align 8, !tbaa !25
  %514 = fmul double 3.000000e+00, %513
  %515 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %516 = load double, ptr %515, align 8, !tbaa !18
  %517 = load double, ptr %15, align 8, !tbaa !9
  %518 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %519 = load double, ptr %518, align 8, !tbaa !16
  %520 = fmul double %517, %519
  %521 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %522 = load double, ptr %521, align 8, !tbaa !19
  %523 = fmul double %520, %522
  %524 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %516, double %523)
  %525 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %526 = load double, ptr %525, align 8, !tbaa !19
  %527 = fmul double 8.000000e+00, %526
  %528 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %529 = load double, ptr %528, align 8, !tbaa !20
  %530 = fneg double %527
  %531 = call double @llvm.fmuladd.f64(double %530, double %529, double %524)
  %532 = call double @llvm.fmuladd.f64(double %514, double %531, double %511)
  %533 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %532)
  %534 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %535 = load double, ptr %534, align 8, !tbaa !29
  %536 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %537 = load double, ptr %536, align 8, !tbaa !28
  %538 = fadd double %535, %537
  %539 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %540 = load double, ptr %539, align 8, !tbaa !15
  %541 = fmul double 2.000000e+00, %540
  %542 = load double, ptr %15, align 8, !tbaa !9
  %543 = fmul double %541, %542
  %544 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %545 = load double, ptr %544, align 8, !tbaa !19
  %546 = fneg double %543
  %547 = call double @llvm.fmuladd.f64(double %546, double %545, double %538)
  %548 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %549 = load double, ptr %548, align 8, !tbaa !14
  %550 = fmul double 2.000000e+00, %549
  %551 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %552 = load double, ptr %551, align 8, !tbaa !15
  %553 = load double, ptr %15, align 8, !tbaa !9
  %554 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %555 = load double, ptr %554, align 8, !tbaa !19
  %556 = call double @llvm.fmuladd.f64(double %553, double %555, double %552)
  %557 = fneg double %550
  %558 = call double @llvm.fmuladd.f64(double %557, double %556, double %547)
  %559 = load double, ptr %15, align 8, !tbaa !9
  %560 = load double, ptr %15, align 8, !tbaa !9
  %561 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %562 = load double, ptr %561, align 8, !tbaa !16
  %563 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %564 = load double, ptr %563, align 8, !tbaa !11
  %565 = fmul double 4.000000e+00, %564
  %566 = call double @llvm.fmuladd.f64(double %560, double %562, double %565)
  %567 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %568 = load double, ptr %567, align 8, !tbaa !20
  %569 = call double @llvm.fmuladd.f64(double -4.000000e+00, double %568, double %566)
  %570 = fneg double %559
  %571 = call double @llvm.fmuladd.f64(double %570, double %569, double %558)
  %572 = fmul double 3.000000e+00, %571
  %573 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %574 = load double, ptr %573, align 8, !tbaa !30
  %575 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %576 = load double, ptr %575, align 8, !tbaa !31
  %577 = fadd double %574, %576
  %578 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %579 = load double, ptr %578, align 8, !tbaa !27
  %580 = fmul double 4.000000e+00, %579
  %581 = load double, ptr %15, align 8, !tbaa !9
  %582 = fmul double %580, %581
  %583 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %584 = load double, ptr %583, align 8, !tbaa !19
  %585 = call double @llvm.fmuladd.f64(double %582, double %584, double %577)
  %586 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %587 = load double, ptr %586, align 8, !tbaa !28
  %588 = fmul double 6.000000e+00, %587
  %589 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %590 = load double, ptr %589, align 8, !tbaa !25
  %591 = fmul double %588, %590
  %592 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %593 = load double, ptr %592, align 8, !tbaa !16
  %594 = call double @llvm.fmuladd.f64(double %591, double %593, double %585)
  %595 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %596 = load double, ptr %595, align 8, !tbaa !25
  %597 = fmul double 3.000000e+00, %596
  %598 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %599 = load double, ptr %598, align 8, !tbaa !25
  %600 = fmul double %597, %599
  %601 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %602 = load double, ptr %601, align 8, !tbaa !16
  %603 = fmul double %600, %602
  %604 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %605 = load double, ptr %604, align 8, !tbaa !16
  %606 = fneg double %603
  %607 = call double @llvm.fmuladd.f64(double %606, double %605, double %594)
  %608 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %609 = load double, ptr %608, align 8, !tbaa !26
  %610 = fmul double 4.000000e+00, %609
  %611 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %612 = load double, ptr %611, align 8, !tbaa !15
  %613 = load double, ptr %15, align 8, !tbaa !9
  %614 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %615 = load double, ptr %614, align 8, !tbaa !19
  %616 = call double @llvm.fmuladd.f64(double %613, double %615, double %612)
  %617 = fneg double %610
  %618 = call double @llvm.fmuladd.f64(double %617, double %616, double %607)
  %619 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %620 = load double, ptr %619, align 8, !tbaa !29
  %621 = fmul double 6.000000e+00, %620
  %622 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %623 = load double, ptr %622, align 8, !tbaa !15
  %624 = load double, ptr %15, align 8, !tbaa !9
  %625 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %626 = load double, ptr %625, align 8, !tbaa !19
  %627 = call double @llvm.fmuladd.f64(double %624, double %626, double %623)
  %628 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %627)
  %629 = call double @llvm.fmuladd.f64(double %621, double %628, double %618)
  %630 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %631 = load double, ptr %630, align 8, !tbaa !15
  %632 = fmul double 1.200000e+01, %631
  %633 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %634 = load double, ptr %633, align 8, !tbaa !25
  %635 = fmul double %632, %634
  %636 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %637 = load double, ptr %636, align 8, !tbaa !18
  %638 = load double, ptr %15, align 8, !tbaa !9
  %639 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %640 = load double, ptr %639, align 8, !tbaa !16
  %641 = fmul double %638, %640
  %642 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %643 = load double, ptr %642, align 8, !tbaa !19
  %644 = fmul double %641, %643
  %645 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %637, double %644)
  %646 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %647 = load double, ptr %646, align 8, !tbaa !19
  %648 = fmul double 8.000000e+00, %647
  %649 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %650 = load double, ptr %649, align 8, !tbaa !11
  %651 = fneg double %648
  %652 = call double @llvm.fmuladd.f64(double %651, double %650, double %645)
  %653 = fneg double %635
  %654 = call double @llvm.fmuladd.f64(double %653, double %652, double %629)
  %655 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %656 = load double, ptr %655, align 8, !tbaa !25
  %657 = fmul double 4.800000e+01, %656
  %658 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %659 = load double, ptr %658, align 8, !tbaa !23
  %660 = call double @llvm.fmuladd.f64(double %657, double %659, double %654)
  %661 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %662 = load double, ptr %661, align 8, !tbaa !25
  %663 = fmul double 4.800000e+01, %662
  %664 = load double, ptr %15, align 8, !tbaa !9
  %665 = fmul double %663, %664
  %666 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %667 = load double, ptr %666, align 8, !tbaa !19
  %668 = fmul double %665, %667
  %669 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 32
  %670 = load double, ptr %669, align 8, !tbaa !24
  %671 = call double @llvm.fmuladd.f64(double %668, double %670, double %660)
  %672 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %673 = load double, ptr %672, align 8, !tbaa !14
  %674 = fmul double 4.000000e+00, %673
  %675 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %676 = load double, ptr %675, align 8, !tbaa !27
  %677 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %678 = load double, ptr %677, align 8, !tbaa !28
  %679 = fmul double 3.000000e+00, %678
  %680 = load double, ptr %15, align 8, !tbaa !9
  %681 = fmul double %679, %680
  %682 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %683 = load double, ptr %682, align 8, !tbaa !19
  %684 = call double @llvm.fmuladd.f64(double %681, double %683, double %676)
  %685 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %686 = load double, ptr %685, align 8, !tbaa !15
  %687 = fmul double 9.000000e+00, %686
  %688 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %689 = load double, ptr %688, align 8, !tbaa !25
  %690 = fmul double %687, %689
  %691 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %692 = load double, ptr %691, align 8, !tbaa !16
  %693 = fneg double %690
  %694 = call double @llvm.fmuladd.f64(double %693, double %692, double %684)
  %695 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %696 = load double, ptr %695, align 8, !tbaa !25
  %697 = fmul double 3.000000e+00, %696
  %698 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %699 = load double, ptr %698, align 8, !tbaa !18
  %700 = load double, ptr %15, align 8, !tbaa !9
  %701 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %702 = load double, ptr %701, align 8, !tbaa !16
  %703 = fmul double %700, %702
  %704 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %705 = load double, ptr %704, align 8, !tbaa !19
  %706 = fmul double %703, %705
  %707 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %699, double %706)
  %708 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %709 = load double, ptr %708, align 8, !tbaa !19
  %710 = fmul double 8.000000e+00, %709
  %711 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %712 = load double, ptr %711, align 8, !tbaa !20
  %713 = fneg double %710
  %714 = call double @llvm.fmuladd.f64(double %713, double %712, double %707)
  %715 = fneg double %697
  %716 = call double @llvm.fmuladd.f64(double %715, double %714, double %694)
  %717 = fneg double %674
  %718 = call double @llvm.fmuladd.f64(double %717, double %716, double %671)
  %719 = fmul double %572, %718
  %720 = fneg double %719
  %721 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %533, double %720)
  %722 = fmul double %466, %721
  %723 = call double @sqrt(double noundef %722) #7
  %724 = load double, ptr %15, align 8, !tbaa !9
  %725 = fdiv double %723, %724
  store double %725, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %726 = load double, ptr %15, align 8, !tbaa !9
  %727 = fmul double 1.200000e+01, %726
  %728 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %729 = load double, ptr %728, align 8, !tbaa !29
  %730 = fneg double %729
  %731 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %732 = load double, ptr %731, align 8, !tbaa !28
  %733 = fsub double %730, %732
  %734 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %735 = load double, ptr %734, align 8, !tbaa !15
  %736 = fmul double 2.000000e+00, %735
  %737 = load double, ptr %15, align 8, !tbaa !9
  %738 = fmul double %736, %737
  %739 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %740 = load double, ptr %739, align 8, !tbaa !19
  %741 = call double @llvm.fmuladd.f64(double %738, double %740, double %733)
  %742 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %743 = load double, ptr %742, align 8, !tbaa !14
  %744 = fmul double 2.000000e+00, %743
  %745 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %746 = load double, ptr %745, align 8, !tbaa !15
  %747 = load double, ptr %15, align 8, !tbaa !9
  %748 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %749 = load double, ptr %748, align 8, !tbaa !19
  %750 = call double @llvm.fmuladd.f64(double %747, double %749, double %746)
  %751 = call double @llvm.fmuladd.f64(double %744, double %750, double %741)
  %752 = load double, ptr %15, align 8, !tbaa !9
  %753 = load double, ptr %15, align 8, !tbaa !9
  %754 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %755 = load double, ptr %754, align 8, !tbaa !16
  %756 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %757 = load double, ptr %756, align 8, !tbaa !11
  %758 = fmul double 4.000000e+00, %757
  %759 = call double @llvm.fmuladd.f64(double %753, double %755, double %758)
  %760 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %761 = load double, ptr %760, align 8, !tbaa !20
  %762 = call double @llvm.fmuladd.f64(double -4.000000e+00, double %761, double %759)
  %763 = call double @llvm.fmuladd.f64(double %752, double %762, double %751)
  %764 = fmul double %727, %763
  store double %764, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %765 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %766 = load double, ptr %765, align 8, !tbaa !26
  %767 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %768 = load double, ptr %767, align 8, !tbaa !27
  %769 = fmul double 4.000000e+00, %768
  %770 = call double @llvm.fmuladd.f64(double -4.000000e+00, double %766, double %769)
  %771 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %772 = load double, ptr %771, align 8, !tbaa !29
  %773 = fmul double 1.200000e+01, %772
  %774 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %775 = load double, ptr %774, align 8, !tbaa !15
  %776 = call double @llvm.fmuladd.f64(double %773, double %775, double %770)
  %777 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %778 = load double, ptr %777, align 8, !tbaa !14
  %779 = fmul double 1.200000e+01, %778
  %780 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %781 = load double, ptr %780, align 8, !tbaa !28
  %782 = fneg double %779
  %783 = call double @llvm.fmuladd.f64(double %782, double %781, double %776)
  %784 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %785 = load double, ptr %784, align 8, !tbaa !25
  %786 = fmul double 4.800000e+01, %785
  %787 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %788 = load double, ptr %787, align 8, !tbaa !18
  %789 = call double @llvm.fmuladd.f64(double %786, double %788, double %783)
  %790 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %791 = load double, ptr %790, align 8, !tbaa !29
  %792 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %793 = load double, ptr %792, align 8, !tbaa !28
  %794 = fsub double %791, %793
  %795 = fmul double 1.200000e+01, %794
  %796 = load double, ptr %15, align 8, !tbaa !9
  %797 = fmul double %795, %796
  %798 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %799 = load double, ptr %798, align 8, !tbaa !19
  %800 = call double @llvm.fmuladd.f64(double %797, double %799, double %789)
  %801 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %802 = load double, ptr %801, align 8, !tbaa !25
  %803 = fmul double 2.400000e+01, %802
  %804 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %805 = load double, ptr %804, align 8, !tbaa !19
  %806 = fmul double %803, %805
  %807 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %808 = load double, ptr %807, align 8, !tbaa !11
  %809 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %810 = load double, ptr %809, align 8, !tbaa !20
  %811 = fadd double %808, %810
  %812 = fneg double %806
  %813 = call double @llvm.fmuladd.f64(double %812, double %811, double %800)
  %814 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %815 = load double, ptr %814, align 8, !tbaa !32
  %816 = fmul double 2.400000e+01, %815
  %817 = load double, ptr %15, align 8, !tbaa !9
  %818 = fmul double %816, %817
  %819 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %820 = load double, ptr %819, align 8, !tbaa !22
  %821 = call double @llvm.fmuladd.f64(double %818, double %820, double %813)
  store double %821, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %822 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %823 = load double, ptr %822, align 8, !tbaa !26
  %824 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %825 = load double, ptr %824, align 8, !tbaa !27
  %826 = fmul double 2.000000e+00, %825
  %827 = fneg double %826
  %828 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %823, double %827)
  %829 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %830 = load double, ptr %829, align 8, !tbaa !29
  %831 = fmul double 6.000000e+00, %830
  %832 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %833 = load double, ptr %832, align 8, !tbaa !15
  %834 = fneg double %831
  %835 = call double @llvm.fmuladd.f64(double %834, double %833, double %828)
  %836 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %837 = load double, ptr %836, align 8, !tbaa !14
  %838 = fmul double 6.000000e+00, %837
  %839 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %840 = load double, ptr %839, align 8, !tbaa !28
  %841 = call double @llvm.fmuladd.f64(double %838, double %840, double %835)
  store double %841, ptr %32, align 8, !tbaa !9
  %842 = load double, ptr %32, align 8, !tbaa !9
  %843 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %844 = load double, ptr %843, align 8, !tbaa !25
  %845 = fmul double 4.800000e+01, %844
  %846 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %847 = load double, ptr %846, align 8, !tbaa !19
  %848 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %849 = load double, ptr %848, align 8, !tbaa !20
  %850 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %851 = load double, ptr %850, align 8, !tbaa !18
  %852 = fneg double %851
  %853 = call double @llvm.fmuladd.f64(double %847, double %849, double %852)
  %854 = fneg double %845
  %855 = call double @llvm.fmuladd.f64(double %854, double %853, double %842)
  %856 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %857 = load double, ptr %856, align 8, !tbaa !29
  %858 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %859 = load double, ptr %858, align 8, !tbaa !28
  %860 = fadd double %857, %859
  %861 = fmul double 6.000000e+00, %860
  %862 = load double, ptr %15, align 8, !tbaa !9
  %863 = fmul double %861, %862
  %864 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %865 = load double, ptr %864, align 8, !tbaa !19
  %866 = fneg double %863
  %867 = call double @llvm.fmuladd.f64(double %866, double %865, double %855)
  %868 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %869 = load double, ptr %868, align 8, !tbaa !14
  %870 = fmul double 1.200000e+01, %869
  %871 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %872 = load double, ptr %871, align 8, !tbaa !15
  %873 = fmul double %870, %872
  %874 = load double, ptr %15, align 8, !tbaa !9
  %875 = fmul double %873, %874
  %876 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %877 = load double, ptr %876, align 8, !tbaa !19
  %878 = call double @llvm.fmuladd.f64(double %875, double %877, double %867)
  %879 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %880 = load double, ptr %879, align 8, !tbaa !14
  %881 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %882 = load double, ptr %881, align 8, !tbaa !15
  %883 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %882, double %880)
  %884 = load double, ptr %15, align 8, !tbaa !9
  %885 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %886 = load double, ptr %885, align 8, !tbaa !19
  %887 = call double @llvm.fmuladd.f64(double %884, double %886, double %883)
  %888 = fmul double 6.000000e+00, %887
  %889 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %890 = load double, ptr %889, align 8, !tbaa !16
  %891 = fmul double %888, %890
  %892 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %893 = load double, ptr %892, align 8, !tbaa !25
  %894 = call double @llvm.fmuladd.f64(double %891, double %893, double %878)
  %895 = load double, ptr %29, align 8, !tbaa !9
  %896 = fsub double %894, %895
  %897 = load double, ptr %30, align 8, !tbaa !9
  %898 = fdiv double %896, %897
  %899 = load ptr, ptr %10, align 8, !tbaa !5
  %900 = getelementptr inbounds %"class.ruckig::Profile", ptr %899, i32 0, i32 0
  %901 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %900, i64 noundef 0) #7
  store double %898, ptr %901, align 8, !tbaa !9
  %902 = load ptr, ptr %10, align 8, !tbaa !5
  %903 = getelementptr inbounds %"class.ruckig::Profile", ptr %902, i32 0, i32 0
  %904 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %903, i64 noundef 1) #7
  store double 0.000000e+00, ptr %904, align 8, !tbaa !9
  %905 = load double, ptr %31, align 8, !tbaa !9
  %906 = load double, ptr %29, align 8, !tbaa !9
  %907 = fadd double %905, %906
  %908 = load double, ptr %30, align 8, !tbaa !9
  %909 = fdiv double %907, %908
  %910 = load ptr, ptr %10, align 8, !tbaa !5
  %911 = getelementptr inbounds %"class.ruckig::Profile", ptr %910, i32 0, i32 0
  %912 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %911, i64 noundef 2) #7
  store double %909, ptr %912, align 8, !tbaa !9
  %913 = load ptr, ptr %10, align 8, !tbaa !5
  %914 = getelementptr inbounds %"class.ruckig::Profile", ptr %913, i32 0, i32 0
  %915 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %914, i64 noundef 3) #7
  store double 0.000000e+00, ptr %915, align 8, !tbaa !9
  %916 = load double, ptr %31, align 8, !tbaa !9
  %917 = fneg double %916
  %918 = load double, ptr %29, align 8, !tbaa !9
  %919 = fadd double %917, %918
  %920 = load double, ptr %30, align 8, !tbaa !9
  %921 = fdiv double %919, %920
  %922 = load ptr, ptr %10, align 8, !tbaa !5
  %923 = getelementptr inbounds %"class.ruckig::Profile", ptr %922, i32 0, i32 0
  %924 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %923, i64 noundef 4) #7
  store double %921, ptr %924, align 8, !tbaa !9
  %925 = load ptr, ptr %10, align 8, !tbaa !5
  %926 = getelementptr inbounds %"class.ruckig::Profile", ptr %925, i32 0, i32 0
  %927 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %926, i64 noundef 5) #7
  store double 0.000000e+00, ptr %927, align 8, !tbaa !9
  %928 = load double, ptr %32, align 8, !tbaa !9
  %929 = fneg double %928
  %930 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %931 = load double, ptr %930, align 8, !tbaa !25
  %932 = fmul double 4.800000e+01, %931
  %933 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %934 = load double, ptr %933, align 8, !tbaa !19
  %935 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %936 = load double, ptr %935, align 8, !tbaa !11
  %937 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %938 = load double, ptr %937, align 8, !tbaa !18
  %939 = fneg double %938
  %940 = call double @llvm.fmuladd.f64(double %934, double %936, double %939)
  %941 = call double @llvm.fmuladd.f64(double %932, double %940, double %929)
  %942 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %943 = load double, ptr %942, align 8, !tbaa !29
  %944 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %945 = load double, ptr %944, align 8, !tbaa !28
  %946 = fadd double %943, %945
  %947 = fmul double 6.000000e+00, %946
  %948 = load double, ptr %15, align 8, !tbaa !9
  %949 = fmul double %947, %948
  %950 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %951 = load double, ptr %950, align 8, !tbaa !19
  %952 = fneg double %949
  %953 = call double @llvm.fmuladd.f64(double %952, double %951, double %941)
  %954 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %955 = load double, ptr %954, align 8, !tbaa !14
  %956 = fmul double 1.200000e+01, %955
  %957 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %958 = load double, ptr %957, align 8, !tbaa !15
  %959 = fmul double %956, %958
  %960 = load double, ptr %15, align 8, !tbaa !9
  %961 = fmul double %959, %960
  %962 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %963 = load double, ptr %962, align 8, !tbaa !19
  %964 = call double @llvm.fmuladd.f64(double %961, double %963, double %953)
  %965 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %966 = load double, ptr %965, align 8, !tbaa !15
  %967 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %968 = load double, ptr %967, align 8, !tbaa !14
  %969 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %968, double %966)
  %970 = load double, ptr %15, align 8, !tbaa !9
  %971 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %972 = load double, ptr %971, align 8, !tbaa !19
  %973 = call double @llvm.fmuladd.f64(double %970, double %972, double %969)
  %974 = fmul double 6.000000e+00, %973
  %975 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %976 = load double, ptr %975, align 8, !tbaa !16
  %977 = fmul double %974, %976
  %978 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %979 = load double, ptr %978, align 8, !tbaa !25
  %980 = call double @llvm.fmuladd.f64(double %977, double %979, double %964)
  %981 = load double, ptr %29, align 8, !tbaa !9
  %982 = fsub double %980, %981
  %983 = load double, ptr %30, align 8, !tbaa !9
  %984 = fdiv double %982, %983
  %985 = load ptr, ptr %10, align 8, !tbaa !5
  %986 = getelementptr inbounds %"class.ruckig::Profile", ptr %985, i32 0, i32 0
  %987 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %986, i64 noundef 6) #7
  store double %984, ptr %987, align 8, !tbaa !9
  %988 = load ptr, ptr %10, align 8, !tbaa !5
  %989 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %990 = load double, ptr %989, align 8, !tbaa !19
  %991 = load double, ptr %15, align 8, !tbaa !9
  %992 = load double, ptr %11, align 8, !tbaa !9
  %993 = load double, ptr %12, align 8, !tbaa !9
  %994 = load double, ptr %13, align 8, !tbaa !9
  %995 = load double, ptr %14, align 8, !tbaa !9
  %996 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE1ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %988, double noundef %990, double noundef %991, double noundef %992, double noundef %993, double noundef %994, double noundef %995)
  br i1 %996, label %997, label %998

997:                                              ; preds = %463
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %999

998:                                              ; preds = %463
  store i32 0, ptr %18, align 4
  br label %999

999:                                              ; preds = %998, %997
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  %1000 = load i32, ptr %18, align 4
  switch i32 %1000, label %3970 [
    i32 0, label %1001
    i32 1, label %3968
  ]

1001:                                             ; preds = %999
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %1002 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1003 = load double, ptr %1002, align 8, !tbaa !15
  %1004 = load double, ptr %15, align 8, !tbaa !9
  %1005 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1006 = load double, ptr %1005, align 8, !tbaa !19
  %1007 = call double @llvm.fmuladd.f64(double %1004, double %1006, double %1003)
  store double %1007, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  %1008 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1009 = load double, ptr %1008, align 8, !tbaa !32
  %1010 = load double, ptr %15, align 8, !tbaa !9
  %1011 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1012 = load double, ptr %1011, align 8, !tbaa !19
  %1013 = call double @llvm.fmuladd.f64(double %1010, double %1012, double %1009)
  %1014 = fmul double -2.000000e+00, %1013
  %1015 = load double, ptr %15, align 8, !tbaa !9
  %1016 = fdiv double %1014, %1015
  %1017 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef 0) #7
  store double %1016, ptr %1017, align 8, !tbaa !9
  %1018 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %1019 = load double, ptr %1018, align 8, !tbaa !29
  %1020 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1021 = load double, ptr %1020, align 8, !tbaa !28
  %1022 = fadd double %1019, %1021
  %1023 = load double, ptr %15, align 8, !tbaa !9
  %1024 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1025 = load double, ptr %1024, align 8, !tbaa !15
  %1026 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1027 = load double, ptr %1026, align 8, !tbaa !19
  %1028 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1029 = load double, ptr %1028, align 8, !tbaa !22
  %1030 = call double @llvm.fmuladd.f64(double %1025, double %1027, double %1029)
  %1031 = call double @llvm.fmuladd.f64(double %1023, double %1030, double %1022)
  %1032 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1033 = load double, ptr %1032, align 8, !tbaa !14
  %1034 = fmul double 2.000000e+00, %1033
  %1035 = load double, ptr %33, align 8, !tbaa !9
  %1036 = fneg double %1034
  %1037 = call double @llvm.fmuladd.f64(double %1036, double %1035, double %1031)
  %1038 = fmul double 2.000000e+00, %1037
  %1039 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1040 = load double, ptr %1039, align 8, !tbaa !25
  %1041 = fdiv double %1038, %1040
  %1042 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1043 = load double, ptr %1042, align 8, !tbaa !16
  %1044 = fadd double %1041, %1043
  %1045 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef 1) #7
  store double %1044, ptr %1045, align 8, !tbaa !9
  %1046 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %1047 = load double, ptr %1046, align 8, !tbaa !26
  %1048 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1049 = load double, ptr %1048, align 8, !tbaa !27
  %1050 = fsub double %1047, %1049
  %1051 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1052 = load double, ptr %1051, align 8, !tbaa !28
  %1053 = fmul double 3.000000e+00, %1052
  %1054 = load double, ptr %15, align 8, !tbaa !9
  %1055 = fmul double %1053, %1054
  %1056 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1057 = load double, ptr %1056, align 8, !tbaa !19
  %1058 = fneg double %1055
  %1059 = call double @llvm.fmuladd.f64(double %1058, double %1057, double %1050)
  %1060 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1061 = load double, ptr %1060, align 8, !tbaa !14
  %1062 = fmul double 3.000000e+00, %1061
  %1063 = load double, ptr %33, align 8, !tbaa !9
  %1064 = fmul double %1062, %1063
  %1065 = load double, ptr %33, align 8, !tbaa !9
  %1066 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1067 = load double, ptr %1066, align 8, !tbaa !14
  %1068 = fsub double %1065, %1067
  %1069 = call double @llvm.fmuladd.f64(double %1064, double %1068, double %1059)
  %1070 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1071 = load double, ptr %1070, align 8, !tbaa !25
  %1072 = fmul double 6.000000e+00, %1071
  %1073 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1074 = load double, ptr %1073, align 8, !tbaa !18
  %1075 = fneg double %1074
  %1076 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1077 = load double, ptr %1076, align 8, !tbaa !19
  %1078 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %1079 = load double, ptr %1078, align 8, !tbaa !20
  %1080 = call double @llvm.fmuladd.f64(double %1077, double %1079, double %1075)
  %1081 = fneg double %1072
  %1082 = call double @llvm.fmuladd.f64(double %1081, double %1080, double %1069)
  %1083 = fmul double 2.000000e+00, %1082
  %1084 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1085 = load double, ptr %1084, align 8, !tbaa !25
  %1086 = fmul double 3.000000e+00, %1085
  %1087 = load double, ptr %15, align 8, !tbaa !9
  %1088 = fmul double %1086, %1087
  %1089 = fdiv double %1083, %1088
  %1090 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef 2) #7
  store double %1089, ptr %1090, align 8, !tbaa !9
  %1091 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %1092 = load double, ptr %1091, align 8, !tbaa !30
  %1093 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %1094 = load double, ptr %1093, align 8, !tbaa !31
  %1095 = fadd double %1092, %1094
  %1096 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1097 = load double, ptr %1096, align 8, !tbaa !27
  %1098 = fmul double 4.000000e+00, %1097
  %1099 = load double, ptr %15, align 8, !tbaa !9
  %1100 = fmul double %1098, %1099
  %1101 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1102 = load double, ptr %1101, align 8, !tbaa !19
  %1103 = call double @llvm.fmuladd.f64(double %1100, double %1102, double %1095)
  %1104 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %1105 = load double, ptr %1104, align 8, !tbaa !26
  %1106 = fmul double 4.000000e+00, %1105
  %1107 = load double, ptr %33, align 8, !tbaa !9
  %1108 = fneg double %1106
  %1109 = call double @llvm.fmuladd.f64(double %1108, double %1107, double %1103)
  %1110 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %1111 = load double, ptr %1110, align 8, !tbaa !29
  %1112 = fmul double 6.000000e+00, %1111
  %1113 = load double, ptr %33, align 8, !tbaa !9
  %1114 = fmul double %1112, %1113
  %1115 = load double, ptr %33, align 8, !tbaa !9
  %1116 = call double @llvm.fmuladd.f64(double %1114, double %1115, double %1109)
  %1117 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1118 = load double, ptr %1117, align 8, !tbaa !25
  %1119 = fmul double 2.400000e+01, %1118
  %1120 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1121 = load double, ptr %1120, align 8, !tbaa !15
  %1122 = fmul double %1119, %1121
  %1123 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %1124 = load double, ptr %1123, align 8, !tbaa !33
  %1125 = call double @llvm.fmuladd.f64(double %1122, double %1124, double %1116)
  %1126 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1127 = load double, ptr %1126, align 8, !tbaa !14
  %1128 = fmul double 4.000000e+00, %1127
  %1129 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1130 = load double, ptr %1129, align 8, !tbaa !27
  %1131 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1132 = load double, ptr %1131, align 8, !tbaa !28
  %1133 = fmul double 3.000000e+00, %1132
  %1134 = load double, ptr %15, align 8, !tbaa !9
  %1135 = fmul double %1133, %1134
  %1136 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1137 = load double, ptr %1136, align 8, !tbaa !19
  %1138 = call double @llvm.fmuladd.f64(double %1135, double %1137, double %1130)
  %1139 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1140 = load double, ptr %1139, align 8, !tbaa !25
  %1141 = fmul double 6.000000e+00, %1140
  %1142 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1143 = load double, ptr %1142, align 8, !tbaa !18
  %1144 = fneg double %1143
  %1145 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1146 = load double, ptr %1145, align 8, !tbaa !19
  %1147 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %1148 = load double, ptr %1147, align 8, !tbaa !20
  %1149 = call double @llvm.fmuladd.f64(double %1146, double %1148, double %1144)
  %1150 = call double @llvm.fmuladd.f64(double %1141, double %1149, double %1138)
  %1151 = fneg double %1128
  %1152 = call double @llvm.fmuladd.f64(double %1151, double %1150, double %1125)
  %1153 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1154 = load double, ptr %1153, align 8, !tbaa !25
  %1155 = fmul double 6.000000e+00, %1154
  %1156 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1157 = load double, ptr %1156, align 8, !tbaa !28
  %1158 = fmul double %1155, %1157
  %1159 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1160 = load double, ptr %1159, align 8, !tbaa !16
  %1161 = call double @llvm.fmuladd.f64(double %1158, double %1160, double %1152)
  %1162 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1163 = load double, ptr %1162, align 8, !tbaa !25
  %1164 = fmul double 1.200000e+01, %1163
  %1165 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %1166 = load double, ptr %1165, align 8, !tbaa !23
  %1167 = load double, ptr %15, align 8, !tbaa !9
  %1168 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1169 = load double, ptr %1168, align 8, !tbaa !19
  %1170 = fmul double %1167, %1169
  %1171 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 32
  %1172 = load double, ptr %1171, align 8, !tbaa !24
  %1173 = call double @llvm.fmuladd.f64(double %1170, double %1172, double %1166)
  %1174 = call double @llvm.fmuladd.f64(double %1164, double %1173, double %1161)
  %1175 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1176 = load double, ptr %1175, align 8, !tbaa !25
  %1177 = fmul double 1.200000e+01, %1176
  %1178 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1179 = load double, ptr %1178, align 8, !tbaa !25
  %1180 = fmul double %1177, %1179
  %1181 = fdiv double %1174, %1180
  %1182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef 3) #7
  store double %1181, ptr %1182, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %1183 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1184 = load double, ptr %1183, align 8, !tbaa !32
  %1185 = load double, ptr %15, align 8, !tbaa !9
  %1186 = fdiv double %1184, %1185
  store double %1186, ptr %35, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %1187 = load double, ptr %13, align 8, !tbaa !9
  %1188 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1189 = load double, ptr %1188, align 8, !tbaa !14
  %1190 = fsub double %1187, %1189
  %1191 = load double, ptr %15, align 8, !tbaa !9
  %1192 = fdiv double %1190, %1191
  store double %1192, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %1193 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1194 = load double, ptr %1193, align 8, !tbaa !32
  %1195 = load double, ptr %15, align 8, !tbaa !9
  %1196 = fdiv double %1194, %1195
  %1197 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1198 = load double, ptr %1197, align 8, !tbaa !19
  %1199 = fadd double %1196, %1198
  %1200 = fdiv double %1199, 2.000000e+00
  store double %1200, ptr %38, align 8, !tbaa !9
  %1201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38)
  %1202 = load double, ptr %1201, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  store double %1202, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %39) #7
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind writable sret(%"class.ruckig::roots::PositiveSet") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %34)
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  store ptr %39, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %1203 = load ptr, ptr %40, align 8, !tbaa !5
  %1204 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %1203)
  store ptr %1204, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %1205 = load ptr, ptr %40, align 8, !tbaa !5
  %1206 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %1205)
  store ptr %1206, ptr %42, align 8, !tbaa !5
  br label %1207

1207:                                             ; preds = %1539, %1001
  %1208 = load ptr, ptr %41, align 8, !tbaa !5
  %1209 = load ptr, ptr %42, align 8, !tbaa !5
  %1210 = icmp ne ptr %1208, %1209
  br i1 %1210, label %1212, label %1211

1211:                                             ; preds = %1207
  store i32 4, ptr %18, align 4
  br label %1542

1212:                                             ; preds = %1207
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %1213 = load ptr, ptr %41, align 8, !tbaa !5
  %1214 = load double, ptr %1213, align 8, !tbaa !9
  store double %1214, ptr %43, align 8, !tbaa !9
  %1215 = load double, ptr %43, align 8, !tbaa !9
  %1216 = load double, ptr %35, align 8, !tbaa !9
  %1217 = fcmp olt double %1215, %1216
  br i1 %1217, label %1222, label %1218

1218:                                             ; preds = %1212
  %1219 = load double, ptr %43, align 8, !tbaa !9
  %1220 = load double, ptr %36, align 8, !tbaa !9
  %1221 = fcmp ogt double %1219, %1220
  br i1 %1221, label %1222, label %1223

1222:                                             ; preds = %1218, %1212
  store i32 5, ptr %18, align 4
  br label %1536

1223:                                             ; preds = %1218
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %1224 = load double, ptr %15, align 8, !tbaa !9
  %1225 = load double, ptr %43, align 8, !tbaa !9
  %1226 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1227 = load double, ptr %1226, align 8, !tbaa !19
  %1228 = fneg double %1227
  %1229 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1225, double %1228)
  %1230 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1231 = load double, ptr %1230, align 8, !tbaa !32
  %1232 = fneg double %1231
  %1233 = call double @llvm.fmuladd.f64(double %1224, double %1229, double %1232)
  store double %1233, ptr %44, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %1234 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %1235 = load double, ptr %1234, align 8, !tbaa !34
  %1236 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1237 = load double, ptr %1236, align 8, !tbaa !15
  %1238 = fmul double 2.000000e+00, %1237
  %1239 = load double, ptr %15, align 8, !tbaa !9
  %1240 = fmul double %1238, %1239
  %1241 = load double, ptr %43, align 8, !tbaa !9
  %1242 = fneg double %1240
  %1243 = call double @llvm.fmuladd.f64(double %1242, double %1241, double %1235)
  %1244 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1245 = load double, ptr %1244, align 8, !tbaa !14
  %1246 = fmul double 2.000000e+00, %1245
  %1247 = load double, ptr %15, align 8, !tbaa !9
  %1248 = fmul double %1246, %1247
  %1249 = load double, ptr %43, align 8, !tbaa !9
  %1250 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1251 = load double, ptr %1250, align 8, !tbaa !19
  %1252 = fsub double %1249, %1251
  %1253 = call double @llvm.fmuladd.f64(double %1248, double %1252, double %1243)
  %1254 = load double, ptr %15, align 8, !tbaa !9
  %1255 = fmul double 2.000000e+00, %1254
  %1256 = load double, ptr %15, align 8, !tbaa !9
  %1257 = load double, ptr %43, align 8, !tbaa !9
  %1258 = fmul double %1256, %1257
  %1259 = load double, ptr %43, align 8, !tbaa !9
  %1260 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1261 = load double, ptr %1260, align 8, !tbaa !19
  %1262 = fsub double %1259, %1261
  %1263 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1264 = load double, ptr %1263, align 8, !tbaa !22
  %1265 = call double @llvm.fmuladd.f64(double %1258, double %1262, double %1264)
  %1266 = call double @llvm.fmuladd.f64(double %1255, double %1265, double %1253)
  %1267 = load double, ptr %15, align 8, !tbaa !9
  %1268 = fmul double 2.000000e+00, %1267
  %1269 = load double, ptr %44, align 8, !tbaa !9
  %1270 = fmul double %1268, %1269
  %1271 = fdiv double %1266, %1270
  store double %1271, ptr %45, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %1272 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %1273 = load double, ptr %1272, align 8, !tbaa !34
  %1274 = fneg double %1273
  %1275 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1276 = load double, ptr %1275, align 8, !tbaa !25
  %1277 = fmul double 2.000000e+00, %1276
  %1278 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1279 = load double, ptr %1278, align 8, !tbaa !16
  %1280 = load double, ptr %43, align 8, !tbaa !9
  %1281 = load double, ptr %43, align 8, !tbaa !9
  %1282 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1283 = load double, ptr %1282, align 8, !tbaa !19
  %1284 = fsub double %1281, %1283
  %1285 = call double @llvm.fmuladd.f64(double %1280, double %1284, double %1279)
  %1286 = call double @llvm.fmuladd.f64(double %1277, double %1285, double %1274)
  %1287 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1288 = load double, ptr %1287, align 8, !tbaa !14
  %1289 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1290 = load double, ptr %1289, align 8, !tbaa !15
  %1291 = fadd double %1288, %1290
  %1292 = load double, ptr %15, align 8, !tbaa !9
  %1293 = fmul double %1291, %1292
  %1294 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1295 = load double, ptr %1294, align 8, !tbaa !19
  %1296 = call double @llvm.fmuladd.f64(double %1293, double %1295, double %1286)
  %1297 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1298 = load double, ptr %1297, align 8, !tbaa !32
  %1299 = load double, ptr %44, align 8, !tbaa !9
  %1300 = fneg double %1298
  %1301 = call double @llvm.fmuladd.f64(double %1300, double %1299, double %1296)
  %1302 = load double, ptr %15, align 8, !tbaa !9
  %1303 = fmul double 2.000000e+00, %1302
  %1304 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1305 = load double, ptr %1304, align 8, !tbaa !22
  %1306 = fneg double %1303
  %1307 = call double @llvm.fmuladd.f64(double %1306, double %1305, double %1301)
  %1308 = load double, ptr %44, align 8, !tbaa !9
  %1309 = load double, ptr %44, align 8, !tbaa !9
  %1310 = fmul double %1308, %1309
  %1311 = fdiv double %1307, %1310
  store double %1311, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %1312 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %1313 = load double, ptr %1312, align 8, !tbaa !26
  %1314 = fneg double %1313
  %1315 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1316 = load double, ptr %1315, align 8, !tbaa !27
  %1317 = fadd double %1314, %1316
  %1318 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %1319 = load double, ptr %1318, align 8, !tbaa !34
  %1320 = fmul double 3.000000e+00, %1319
  %1321 = load double, ptr %15, align 8, !tbaa !9
  %1322 = fmul double %1320, %1321
  %1323 = load double, ptr %45, align 8, !tbaa !9
  %1324 = load double, ptr %43, align 8, !tbaa !9
  %1325 = fsub double %1323, %1324
  %1326 = call double @llvm.fmuladd.f64(double %1322, double %1325, double %1317)
  %1327 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1328 = load double, ptr %1327, align 8, !tbaa !32
  %1329 = fmul double 3.000000e+00, %1328
  %1330 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1331 = load double, ptr %1330, align 8, !tbaa !25
  %1332 = fmul double %1329, %1331
  %1333 = load double, ptr %45, align 8, !tbaa !9
  %1334 = load double, ptr %43, align 8, !tbaa !9
  %1335 = fsub double %1333, %1334
  %1336 = fmul double %1332, %1335
  %1337 = load double, ptr %45, align 8, !tbaa !9
  %1338 = load double, ptr %43, align 8, !tbaa !9
  %1339 = fsub double %1337, %1338
  %1340 = call double @llvm.fmuladd.f64(double %1336, double %1339, double %1326)
  %1341 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1342 = load double, ptr %1341, align 8, !tbaa !14
  %1343 = fmul double 3.000000e+00, %1342
  %1344 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1345 = load double, ptr %1344, align 8, !tbaa !15
  %1346 = fmul double %1343, %1345
  %1347 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1348 = load double, ptr %1347, align 8, !tbaa !32
  %1349 = fneg double %1346
  %1350 = call double @llvm.fmuladd.f64(double %1349, double %1348, double %1340)
  %1351 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1352 = load double, ptr %1351, align 8, !tbaa !25
  %1353 = fmul double 3.000000e+00, %1352
  %1354 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1355 = load double, ptr %1354, align 8, !tbaa !14
  %1356 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1357 = load double, ptr %1356, align 8, !tbaa !16
  %1358 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1359 = load double, ptr %1358, align 8, !tbaa !18
  %1360 = fmul double 2.000000e+00, %1359
  %1361 = fneg double %1360
  %1362 = call double @llvm.fmuladd.f64(double %1355, double %1357, double %1361)
  %1363 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1364 = load double, ptr %1363, align 8, !tbaa !19
  %1365 = fmul double 2.000000e+00, %1364
  %1366 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %1367 = load double, ptr %1366, align 8, !tbaa !11
  %1368 = call double @llvm.fmuladd.f64(double %1365, double %1367, double %1362)
  %1369 = load double, ptr %45, align 8, !tbaa !9
  %1370 = load double, ptr %45, align 8, !tbaa !9
  %1371 = fmul double %1369, %1370
  %1372 = load double, ptr %15, align 8, !tbaa !9
  %1373 = fmul double %1371, %1372
  %1374 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1375 = load double, ptr %1374, align 8, !tbaa !19
  %1376 = load double, ptr %43, align 8, !tbaa !9
  %1377 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1376, double %1375)
  %1378 = call double @llvm.fmuladd.f64(double %1373, double %1377, double %1368)
  %1379 = load double, ptr %15, align 8, !tbaa !9
  %1380 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1381 = load double, ptr %1380, align 8, !tbaa !19
  %1382 = fmul double %1379, %1381
  %1383 = load double, ptr %45, align 8, !tbaa !9
  %1384 = fmul double 2.000000e+00, %1383
  %1385 = load double, ptr %43, align 8, !tbaa !9
  %1386 = load double, ptr %43, align 8, !tbaa !9
  %1387 = load double, ptr %43, align 8, !tbaa !9
  %1388 = fmul double %1386, %1387
  %1389 = fneg double %1388
  %1390 = call double @llvm.fmuladd.f64(double %1384, double %1385, double %1389)
  %1391 = load double, ptr %45, align 8, !tbaa !9
  %1392 = load double, ptr %43, align 8, !tbaa !9
  %1393 = fsub double %1391, %1392
  %1394 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1395 = load double, ptr %1394, align 8, !tbaa !19
  %1396 = fneg double %1393
  %1397 = call double @llvm.fmuladd.f64(double %1396, double %1395, double %1390)
  %1398 = call double @llvm.fmuladd.f64(double %1382, double %1397, double %1378)
  %1399 = call double @llvm.fmuladd.f64(double %1353, double %1398, double %1350)
  %1400 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1401 = load double, ptr %1400, align 8, !tbaa !25
  %1402 = fmul double 6.000000e+00, %1401
  %1403 = fdiv double %1399, %1402
  store double %1403, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %1404 = load double, ptr %44, align 8, !tbaa !9
  %1405 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1406 = load double, ptr %1405, align 8, !tbaa !32
  %1407 = fneg double %1406
  %1408 = load double, ptr %15, align 8, !tbaa !9
  %1409 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1410 = load double, ptr %1409, align 8, !tbaa !19
  %1411 = call double @llvm.fmuladd.f64(double %1408, double %1410, double %1407)
  %1412 = fmul double %1404, %1411
  %1413 = load double, ptr %46, align 8, !tbaa !9
  %1414 = fsub double %1413, 1.000000e+00
  %1415 = fmul double %1412, %1414
  %1416 = load double, ptr %15, align 8, !tbaa !9
  %1417 = fmul double 2.000000e+00, %1416
  %1418 = fdiv double %1415, %1417
  %1419 = load double, ptr %45, align 8, !tbaa !9
  %1420 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1421 = load double, ptr %1420, align 8, !tbaa !32
  %1422 = fneg double %1421
  %1423 = load double, ptr %15, align 8, !tbaa !9
  %1424 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1425 = load double, ptr %1424, align 8, !tbaa !19
  %1426 = load double, ptr %45, align 8, !tbaa !9
  %1427 = fsub double %1425, %1426
  %1428 = call double @llvm.fmuladd.f64(double %1423, double %1427, double %1422)
  %1429 = load double, ptr %44, align 8, !tbaa !9
  %1430 = load double, ptr %46, align 8, !tbaa !9
  %1431 = fneg double %1429
  %1432 = call double @llvm.fmuladd.f64(double %1431, double %1430, double %1428)
  %1433 = call double @llvm.fmuladd.f64(double %1419, double %1432, double %1418)
  store double %1433, ptr %48, align 8, !tbaa !9
  %1434 = load double, ptr %47, align 8, !tbaa !9
  %1435 = load double, ptr %48, align 8, !tbaa !9
  %1436 = fdiv double %1434, %1435
  %1437 = load double, ptr %43, align 8, !tbaa !9
  %1438 = fsub double %1437, %1436
  store double %1438, ptr %43, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  %1439 = load double, ptr %43, align 8, !tbaa !9
  %1440 = load ptr, ptr %10, align 8, !tbaa !5
  %1441 = getelementptr inbounds %"class.ruckig::Profile", ptr %1440, i32 0, i32 0
  %1442 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1441, i64 noundef 0) #7
  store double %1439, ptr %1442, align 8, !tbaa !9
  %1443 = load ptr, ptr %10, align 8, !tbaa !5
  %1444 = getelementptr inbounds %"class.ruckig::Profile", ptr %1443, i32 0, i32 0
  %1445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1444, i64 noundef 1) #7
  store double 0.000000e+00, ptr %1445, align 8, !tbaa !9
  %1446 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %1447 = load double, ptr %1446, align 8, !tbaa !34
  %1448 = load double, ptr %15, align 8, !tbaa !9
  %1449 = fmul double 2.000000e+00, %1448
  %1450 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1451 = load double, ptr %1450, align 8, !tbaa !14
  %1452 = fneg double %1451
  %1453 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1454 = load double, ptr %1453, align 8, !tbaa !19
  %1455 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1456 = load double, ptr %1455, align 8, !tbaa !32
  %1457 = load double, ptr %43, align 8, !tbaa !9
  %1458 = fmul double %1456, %1457
  %1459 = fneg double %1458
  %1460 = call double @llvm.fmuladd.f64(double %1452, double %1454, double %1459)
  %1461 = load double, ptr %15, align 8, !tbaa !9
  %1462 = load double, ptr %43, align 8, !tbaa !9
  %1463 = fmul double %1461, %1462
  %1464 = load double, ptr %43, align 8, !tbaa !9
  %1465 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1466 = load double, ptr %1465, align 8, !tbaa !19
  %1467 = fsub double %1464, %1466
  %1468 = call double @llvm.fmuladd.f64(double %1463, double %1467, double %1460)
  %1469 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1470 = load double, ptr %1469, align 8, !tbaa !22
  %1471 = fadd double %1468, %1470
  %1472 = call double @llvm.fmuladd.f64(double %1449, double %1471, double %1447)
  %1473 = load double, ptr %15, align 8, !tbaa !9
  %1474 = fmul double 2.000000e+00, %1473
  %1475 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1476 = load double, ptr %1475, align 8, !tbaa !32
  %1477 = fneg double %1476
  %1478 = load double, ptr %15, align 8, !tbaa !9
  %1479 = load double, ptr %43, align 8, !tbaa !9
  %1480 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1481 = load double, ptr %1480, align 8, !tbaa !19
  %1482 = fneg double %1481
  %1483 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1479, double %1482)
  %1484 = call double @llvm.fmuladd.f64(double %1478, double %1483, double %1477)
  %1485 = fmul double %1474, %1484
  %1486 = fdiv double %1472, %1485
  %1487 = load ptr, ptr %10, align 8, !tbaa !5
  %1488 = getelementptr inbounds %"class.ruckig::Profile", ptr %1487, i32 0, i32 0
  %1489 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1488, i64 noundef 2) #7
  store double %1486, ptr %1489, align 8, !tbaa !9
  %1490 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1491 = load double, ptr %1490, align 8, !tbaa !32
  %1492 = load double, ptr %15, align 8, !tbaa !9
  %1493 = fdiv double %1491, %1492
  %1494 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1495 = load double, ptr %1494, align 8, !tbaa !19
  %1496 = fadd double %1493, %1495
  %1497 = load double, ptr %43, align 8, !tbaa !9
  %1498 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1497, double %1496)
  %1499 = load ptr, ptr %10, align 8, !tbaa !5
  %1500 = getelementptr inbounds %"class.ruckig::Profile", ptr %1499, i32 0, i32 0
  %1501 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1500, i64 noundef 3) #7
  store double %1498, ptr %1501, align 8, !tbaa !9
  %1502 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1503 = load double, ptr %1502, align 8, !tbaa !19
  %1504 = load double, ptr %43, align 8, !tbaa !9
  %1505 = load ptr, ptr %10, align 8, !tbaa !5
  %1506 = getelementptr inbounds %"class.ruckig::Profile", ptr %1505, i32 0, i32 0
  %1507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1506, i64 noundef 2) #7
  %1508 = load double, ptr %1507, align 8, !tbaa !9
  %1509 = fadd double %1504, %1508
  %1510 = load ptr, ptr %10, align 8, !tbaa !5
  %1511 = getelementptr inbounds %"class.ruckig::Profile", ptr %1510, i32 0, i32 0
  %1512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1511, i64 noundef 3) #7
  %1513 = load double, ptr %1512, align 8, !tbaa !9
  %1514 = fadd double %1509, %1513
  %1515 = fsub double %1503, %1514
  %1516 = load ptr, ptr %10, align 8, !tbaa !5
  %1517 = getelementptr inbounds %"class.ruckig::Profile", ptr %1516, i32 0, i32 0
  %1518 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1517, i64 noundef 4) #7
  store double %1515, ptr %1518, align 8, !tbaa !9
  %1519 = load ptr, ptr %10, align 8, !tbaa !5
  %1520 = getelementptr inbounds %"class.ruckig::Profile", ptr %1519, i32 0, i32 0
  %1521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1520, i64 noundef 5) #7
  store double 0.000000e+00, ptr %1521, align 8, !tbaa !9
  %1522 = load ptr, ptr %10, align 8, !tbaa !5
  %1523 = getelementptr inbounds %"class.ruckig::Profile", ptr %1522, i32 0, i32 0
  %1524 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1523, i64 noundef 6) #7
  store double 0.000000e+00, ptr %1524, align 8, !tbaa !9
  %1525 = load ptr, ptr %10, align 8, !tbaa !5
  %1526 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1527 = load double, ptr %1526, align 8, !tbaa !19
  %1528 = load double, ptr %15, align 8, !tbaa !9
  %1529 = load double, ptr %11, align 8, !tbaa !9
  %1530 = load double, ptr %12, align 8, !tbaa !9
  %1531 = load double, ptr %13, align 8, !tbaa !9
  %1532 = load double, ptr %14, align 8, !tbaa !9
  %1533 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1525, double noundef %1527, double noundef %1528, double noundef %1529, double noundef %1530, double noundef %1531, double noundef %1532)
  br i1 %1533, label %1534, label %1535

1534:                                             ; preds = %1223
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %1536

1535:                                             ; preds = %1223
  store i32 0, ptr %18, align 4
  br label %1536

1536:                                             ; preds = %1535, %1534, %1222
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  %1537 = load i32, ptr %18, align 4
  switch i32 %1537, label %1542 [
    i32 0, label %1538
    i32 5, label %1539
  ]

1538:                                             ; preds = %1536
  br label %1539

1539:                                             ; preds = %1538, %1536
  %1540 = load ptr, ptr %41, align 8, !tbaa !5
  %1541 = getelementptr inbounds double, ptr %1540, i32 1
  store ptr %1541, ptr %41, align 8, !tbaa !5
  br label %1207

1542:                                             ; preds = %1536, %1211
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  %1543 = load i32, ptr %18, align 4
  switch i32 %1543, label %1545 [
    i32 4, label %1544
  ]

1544:                                             ; preds = %1542
  store i32 0, ptr %18, align 4
  br label %1545

1545:                                             ; preds = %1544, %1542
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  %1546 = load i32, ptr %18, align 4
  switch i32 %1546, label %3970 [
    i32 0, label %1547
    i32 1, label %3968
  ]

1547:                                             ; preds = %1545
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %1548 = load double, ptr %15, align 8, !tbaa !9
  %1549 = fmul double 3.000000e+00, %1548
  %1550 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %1551 = load double, ptr %1550, align 8, !tbaa !34
  %1552 = load double, ptr %15, align 8, !tbaa !9
  %1553 = fmul double 2.000000e+00, %1552
  %1554 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1555 = load double, ptr %1554, align 8, !tbaa !14
  %1556 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1557 = load double, ptr %1556, align 8, !tbaa !19
  %1558 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1559 = load double, ptr %1558, align 8, !tbaa !22
  %1560 = fneg double %1559
  %1561 = call double @llvm.fmuladd.f64(double %1555, double %1557, double %1560)
  %1562 = call double @llvm.fmuladd.f64(double %1553, double %1561, double %1551)
  %1563 = fmul double %1549, %1562
  store double %1563, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %1564 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %1565 = load double, ptr %1564, align 8, !tbaa !34
  %1566 = load double, ptr %15, align 8, !tbaa !9
  %1567 = fmul double 2.000000e+00, %1566
  %1568 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1569 = load double, ptr %1568, align 8, !tbaa !14
  %1570 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1571 = load double, ptr %1570, align 8, !tbaa !19
  %1572 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1573 = load double, ptr %1572, align 8, !tbaa !22
  %1574 = fneg double %1573
  %1575 = call double @llvm.fmuladd.f64(double %1569, double %1571, double %1574)
  %1576 = call double @llvm.fmuladd.f64(double %1567, double %1575, double %1565)
  store double %1576, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %1577 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %1578 = load double, ptr %1577, align 8, !tbaa !26
  %1579 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1580 = load double, ptr %1579, align 8, !tbaa !27
  %1581 = fsub double %1578, %1580
  %1582 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %1583 = load double, ptr %1582, align 8, !tbaa !29
  %1584 = fmul double 6.000000e+00, %1583
  %1585 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1586 = load double, ptr %1585, align 8, !tbaa !15
  %1587 = load double, ptr %15, align 8, !tbaa !9
  %1588 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1589 = load double, ptr %1588, align 8, !tbaa !19
  %1590 = fneg double %1587
  %1591 = call double @llvm.fmuladd.f64(double %1590, double %1589, double %1586)
  %1592 = fmul double %1584, %1591
  %1593 = fneg double %1592
  %1594 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1581, double %1593)
  %1595 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1596 = load double, ptr %1595, align 8, !tbaa !25
  %1597 = fmul double 6.000000e+00, %1596
  %1598 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %1599 = load double, ptr %1598, align 8, !tbaa !33
  %1600 = call double @llvm.fmuladd.f64(double %1597, double %1599, double %1594)
  %1601 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1602 = load double, ptr %1601, align 8, !tbaa !14
  %1603 = fmul double 3.000000e+00, %1602
  %1604 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1605 = load double, ptr %1604, align 8, !tbaa !28
  %1606 = load double, ptr %15, align 8, !tbaa !9
  %1607 = fmul double 2.000000e+00, %1606
  %1608 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1609 = load double, ptr %1608, align 8, !tbaa !15
  %1610 = fmul double %1607, %1609
  %1611 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1612 = load double, ptr %1611, align 8, !tbaa !19
  %1613 = fmul double %1610, %1612
  %1614 = fneg double %1613
  %1615 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1605, double %1614)
  %1616 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1617 = load double, ptr %1616, align 8, !tbaa !25
  %1618 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1619 = load double, ptr %1618, align 8, !tbaa !16
  %1620 = call double @llvm.fmuladd.f64(double %1617, double %1619, double %1615)
  %1621 = call double @llvm.fmuladd.f64(double %1603, double %1620, double %1600)
  %1622 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1623 = load double, ptr %1622, align 8, !tbaa !32
  %1624 = fmul double 6.000000e+00, %1623
  %1625 = load double, ptr %15, align 8, !tbaa !9
  %1626 = fmul double %1624, %1625
  %1627 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1628 = load double, ptr %1627, align 8, !tbaa !22
  %1629 = call double @llvm.fmuladd.f64(double %1626, double %1628, double %1621)
  %1630 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %1629)
  %1631 = load double, ptr %50, align 8, !tbaa !9
  %1632 = fmul double 1.800000e+01, %1631
  %1633 = load double, ptr %50, align 8, !tbaa !9
  %1634 = fmul double %1632, %1633
  %1635 = load double, ptr %50, align 8, !tbaa !9
  %1636 = fmul double %1634, %1635
  %1637 = fneg double %1636
  %1638 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %1630, double %1637)
  %1639 = call double @sqrt(double noundef %1638) #7
  %1640 = load double, ptr %49, align 8, !tbaa !9
  %1641 = fdiv double %1639, %1640
  %1642 = load double, ptr %15, align 8, !tbaa !9
  %1643 = call noundef double @_ZSt3absd(double noundef %1642)
  %1644 = fmul double %1641, %1643
  %1645 = load double, ptr %15, align 8, !tbaa !9
  %1646 = fdiv double %1644, %1645
  store double %1646, ptr %51, align 8, !tbaa !9
  %1647 = load ptr, ptr %10, align 8, !tbaa !5
  %1648 = getelementptr inbounds %"class.ruckig::Profile", ptr %1647, i32 0, i32 0
  %1649 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1648, i64 noundef 0) #7
  store double 0.000000e+00, ptr %1649, align 8, !tbaa !9
  %1650 = load ptr, ptr %10, align 8, !tbaa !5
  %1651 = getelementptr inbounds %"class.ruckig::Profile", ptr %1650, i32 0, i32 0
  %1652 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1651, i64 noundef 1) #7
  store double 0.000000e+00, ptr %1652, align 8, !tbaa !9
  %1653 = load ptr, ptr %10, align 8, !tbaa !5
  %1654 = getelementptr inbounds %"class.ruckig::Profile", ptr %1653, i32 0, i32 0
  %1655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1654, i64 noundef 2) #7
  store double 0.000000e+00, ptr %1655, align 8, !tbaa !9
  %1656 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1657 = load double, ptr %1656, align 8, !tbaa !27
  %1658 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %1659 = load double, ptr %1658, align 8, !tbaa !26
  %1660 = fsub double %1657, %1659
  %1661 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1662 = load double, ptr %1661, align 8, !tbaa !28
  %1663 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %1664 = load double, ptr %1663, align 8, !tbaa !29
  %1665 = fsub double %1662, %1664
  %1666 = fmul double 3.000000e+00, %1665
  %1667 = load double, ptr %15, align 8, !tbaa !9
  %1668 = fmul double %1666, %1667
  %1669 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1670 = load double, ptr %1669, align 8, !tbaa !19
  %1671 = call double @llvm.fmuladd.f64(double %1668, double %1670, double %1660)
  %1672 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1673 = load double, ptr %1672, align 8, !tbaa !32
  %1674 = fmul double 3.000000e+00, %1673
  %1675 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1676 = load double, ptr %1675, align 8, !tbaa !14
  %1677 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1678 = load double, ptr %1677, align 8, !tbaa !15
  %1679 = load double, ptr %15, align 8, !tbaa !9
  %1680 = fmul double 2.000000e+00, %1679
  %1681 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1682 = load double, ptr %1681, align 8, !tbaa !22
  %1683 = fmul double %1680, %1682
  %1684 = call double @llvm.fmuladd.f64(double %1676, double %1678, double %1683)
  %1685 = fneg double %1674
  %1686 = call double @llvm.fmuladd.f64(double %1685, double %1684, double %1671)
  %1687 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1688 = load double, ptr %1687, align 8, !tbaa !25
  %1689 = fmul double 6.000000e+00, %1688
  %1690 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 32
  %1691 = load double, ptr %1690, align 8, !tbaa !24
  %1692 = fneg double %1689
  %1693 = call double @llvm.fmuladd.f64(double %1692, double %1691, double %1686)
  %1694 = load double, ptr %49, align 8, !tbaa !9
  %1695 = fdiv double %1693, %1694
  %1696 = load ptr, ptr %10, align 8, !tbaa !5
  %1697 = getelementptr inbounds %"class.ruckig::Profile", ptr %1696, i32 0, i32 0
  %1698 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1697, i64 noundef 3) #7
  store double %1695, ptr %1698, align 8, !tbaa !9
  %1699 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1700 = load double, ptr %1699, align 8, !tbaa !19
  %1701 = load ptr, ptr %10, align 8, !tbaa !5
  %1702 = getelementptr inbounds %"class.ruckig::Profile", ptr %1701, i32 0, i32 0
  %1703 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1702, i64 noundef 3) #7
  %1704 = load double, ptr %1703, align 8, !tbaa !9
  %1705 = fsub double %1700, %1704
  %1706 = load double, ptr %51, align 8, !tbaa !9
  %1707 = fsub double %1705, %1706
  %1708 = fdiv double %1707, 2.000000e+00
  %1709 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1710 = load double, ptr %1709, align 8, !tbaa !32
  %1711 = load double, ptr %15, align 8, !tbaa !9
  %1712 = fmul double 2.000000e+00, %1711
  %1713 = fdiv double %1710, %1712
  %1714 = fsub double %1708, %1713
  %1715 = load ptr, ptr %10, align 8, !tbaa !5
  %1716 = getelementptr inbounds %"class.ruckig::Profile", ptr %1715, i32 0, i32 0
  %1717 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1716, i64 noundef 4) #7
  store double %1714, ptr %1717, align 8, !tbaa !9
  %1718 = load double, ptr %51, align 8, !tbaa !9
  %1719 = load ptr, ptr %10, align 8, !tbaa !5
  %1720 = getelementptr inbounds %"class.ruckig::Profile", ptr %1719, i32 0, i32 0
  %1721 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1720, i64 noundef 5) #7
  store double %1718, ptr %1721, align 8, !tbaa !9
  %1722 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1723 = load double, ptr %1722, align 8, !tbaa !19
  %1724 = load ptr, ptr %10, align 8, !tbaa !5
  %1725 = getelementptr inbounds %"class.ruckig::Profile", ptr %1724, i32 0, i32 0
  %1726 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1725, i64 noundef 3) #7
  %1727 = load double, ptr %1726, align 8, !tbaa !9
  %1728 = fsub double %1723, %1727
  %1729 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %1730 = load double, ptr %1729, align 8, !tbaa !32
  %1731 = load double, ptr %15, align 8, !tbaa !9
  %1732 = fdiv double %1730, %1731
  %1733 = fadd double %1728, %1732
  %1734 = load double, ptr %51, align 8, !tbaa !9
  %1735 = fsub double %1733, %1734
  %1736 = fdiv double %1735, 2.000000e+00
  %1737 = load ptr, ptr %10, align 8, !tbaa !5
  %1738 = getelementptr inbounds %"class.ruckig::Profile", ptr %1737, i32 0, i32 0
  %1739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1738, i64 noundef 6) #7
  store double %1736, ptr %1739, align 8, !tbaa !9
  %1740 = load ptr, ptr %10, align 8, !tbaa !5
  %1741 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1742 = load double, ptr %1741, align 8, !tbaa !19
  %1743 = load double, ptr %15, align 8, !tbaa !9
  %1744 = load double, ptr %11, align 8, !tbaa !9
  %1745 = load double, ptr %12, align 8, !tbaa !9
  %1746 = load double, ptr %13, align 8, !tbaa !9
  %1747 = load double, ptr %14, align 8, !tbaa !9
  %1748 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1740, double noundef %1742, double noundef %1743, double noundef %1744, double noundef %1745, double noundef %1746, double noundef %1747)
  br i1 %1748, label %1749, label %1750

1749:                                             ; preds = %1547
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %1751

1750:                                             ; preds = %1547
  store i32 0, ptr %18, align 4
  br label %1751

1751:                                             ; preds = %1750, %1749
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  %1752 = load i32, ptr %18, align 4
  switch i32 %1752, label %3970 [
    i32 0, label %1753
    i32 1, label %3968
  ]

1753:                                             ; preds = %1751
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  %1754 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %1755 = load double, ptr %1754, align 8, !tbaa !34
  %1756 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1757 = load double, ptr %1756, align 8, !tbaa !15
  %1758 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1759 = load double, ptr %1758, align 8, !tbaa !14
  %1760 = fadd double %1757, %1759
  %1761 = fmul double 2.000000e+00, %1760
  %1762 = load double, ptr %15, align 8, !tbaa !9
  %1763 = fmul double %1761, %1762
  %1764 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1765 = load double, ptr %1764, align 8, !tbaa !19
  %1766 = call double @llvm.fmuladd.f64(double %1763, double %1765, double %1755)
  %1767 = load double, ptr %15, align 8, !tbaa !9
  %1768 = load double, ptr %15, align 8, !tbaa !9
  %1769 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1770 = load double, ptr %1769, align 8, !tbaa !16
  %1771 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1772 = load double, ptr %1771, align 8, !tbaa !22
  %1773 = fmul double 4.000000e+00, %1772
  %1774 = call double @llvm.fmuladd.f64(double %1768, double %1770, double %1773)
  %1775 = fneg double %1767
  %1776 = call double @llvm.fmuladd.f64(double %1775, double %1774, double %1766)
  store double %1776, ptr %52, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %1777 = load double, ptr %15, align 8, !tbaa !9
  %1778 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1779 = load double, ptr %1778, align 8, !tbaa !16
  %1780 = fmul double %1777, %1779
  %1781 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %1782 = load double, ptr %1781, align 8, !tbaa !33
  %1783 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1784 = load double, ptr %1783, align 8, !tbaa !22
  %1785 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1786 = load double, ptr %1785, align 8, !tbaa !18
  %1787 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1788 = load double, ptr %1787, align 8, !tbaa !19
  %1789 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %1790 = load double, ptr %1789, align 8, !tbaa !11
  %1791 = fmul double %1788, %1790
  %1792 = fneg double %1791
  %1793 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1786, double %1792)
  %1794 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1795 = load double, ptr %1794, align 8, !tbaa !19
  %1796 = fmul double 3.000000e+00, %1795
  %1797 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %1798 = load double, ptr %1797, align 8, !tbaa !20
  %1799 = call double @llvm.fmuladd.f64(double %1796, double %1798, double %1793)
  %1800 = fmul double %1784, %1799
  %1801 = fneg double %1800
  %1802 = call double @llvm.fmuladd.f64(double %1780, double %1782, double %1801)
  store double %1802, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %1803 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1804 = load double, ptr %1803, align 8, !tbaa !28
  %1805 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1806 = load double, ptr %1805, align 8, !tbaa !15
  %1807 = fmul double 8.000000e+00, %1806
  %1808 = load double, ptr %15, align 8, !tbaa !9
  %1809 = fmul double %1807, %1808
  %1810 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1811 = load double, ptr %1810, align 8, !tbaa !19
  %1812 = fmul double %1809, %1811
  %1813 = fneg double %1812
  %1814 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %1804, double %1813)
  %1815 = load double, ptr %15, align 8, !tbaa !9
  %1816 = fmul double 2.000000e+00, %1815
  %1817 = load double, ptr %15, align 8, !tbaa !9
  %1818 = fmul double 2.000000e+00, %1817
  %1819 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1820 = load double, ptr %1819, align 8, !tbaa !16
  %1821 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1822 = load double, ptr %1821, align 8, !tbaa !22
  %1823 = fneg double %1822
  %1824 = call double @llvm.fmuladd.f64(double %1818, double %1820, double %1823)
  %1825 = call double @llvm.fmuladd.f64(double %1816, double %1824, double %1814)
  store double %1825, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %1826 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1827 = load double, ptr %1826, align 8, !tbaa !25
  %1828 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 13
  %1829 = load double, ptr %1828, align 8, !tbaa !35
  %1830 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %1831 = load double, ptr %1830, align 8, !tbaa !23
  %1832 = fmul double 2.000000e+00, %1831
  %1833 = fneg double %1832
  %1834 = call double @llvm.fmuladd.f64(double %1827, double %1829, double %1833)
  %1835 = load double, ptr %15, align 8, !tbaa !9
  %1836 = fmul double 8.000000e+00, %1835
  %1837 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1838 = load double, ptr %1837, align 8, !tbaa !19
  %1839 = fmul double %1836, %1838
  %1840 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1841 = load double, ptr %1840, align 8, !tbaa !18
  %1842 = fneg double %1841
  %1843 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1844 = load double, ptr %1843, align 8, !tbaa !19
  %1845 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %1846 = load double, ptr %1845, align 8, !tbaa !20
  %1847 = call double @llvm.fmuladd.f64(double %1844, double %1846, double %1842)
  %1848 = call double @llvm.fmuladd.f64(double %1839, double %1847, double %1834)
  store double %1848, ptr %55, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %1849 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %1850 = load double, ptr %1849, align 8, !tbaa !31
  %1851 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1852 = load double, ptr %1851, align 8, !tbaa !27
  %1853 = fmul double 8.000000e+00, %1852
  %1854 = load double, ptr %15, align 8, !tbaa !9
  %1855 = fmul double %1853, %1854
  %1856 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1857 = load double, ptr %1856, align 8, !tbaa !19
  %1858 = fmul double %1855, %1857
  %1859 = fneg double %1858
  %1860 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %1850, double %1859)
  %1861 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1862 = load double, ptr %1861, align 8, !tbaa !28
  %1863 = fmul double 1.200000e+01, %1862
  %1864 = load double, ptr %15, align 8, !tbaa !9
  %1865 = fmul double %1863, %1864
  %1866 = load double, ptr %15, align 8, !tbaa !9
  %1867 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1868 = load double, ptr %1867, align 8, !tbaa !16
  %1869 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1870 = load double, ptr %1869, align 8, !tbaa !22
  %1871 = call double @llvm.fmuladd.f64(double %1866, double %1868, double %1870)
  %1872 = fneg double %1865
  %1873 = call double @llvm.fmuladd.f64(double %1872, double %1871, double %1860)
  %1874 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1875 = load double, ptr %1874, align 8, !tbaa !15
  %1876 = fmul double 2.400000e+01, %1875
  %1877 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1878 = load double, ptr %1877, align 8, !tbaa !25
  %1879 = fmul double %1876, %1878
  %1880 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1881 = load double, ptr %1880, align 8, !tbaa !18
  %1882 = load double, ptr %15, align 8, !tbaa !9
  %1883 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %1884 = load double, ptr %1883, align 8, !tbaa !21
  %1885 = fmul double %1882, %1884
  %1886 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1881, double %1885)
  %1887 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1888 = load double, ptr %1887, align 8, !tbaa !19
  %1889 = fmul double 2.000000e+00, %1888
  %1890 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %1891 = load double, ptr %1890, align 8, !tbaa !20
  %1892 = call double @llvm.fmuladd.f64(double %1889, double %1891, double %1886)
  %1893 = call double @llvm.fmuladd.f64(double %1879, double %1892, double %1873)
  %1894 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1895 = load double, ptr %1894, align 8, !tbaa !25
  %1896 = fmul double 6.000000e+00, %1895
  %1897 = load double, ptr %55, align 8, !tbaa !9
  %1898 = fneg double %1896
  %1899 = call double @llvm.fmuladd.f64(double %1898, double %1897, double %1893)
  store double %1899, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %1900 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %1901 = load double, ptr %1900, align 8, !tbaa !23
  %1902 = fneg double %1901
  %1903 = load double, ptr %15, align 8, !tbaa !9
  %1904 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1905 = load double, ptr %1904, align 8, !tbaa !19
  %1906 = fmul double %1903, %1905
  %1907 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1908 = load double, ptr %1907, align 8, !tbaa !18
  %1909 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1910 = load double, ptr %1909, align 8, !tbaa !19
  %1911 = fmul double 3.000000e+00, %1910
  %1912 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %1913 = load double, ptr %1912, align 8, !tbaa !11
  %1914 = fmul double %1911, %1913
  %1915 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1908, double %1914)
  %1916 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1917 = load double, ptr %1916, align 8, !tbaa !19
  %1918 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %1919 = load double, ptr %1918, align 8, !tbaa !20
  %1920 = fneg double %1917
  %1921 = call double @llvm.fmuladd.f64(double %1920, double %1919, double %1915)
  %1922 = call double @llvm.fmuladd.f64(double %1906, double %1921, double %1902)
  %1923 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1924 = load double, ptr %1923, align 8, !tbaa !15
  %1925 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 32
  %1926 = load double, ptr %1925, align 8, !tbaa !24
  %1927 = fneg double %1924
  %1928 = call double @llvm.fmuladd.f64(double %1927, double %1926, double %1922)
  store double %1928, ptr %57, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #7
  %1929 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %1930 = load double, ptr %1929, align 8, !tbaa !26
  %1931 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %1932 = load double, ptr %1931, align 8, !tbaa !27
  %1933 = fsub double %1930, %1932
  %1934 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %1935 = load double, ptr %1934, align 8, !tbaa !29
  %1936 = fmul double 1.200000e+01, %1935
  %1937 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1938 = load double, ptr %1937, align 8, !tbaa !15
  %1939 = load double, ptr %15, align 8, !tbaa !9
  %1940 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1941 = load double, ptr %1940, align 8, !tbaa !19
  %1942 = fneg double %1939
  %1943 = call double @llvm.fmuladd.f64(double %1942, double %1941, double %1938)
  %1944 = fmul double %1936, %1943
  %1945 = fneg double %1944
  %1946 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %1933, double %1945)
  %1947 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %1948 = load double, ptr %1947, align 8, !tbaa !14
  %1949 = fmul double 6.000000e+00, %1948
  %1950 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %1951 = load double, ptr %1950, align 8, !tbaa !28
  %1952 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1953 = load double, ptr %1952, align 8, !tbaa !15
  %1954 = fmul double 2.000000e+00, %1953
  %1955 = load double, ptr %15, align 8, !tbaa !9
  %1956 = fmul double %1954, %1955
  %1957 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1958 = load double, ptr %1957, align 8, !tbaa !19
  %1959 = fmul double %1956, %1958
  %1960 = fneg double %1959
  %1961 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1951, double %1960)
  %1962 = load double, ptr %15, align 8, !tbaa !9
  %1963 = load double, ptr %15, align 8, !tbaa !9
  %1964 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1965 = load double, ptr %1964, align 8, !tbaa !16
  %1966 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1967 = load double, ptr %1966, align 8, !tbaa !22
  %1968 = fmul double 2.000000e+00, %1967
  %1969 = fneg double %1968
  %1970 = call double @llvm.fmuladd.f64(double %1963, double %1965, double %1969)
  %1971 = call double @llvm.fmuladd.f64(double %1962, double %1970, double %1961)
  %1972 = call double @llvm.fmuladd.f64(double %1949, double %1971, double %1946)
  %1973 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %1974 = load double, ptr %1973, align 8, !tbaa !15
  %1975 = fmul double 6.000000e+00, %1974
  %1976 = load double, ptr %15, align 8, !tbaa !9
  %1977 = fmul double %1975, %1976
  %1978 = load double, ptr %15, align 8, !tbaa !9
  %1979 = fmul double 3.000000e+00, %1978
  %1980 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %1981 = load double, ptr %1980, align 8, !tbaa !16
  %1982 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %1983 = load double, ptr %1982, align 8, !tbaa !22
  %1984 = fmul double 2.000000e+00, %1983
  %1985 = call double @llvm.fmuladd.f64(double %1979, double %1981, double %1984)
  %1986 = call double @llvm.fmuladd.f64(double %1977, double %1985, double %1972)
  %1987 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %1988 = load double, ptr %1987, align 8, !tbaa !25
  %1989 = fmul double 6.000000e+00, %1988
  %1990 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %1991 = load double, ptr %1990, align 8, !tbaa !18
  %1992 = load double, ptr %15, align 8, !tbaa !9
  %1993 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %1994 = load double, ptr %1993, align 8, !tbaa !21
  %1995 = fmul double %1992, %1994
  %1996 = call double @llvm.fmuladd.f64(double -4.000000e+00, double %1991, double %1995)
  %1997 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %1998 = load double, ptr %1997, align 8, !tbaa !19
  %1999 = fmul double 2.000000e+00, %1998
  %2000 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2001 = load double, ptr %2000, align 8, !tbaa !11
  %2002 = fneg double %1999
  %2003 = call double @llvm.fmuladd.f64(double %2002, double %2001, double %1996)
  %2004 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2005 = load double, ptr %2004, align 8, !tbaa !19
  %2006 = fmul double 6.000000e+00, %2005
  %2007 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2008 = load double, ptr %2007, align 8, !tbaa !20
  %2009 = call double @llvm.fmuladd.f64(double %2006, double %2008, double %2003)
  %2010 = fneg double %1989
  %2011 = call double @llvm.fmuladd.f64(double %2010, double %2009, double %1986)
  %2012 = fneg double %2011
  %2013 = load double, ptr %15, align 8, !tbaa !9
  %2014 = fmul double 3.000000e+00, %2013
  %2015 = load double, ptr %52, align 8, !tbaa !9
  %2016 = fmul double %2014, %2015
  %2017 = fdiv double %2012, %2016
  %2018 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %58, i64 noundef 0) #7
  store double %2017, ptr %2018, align 8, !tbaa !9
  %2019 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %2020 = load double, ptr %2019, align 8, !tbaa !30
  %2021 = fneg double %2020
  %2022 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %2023 = load double, ptr %2022, align 8, !tbaa !31
  %2024 = fsub double %2021, %2023
  %2025 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %2026 = load double, ptr %2025, align 8, !tbaa !26
  %2027 = fmul double 4.000000e+00, %2026
  %2028 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2029 = load double, ptr %2028, align 8, !tbaa !15
  %2030 = load double, ptr %15, align 8, !tbaa !9
  %2031 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2032 = load double, ptr %2031, align 8, !tbaa !19
  %2033 = fneg double %2030
  %2034 = call double @llvm.fmuladd.f64(double %2033, double %2032, double %2029)
  %2035 = call double @llvm.fmuladd.f64(double %2027, double %2034, double %2024)
  %2036 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %2037 = load double, ptr %2036, align 8, !tbaa !29
  %2038 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2039 = load double, ptr %2038, align 8, !tbaa !28
  %2040 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2041 = load double, ptr %2040, align 8, !tbaa !15
  %2042 = fmul double 8.000000e+00, %2041
  %2043 = load double, ptr %15, align 8, !tbaa !9
  %2044 = fmul double %2042, %2043
  %2045 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2046 = load double, ptr %2045, align 8, !tbaa !19
  %2047 = fmul double %2044, %2046
  %2048 = call double @llvm.fmuladd.f64(double -6.000000e+00, double %2039, double %2047)
  %2049 = load double, ptr %15, align 8, !tbaa !9
  %2050 = fmul double 4.000000e+00, %2049
  %2051 = load double, ptr %15, align 8, !tbaa !9
  %2052 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2053 = load double, ptr %2052, align 8, !tbaa !16
  %2054 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2055 = load double, ptr %2054, align 8, !tbaa !22
  %2056 = fneg double %2055
  %2057 = call double @llvm.fmuladd.f64(double %2051, double %2053, double %2056)
  %2058 = fneg double %2050
  %2059 = call double @llvm.fmuladd.f64(double %2058, double %2057, double %2048)
  %2060 = call double @llvm.fmuladd.f64(double %2037, double %2059, double %2035)
  %2061 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2062 = load double, ptr %2061, align 8, !tbaa !28
  %2063 = fmul double 2.000000e+00, %2062
  %2064 = load double, ptr %15, align 8, !tbaa !9
  %2065 = fmul double %2063, %2064
  %2066 = load double, ptr %15, align 8, !tbaa !9
  %2067 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2068 = load double, ptr %2067, align 8, !tbaa !16
  %2069 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2070 = load double, ptr %2069, align 8, !tbaa !22
  %2071 = fmul double 2.000000e+00, %2070
  %2072 = call double @llvm.fmuladd.f64(double %2066, double %2068, double %2071)
  %2073 = call double @llvm.fmuladd.f64(double %2065, double %2072, double %2060)
  %2074 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2075 = load double, ptr %2074, align 8, !tbaa !15
  %2076 = fmul double 4.000000e+00, %2075
  %2077 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2078 = load double, ptr %2077, align 8, !tbaa !25
  %2079 = fmul double %2076, %2078
  %2080 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2081 = load double, ptr %2080, align 8, !tbaa !18
  %2082 = load double, ptr %15, align 8, !tbaa !9
  %2083 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %2084 = load double, ptr %2083, align 8, !tbaa !21
  %2085 = fmul double %2082, %2084
  %2086 = call double @llvm.fmuladd.f64(double -3.000000e+00, double %2081, double %2085)
  %2087 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2088 = load double, ptr %2087, align 8, !tbaa !19
  %2089 = fmul double 2.000000e+00, %2088
  %2090 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2091 = load double, ptr %2090, align 8, !tbaa !11
  %2092 = call double @llvm.fmuladd.f64(double %2089, double %2091, double %2086)
  %2093 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2094 = load double, ptr %2093, align 8, !tbaa !19
  %2095 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2096 = load double, ptr %2095, align 8, !tbaa !20
  %2097 = call double @llvm.fmuladd.f64(double %2094, double %2096, double %2092)
  %2098 = fneg double %2079
  %2099 = call double @llvm.fmuladd.f64(double %2098, double %2097, double %2073)
  %2100 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2101 = load double, ptr %2100, align 8, !tbaa !25
  %2102 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2103 = load double, ptr %2102, align 8, !tbaa !25
  %2104 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 13
  %2105 = load double, ptr %2104, align 8, !tbaa !35
  %2106 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %2107 = load double, ptr %2106, align 8, !tbaa !23
  %2108 = fmul double 8.000000e+00, %2107
  %2109 = fneg double %2108
  %2110 = call double @llvm.fmuladd.f64(double %2103, double %2105, double %2109)
  %2111 = load double, ptr %15, align 8, !tbaa !9
  %2112 = fmul double 4.000000e+00, %2111
  %2113 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2114 = load double, ptr %2113, align 8, !tbaa !19
  %2115 = fmul double %2112, %2114
  %2116 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2117 = load double, ptr %2116, align 8, !tbaa !18
  %2118 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2119 = load double, ptr %2118, align 8, !tbaa !19
  %2120 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2121 = load double, ptr %2120, align 8, !tbaa !11
  %2122 = fmul double %2119, %2121
  %2123 = call double @llvm.fmuladd.f64(double -3.000000e+00, double %2117, double %2122)
  %2124 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2125 = load double, ptr %2124, align 8, !tbaa !19
  %2126 = fmul double 2.000000e+00, %2125
  %2127 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2128 = load double, ptr %2127, align 8, !tbaa !20
  %2129 = call double @llvm.fmuladd.f64(double %2126, double %2128, double %2123)
  %2130 = call double @llvm.fmuladd.f64(double %2115, double %2129, double %2110)
  %2131 = call double @llvm.fmuladd.f64(double %2101, double %2130, double %2099)
  %2132 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2133 = load double, ptr %2132, align 8, !tbaa !14
  %2134 = fmul double 2.000000e+00, %2133
  %2135 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2136 = load double, ptr %2135, align 8, !tbaa !27
  %2137 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2138 = load double, ptr %2137, align 8, !tbaa !28
  %2139 = fmul double 2.000000e+00, %2138
  %2140 = load double, ptr %15, align 8, !tbaa !9
  %2141 = fmul double %2139, %2140
  %2142 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2143 = load double, ptr %2142, align 8, !tbaa !19
  %2144 = fmul double %2141, %2143
  %2145 = fneg double %2144
  %2146 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2136, double %2145)
  %2147 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2148 = load double, ptr %2147, align 8, !tbaa !15
  %2149 = load double, ptr %15, align 8, !tbaa !9
  %2150 = fmul double %2148, %2149
  %2151 = load double, ptr %15, align 8, !tbaa !9
  %2152 = fmul double -3.000000e+00, %2151
  %2153 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2154 = load double, ptr %2153, align 8, !tbaa !16
  %2155 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2156 = load double, ptr %2155, align 8, !tbaa !22
  %2157 = fmul double 4.000000e+00, %2156
  %2158 = fneg double %2157
  %2159 = call double @llvm.fmuladd.f64(double %2152, double %2154, double %2158)
  %2160 = call double @llvm.fmuladd.f64(double %2150, double %2159, double %2146)
  %2161 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2162 = load double, ptr %2161, align 8, !tbaa !25
  %2163 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2164 = load double, ptr %2163, align 8, !tbaa !18
  %2165 = load double, ptr %15, align 8, !tbaa !9
  %2166 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %2167 = load double, ptr %2166, align 8, !tbaa !21
  %2168 = fmul double %2165, %2167
  %2169 = call double @llvm.fmuladd.f64(double -6.000000e+00, double %2164, double %2168)
  %2170 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2171 = load double, ptr %2170, align 8, !tbaa !19
  %2172 = fmul double 4.000000e+00, %2171
  %2173 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2174 = load double, ptr %2173, align 8, !tbaa !11
  %2175 = fneg double %2172
  %2176 = call double @llvm.fmuladd.f64(double %2175, double %2174, double %2169)
  %2177 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2178 = load double, ptr %2177, align 8, !tbaa !19
  %2179 = fmul double 1.000000e+01, %2178
  %2180 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2181 = load double, ptr %2180, align 8, !tbaa !20
  %2182 = call double @llvm.fmuladd.f64(double %2179, double %2181, double %2176)
  %2183 = call double @llvm.fmuladd.f64(double %2162, double %2182, double %2160)
  %2184 = call double @llvm.fmuladd.f64(double %2134, double %2183, double %2131)
  %2185 = fneg double %2184
  %2186 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2187 = load double, ptr %2186, align 8, !tbaa !25
  %2188 = load double, ptr %52, align 8, !tbaa !9
  %2189 = fmul double %2187, %2188
  %2190 = fdiv double %2185, %2189
  %2191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %58, i64 noundef 1) #7
  store double %2190, ptr %2191, align 8, !tbaa !9
  %2192 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 23
  %2193 = load double, ptr %2192, align 8, !tbaa !36
  %2194 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 28
  %2195 = load double, ptr %2194, align 8, !tbaa !37
  %2196 = fsub double %2193, %2195
  %2197 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %2198 = load double, ptr %2197, align 8, !tbaa !31
  %2199 = load double, ptr %15, align 8, !tbaa !9
  %2200 = fmul double %2198, %2199
  %2201 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2202 = load double, ptr %2201, align 8, !tbaa !19
  %2203 = call double @llvm.fmuladd.f64(double %2200, double %2202, double %2196)
  %2204 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %2205 = load double, ptr %2204, align 8, !tbaa !30
  %2206 = fmul double 5.000000e+00, %2205
  %2207 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2208 = load double, ptr %2207, align 8, !tbaa !15
  %2209 = load double, ptr %15, align 8, !tbaa !9
  %2210 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2211 = load double, ptr %2210, align 8, !tbaa !19
  %2212 = fneg double %2209
  %2213 = call double @llvm.fmuladd.f64(double %2212, double %2211, double %2208)
  %2214 = fneg double %2206
  %2215 = call double @llvm.fmuladd.f64(double %2214, double %2213, double %2203)
  %2216 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %2217 = load double, ptr %2216, align 8, !tbaa !26
  %2218 = fmul double 2.000000e+00, %2217
  %2219 = load double, ptr %54, align 8, !tbaa !9
  %2220 = call double @llvm.fmuladd.f64(double %2218, double %2219, double %2215)
  %2221 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2222 = load double, ptr %2221, align 8, !tbaa !27
  %2223 = fmul double 4.000000e+00, %2222
  %2224 = load double, ptr %15, align 8, !tbaa !9
  %2225 = fmul double %2223, %2224
  %2226 = load double, ptr %15, align 8, !tbaa !9
  %2227 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2228 = load double, ptr %2227, align 8, !tbaa !16
  %2229 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2230 = load double, ptr %2229, align 8, !tbaa !22
  %2231 = call double @llvm.fmuladd.f64(double %2226, double %2228, double %2230)
  %2232 = call double @llvm.fmuladd.f64(double %2225, double %2231, double %2220)
  %2233 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2234 = load double, ptr %2233, align 8, !tbaa !25
  %2235 = fmul double 1.200000e+01, %2234
  %2236 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2237 = load double, ptr %2236, align 8, !tbaa !15
  %2238 = fmul double %2235, %2237
  %2239 = load double, ptr %57, align 8, !tbaa !9
  %2240 = call double @llvm.fmuladd.f64(double %2238, double %2239, double %2232)
  %2241 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %2242 = load double, ptr %2241, align 8, !tbaa !29
  %2243 = fmul double 2.000000e+00, %2242
  %2244 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2245 = load double, ptr %2244, align 8, !tbaa !27
  %2246 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2247 = load double, ptr %2246, align 8, !tbaa !28
  %2248 = fmul double 9.000000e+00, %2247
  %2249 = load double, ptr %15, align 8, !tbaa !9
  %2250 = fmul double %2248, %2249
  %2251 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2252 = load double, ptr %2251, align 8, !tbaa !19
  %2253 = fmul double %2250, %2252
  %2254 = fneg double %2253
  %2255 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %2245, double %2254)
  %2256 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2257 = load double, ptr %2256, align 8, !tbaa !15
  %2258 = fmul double 6.000000e+00, %2257
  %2259 = load double, ptr %15, align 8, !tbaa !9
  %2260 = fmul double %2258, %2259
  %2261 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2262 = load double, ptr %2261, align 8, !tbaa !22
  %2263 = fneg double %2260
  %2264 = call double @llvm.fmuladd.f64(double %2263, double %2262, double %2255)
  %2265 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2266 = load double, ptr %2265, align 8, !tbaa !25
  %2267 = fmul double 6.000000e+00, %2266
  %2268 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2269 = load double, ptr %2268, align 8, !tbaa !18
  %2270 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2271 = load double, ptr %2270, align 8, !tbaa !19
  %2272 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2273 = load double, ptr %2272, align 8, !tbaa !11
  %2274 = fmul double %2271, %2273
  %2275 = fneg double %2274
  %2276 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2269, double %2275)
  %2277 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2278 = load double, ptr %2277, align 8, !tbaa !19
  %2279 = fmul double 3.000000e+00, %2278
  %2280 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2281 = load double, ptr %2280, align 8, !tbaa !20
  %2282 = call double @llvm.fmuladd.f64(double %2279, double %2281, double %2276)
  %2283 = call double @llvm.fmuladd.f64(double %2267, double %2282, double %2264)
  %2284 = fneg double %2243
  %2285 = call double @llvm.fmuladd.f64(double %2284, double %2283, double %2240)
  %2286 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2287 = load double, ptr %2286, align 8, !tbaa !25
  %2288 = fmul double 1.200000e+01, %2287
  %2289 = load double, ptr %15, align 8, !tbaa !9
  %2290 = fmul double %2288, %2289
  %2291 = load double, ptr %53, align 8, !tbaa !9
  %2292 = fneg double %2290
  %2293 = call double @llvm.fmuladd.f64(double %2292, double %2291, double %2285)
  %2294 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2295 = load double, ptr %2294, align 8, !tbaa !14
  %2296 = load double, ptr %56, align 8, !tbaa !9
  %2297 = call double @llvm.fmuladd.f64(double %2295, double %2296, double %2293)
  %2298 = fneg double %2297
  %2299 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2300 = load double, ptr %2299, align 8, !tbaa !25
  %2301 = fmul double 3.000000e+00, %2300
  %2302 = load double, ptr %15, align 8, !tbaa !9
  %2303 = fmul double %2301, %2302
  %2304 = load double, ptr %52, align 8, !tbaa !9
  %2305 = fmul double %2303, %2304
  %2306 = fdiv double %2298, %2305
  %2307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %58, i64 noundef 2) #7
  store double %2306, ptr %2307, align 8, !tbaa !9
  %2308 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 24
  %2309 = load double, ptr %2308, align 8, !tbaa !38
  %2310 = fneg double %2309
  %2311 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 29
  %2312 = load double, ptr %2311, align 8, !tbaa !39
  %2313 = fsub double %2310, %2312
  %2314 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 23
  %2315 = load double, ptr %2314, align 8, !tbaa !36
  %2316 = fmul double 6.000000e+00, %2315
  %2317 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2318 = load double, ptr %2317, align 8, !tbaa !15
  %2319 = load double, ptr %15, align 8, !tbaa !9
  %2320 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2321 = load double, ptr %2320, align 8, !tbaa !19
  %2322 = fneg double %2319
  %2323 = call double @llvm.fmuladd.f64(double %2322, double %2321, double %2318)
  %2324 = call double @llvm.fmuladd.f64(double %2316, double %2323, double %2313)
  %2325 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2326 = load double, ptr %2325, align 8, !tbaa !27
  %2327 = fmul double 4.800000e+01, %2326
  %2328 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2329 = load double, ptr %2328, align 8, !tbaa !25
  %2330 = fmul double %2327, %2329
  %2331 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %2332 = load double, ptr %2331, align 8, !tbaa !33
  %2333 = fneg double %2330
  %2334 = call double @llvm.fmuladd.f64(double %2333, double %2332, double %2324)
  %2335 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2336 = load double, ptr %2335, align 8, !tbaa !25
  %2337 = fmul double 7.200000e+01, %2336
  %2338 = load double, ptr %15, align 8, !tbaa !9
  %2339 = fmul double %2337, %2338
  %2340 = load double, ptr %15, align 8, !tbaa !9
  %2341 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %2342 = load double, ptr %2341, align 8, !tbaa !33
  %2343 = fmul double %2340, %2342
  %2344 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %2345 = load double, ptr %2344, align 8, !tbaa !33
  %2346 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %2347 = load double, ptr %2346, align 8, !tbaa !23
  %2348 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2349 = load double, ptr %2348, align 8, !tbaa !22
  %2350 = fmul double %2347, %2349
  %2351 = call double @llvm.fmuladd.f64(double %2343, double %2345, double %2350)
  %2352 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2353 = load double, ptr %2352, align 8, !tbaa !15
  %2354 = fmul double 2.000000e+00, %2353
  %2355 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %2356 = load double, ptr %2355, align 8, !tbaa !33
  %2357 = fmul double %2354, %2356
  %2358 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2359 = load double, ptr %2358, align 8, !tbaa !22
  %2360 = call double @llvm.fmuladd.f64(double %2357, double %2359, double %2351)
  %2361 = call double @llvm.fmuladd.f64(double %2339, double %2360, double %2334)
  %2362 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %2363 = load double, ptr %2362, align 8, !tbaa !30
  %2364 = fmul double 3.000000e+00, %2363
  %2365 = load double, ptr %54, align 8, !tbaa !9
  %2366 = fneg double %2364
  %2367 = call double @llvm.fmuladd.f64(double %2366, double %2365, double %2361)
  %2368 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2369 = load double, ptr %2368, align 8, !tbaa !28
  %2370 = fmul double 3.600000e+01, %2369
  %2371 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2372 = load double, ptr %2371, align 8, !tbaa !25
  %2373 = fmul double %2370, %2372
  %2374 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %2375 = load double, ptr %2374, align 8, !tbaa !23
  %2376 = fneg double %2373
  %2377 = call double @llvm.fmuladd.f64(double %2376, double %2375, double %2367)
  %2378 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %2379 = load double, ptr %2378, align 8, !tbaa !31
  %2380 = fmul double 6.000000e+00, %2379
  %2381 = load double, ptr %15, align 8, !tbaa !9
  %2382 = fmul double %2380, %2381
  %2383 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2384 = load double, ptr %2383, align 8, !tbaa !22
  %2385 = call double @llvm.fmuladd.f64(double %2382, double %2384, double %2377)
  %2386 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %2387 = load double, ptr %2386, align 8, !tbaa !26
  %2388 = fmul double 4.000000e+00, %2387
  %2389 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2390 = load double, ptr %2389, align 8, !tbaa !27
  %2391 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2392 = load double, ptr %2391, align 8, !tbaa !28
  %2393 = fmul double 9.000000e+00, %2392
  %2394 = load double, ptr %15, align 8, !tbaa !9
  %2395 = fmul double %2393, %2394
  %2396 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2397 = load double, ptr %2396, align 8, !tbaa !19
  %2398 = fmul double %2395, %2397
  %2399 = fneg double %2398
  %2400 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %2390, double %2399)
  %2401 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2402 = load double, ptr %2401, align 8, !tbaa !15
  %2403 = fmul double 6.000000e+00, %2402
  %2404 = load double, ptr %15, align 8, !tbaa !9
  %2405 = fmul double %2403, %2404
  %2406 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2407 = load double, ptr %2406, align 8, !tbaa !22
  %2408 = fneg double %2405
  %2409 = call double @llvm.fmuladd.f64(double %2408, double %2407, double %2400)
  %2410 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2411 = load double, ptr %2410, align 8, !tbaa !25
  %2412 = fmul double 6.000000e+00, %2411
  %2413 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2414 = load double, ptr %2413, align 8, !tbaa !18
  %2415 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2416 = load double, ptr %2415, align 8, !tbaa !19
  %2417 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2418 = load double, ptr %2417, align 8, !tbaa !11
  %2419 = fmul double %2416, %2418
  %2420 = fneg double %2419
  %2421 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2414, double %2420)
  %2422 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2423 = load double, ptr %2422, align 8, !tbaa !19
  %2424 = fmul double 3.000000e+00, %2423
  %2425 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2426 = load double, ptr %2425, align 8, !tbaa !20
  %2427 = call double @llvm.fmuladd.f64(double %2424, double %2426, double %2421)
  %2428 = call double @llvm.fmuladd.f64(double %2412, double %2427, double %2409)
  %2429 = call double @llvm.fmuladd.f64(double %2388, double %2428, double %2385)
  %2430 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %2431 = load double, ptr %2430, align 8, !tbaa !29
  %2432 = fmul double 3.000000e+00, %2431
  %2433 = load double, ptr %56, align 8, !tbaa !9
  %2434 = fneg double %2432
  %2435 = call double @llvm.fmuladd.f64(double %2434, double %2433, double %2429)
  %2436 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2437 = load double, ptr %2436, align 8, !tbaa !14
  %2438 = fmul double 6.000000e+00, %2437
  %2439 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 28
  %2440 = load double, ptr %2439, align 8, !tbaa !37
  %2441 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %2442 = load double, ptr %2441, align 8, !tbaa !31
  %2443 = load double, ptr %15, align 8, !tbaa !9
  %2444 = fmul double %2442, %2443
  %2445 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2446 = load double, ptr %2445, align 8, !tbaa !19
  %2447 = fneg double %2444
  %2448 = call double @llvm.fmuladd.f64(double %2447, double %2446, double %2440)
  %2449 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2450 = load double, ptr %2449, align 8, !tbaa !27
  %2451 = fmul double 4.000000e+00, %2450
  %2452 = load double, ptr %15, align 8, !tbaa !9
  %2453 = fmul double %2451, %2452
  %2454 = load double, ptr %15, align 8, !tbaa !9
  %2455 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2456 = load double, ptr %2455, align 8, !tbaa !16
  %2457 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2458 = load double, ptr %2457, align 8, !tbaa !22
  %2459 = call double @llvm.fmuladd.f64(double %2454, double %2456, double %2458)
  %2460 = fneg double %2453
  %2461 = call double @llvm.fmuladd.f64(double %2460, double %2459, double %2448)
  %2462 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2463 = load double, ptr %2462, align 8, !tbaa !25
  %2464 = fmul double 1.200000e+01, %2463
  %2465 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2466 = load double, ptr %2465, align 8, !tbaa !15
  %2467 = fneg double %2466
  %2468 = load double, ptr %57, align 8, !tbaa !9
  %2469 = load double, ptr %15, align 8, !tbaa !9
  %2470 = load double, ptr %53, align 8, !tbaa !9
  %2471 = fmul double %2469, %2470
  %2472 = call double @llvm.fmuladd.f64(double %2467, double %2468, double %2471)
  %2473 = call double @llvm.fmuladd.f64(double %2464, double %2472, double %2461)
  %2474 = call double @llvm.fmuladd.f64(double %2438, double %2473, double %2435)
  %2475 = fneg double %2474
  %2476 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2477 = load double, ptr %2476, align 8, !tbaa !25
  %2478 = fmul double 1.800000e+01, %2477
  %2479 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2480 = load double, ptr %2479, align 8, !tbaa !25
  %2481 = fmul double %2478, %2480
  %2482 = load double, ptr %52, align 8, !tbaa !9
  %2483 = fmul double %2481, %2482
  %2484 = fdiv double %2475, %2483
  %2485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %58, i64 noundef 3) #7
  store double %2484, ptr %2485, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  %2486 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2487 = load double, ptr %2486, align 8, !tbaa !14
  %2488 = load double, ptr %14, align 8, !tbaa !9
  %2489 = fsub double %2487, %2488
  %2490 = load double, ptr %15, align 8, !tbaa !9
  %2491 = fdiv double %2489, %2490
  store double %2491, ptr %59, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %60) #7
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind writable sret(%"class.ruckig::roots::PositiveSet") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %58)
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  store ptr %60, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  %2492 = load ptr, ptr %61, align 8, !tbaa !5
  %2493 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %2492)
  store ptr %2493, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  %2494 = load ptr, ptr %61, align 8, !tbaa !5
  %2495 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %2494)
  store ptr %2495, ptr %63, align 8, !tbaa !5
  br label %2496

2496:                                             ; preds = %2810, %1753
  %2497 = load ptr, ptr %62, align 8, !tbaa !5
  %2498 = load ptr, ptr %63, align 8, !tbaa !5
  %2499 = icmp ne ptr %2497, %2498
  br i1 %2499, label %2501, label %2500

2500:                                             ; preds = %2496
  store i32 6, ptr %18, align 4
  br label %2813

2501:                                             ; preds = %2496
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %2502 = load ptr, ptr %62, align 8, !tbaa !5
  %2503 = load double, ptr %2502, align 8, !tbaa !9
  store double %2503, ptr %64, align 8, !tbaa !9
  %2504 = load double, ptr %64, align 8, !tbaa !9
  %2505 = load double, ptr %59, align 8, !tbaa !9
  %2506 = fcmp ogt double %2504, %2505
  br i1 %2506, label %2507, label %2508

2507:                                             ; preds = %2501
  store i32 7, ptr %18, align 4
  br label %2807

2508:                                             ; preds = %2501
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %2509 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %2510 = load double, ptr %2509, align 8, !tbaa !34
  %2511 = fdiv double %2510, 2.000000e+00
  %2512 = load double, ptr %15, align 8, !tbaa !9
  %2513 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2514 = load double, ptr %2513, align 8, !tbaa !15
  %2515 = load double, ptr %64, align 8, !tbaa !9
  %2516 = load double, ptr %15, align 8, !tbaa !9
  %2517 = load double, ptr %64, align 8, !tbaa !9
  %2518 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2519 = load double, ptr %2518, align 8, !tbaa !14
  %2520 = fneg double %2519
  %2521 = call double @llvm.fmuladd.f64(double %2516, double %2517, double %2520)
  %2522 = load double, ptr %64, align 8, !tbaa !9
  %2523 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2524 = load double, ptr %2523, align 8, !tbaa !19
  %2525 = fsub double %2522, %2524
  %2526 = fmul double %2521, %2525
  %2527 = call double @llvm.fmuladd.f64(double %2514, double %2515, double %2526)
  %2528 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2529 = load double, ptr %2528, align 8, !tbaa !22
  %2530 = fsub double %2527, %2529
  %2531 = call double @llvm.fmuladd.f64(double %2512, double %2530, double %2511)
  store double %2531, ptr %65, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %2532 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %2533 = load double, ptr %2532, align 8, !tbaa !32
  %2534 = fneg double %2533
  %2535 = load double, ptr %15, align 8, !tbaa !9
  %2536 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2537 = load double, ptr %2536, align 8, !tbaa !19
  %2538 = load double, ptr %64, align 8, !tbaa !9
  %2539 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2538, double %2537)
  %2540 = call double @llvm.fmuladd.f64(double %2535, double %2539, double %2534)
  store double %2540, ptr %66, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  %2541 = load double, ptr %65, align 8, !tbaa !9
  %2542 = call double @sqrt(double noundef %2541) #7
  store double %2542, ptr %67, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  %2543 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2544 = load double, ptr %2543, align 8, !tbaa !27
  %2545 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %2546 = load double, ptr %2545, align 8, !tbaa !26
  %2547 = fsub double %2544, %2546
  %2548 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2549 = load double, ptr %2548, align 8, !tbaa !15
  %2550 = fmul double 3.000000e+00, %2549
  %2551 = load double, ptr %15, align 8, !tbaa !9
  %2552 = fmul double %2550, %2551
  %2553 = load double, ptr %64, align 8, !tbaa !9
  %2554 = fmul double %2552, %2553
  %2555 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2556 = load double, ptr %2555, align 8, !tbaa !15
  %2557 = load double, ptr %15, align 8, !tbaa !9
  %2558 = load double, ptr %64, align 8, !tbaa !9
  %2559 = call double @llvm.fmuladd.f64(double %2557, double %2558, double %2556)
  %2560 = call double @llvm.fmuladd.f64(double %2554, double %2559, double %2547)
  %2561 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %2562 = load double, ptr %2561, align 8, !tbaa !29
  %2563 = fmul double 3.000000e+00, %2562
  %2564 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2565 = load double, ptr %2564, align 8, !tbaa !15
  %2566 = load double, ptr %15, align 8, !tbaa !9
  %2567 = load double, ptr %64, align 8, !tbaa !9
  %2568 = call double @llvm.fmuladd.f64(double %2566, double %2567, double %2565)
  %2569 = call double @llvm.fmuladd.f64(double %2563, double %2568, double %2560)
  %2570 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2571 = load double, ptr %2570, align 8, !tbaa !14
  %2572 = fmul double 3.000000e+00, %2571
  %2573 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2574 = load double, ptr %2573, align 8, !tbaa !28
  %2575 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2576 = load double, ptr %2575, align 8, !tbaa !15
  %2577 = fmul double 2.000000e+00, %2576
  %2578 = load double, ptr %15, align 8, !tbaa !9
  %2579 = fmul double %2577, %2578
  %2580 = load double, ptr %64, align 8, !tbaa !9
  %2581 = call double @llvm.fmuladd.f64(double %2579, double %2580, double %2574)
  %2582 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2583 = load double, ptr %2582, align 8, !tbaa !25
  %2584 = load double, ptr %64, align 8, !tbaa !9
  %2585 = load double, ptr %64, align 8, !tbaa !9
  %2586 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2587 = load double, ptr %2586, align 8, !tbaa !16
  %2588 = fneg double %2587
  %2589 = call double @llvm.fmuladd.f64(double %2584, double %2585, double %2588)
  %2590 = call double @llvm.fmuladd.f64(double %2583, double %2589, double %2581)
  %2591 = fneg double %2572
  %2592 = call double @llvm.fmuladd.f64(double %2591, double %2590, double %2569)
  %2593 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2594 = load double, ptr %2593, align 8, !tbaa !25
  %2595 = fmul double 3.000000e+00, %2594
  %2596 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2597 = load double, ptr %2596, align 8, !tbaa !18
  %2598 = load double, ptr %15, align 8, !tbaa !9
  %2599 = load double, ptr %64, align 8, !tbaa !9
  %2600 = fmul double %2598, %2599
  %2601 = load double, ptr %64, align 8, !tbaa !9
  %2602 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2603 = load double, ptr %2602, align 8, !tbaa !19
  %2604 = fsub double %2601, %2603
  %2605 = fmul double %2600, %2604
  %2606 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2607 = load double, ptr %2606, align 8, !tbaa !19
  %2608 = fmul double %2605, %2607
  %2609 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2597, double %2608)
  %2610 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2611 = load double, ptr %2610, align 8, !tbaa !19
  %2612 = fmul double 2.000000e+00, %2611
  %2613 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2614 = load double, ptr %2613, align 8, !tbaa !11
  %2615 = call double @llvm.fmuladd.f64(double %2612, double %2614, double %2609)
  %2616 = call double @llvm.fmuladd.f64(double %2595, double %2615, double %2592)
  %2617 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2618 = load double, ptr %2617, align 8, !tbaa !25
  %2619 = fmul double 6.000000e+00, %2618
  %2620 = fdiv double %2616, %2619
  %2621 = load double, ptr %67, align 8, !tbaa !9
  %2622 = load double, ptr %67, align 8, !tbaa !9
  %2623 = fmul double %2621, %2622
  %2624 = load double, ptr %67, align 8, !tbaa !9
  %2625 = fmul double %2623, %2624
  %2626 = load double, ptr %15, align 8, !tbaa !9
  %2627 = load double, ptr %15, align 8, !tbaa !9
  %2628 = call noundef double @_ZSt3absd(double noundef %2627)
  %2629 = fmul double %2626, %2628
  %2630 = fdiv double %2625, %2629
  %2631 = fsub double %2620, %2630
  %2632 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %2633 = load double, ptr %2632, align 8, !tbaa !32
  %2634 = fneg double %2633
  %2635 = load double, ptr %15, align 8, !tbaa !9
  %2636 = load double, ptr %64, align 8, !tbaa !9
  %2637 = fneg double %2635
  %2638 = call double @llvm.fmuladd.f64(double %2637, double %2636, double %2634)
  %2639 = load double, ptr %65, align 8, !tbaa !9
  %2640 = fmul double %2638, %2639
  %2641 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2642 = load double, ptr %2641, align 8, !tbaa !25
  %2643 = fdiv double %2640, %2642
  %2644 = fadd double %2631, %2643
  store double %2644, ptr %68, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  %2645 = load double, ptr %15, align 8, !tbaa !9
  %2646 = fmul double 6.000000e+00, %2645
  %2647 = load double, ptr %66, align 8, !tbaa !9
  %2648 = fmul double %2646, %2647
  %2649 = load double, ptr %67, align 8, !tbaa !9
  %2650 = fmul double %2648, %2649
  %2651 = load double, ptr %15, align 8, !tbaa !9
  %2652 = call noundef double @_ZSt3absd(double noundef %2651)
  %2653 = fdiv double %2650, %2652
  %2654 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %2655 = load double, ptr %2654, align 8, !tbaa !32
  %2656 = fneg double %2655
  %2657 = load double, ptr %15, align 8, !tbaa !9
  %2658 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2659 = load double, ptr %2658, align 8, !tbaa !19
  %2660 = fneg double %2657
  %2661 = call double @llvm.fmuladd.f64(double %2660, double %2659, double %2656)
  %2662 = fmul double 2.000000e+00, %2661
  %2663 = load double, ptr %66, align 8, !tbaa !9
  %2664 = call double @llvm.fmuladd.f64(double %2662, double %2663, double %2653)
  %2665 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %2666 = load double, ptr %2665, align 8, !tbaa !34
  %2667 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2668 = load double, ptr %2667, align 8, !tbaa !15
  %2669 = load double, ptr %15, align 8, !tbaa !9
  %2670 = fmul double %2668, %2669
  %2671 = load double, ptr %64, align 8, !tbaa !9
  %2672 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2673 = load double, ptr %2672, align 8, !tbaa !19
  %2674 = fmul double 2.000000e+00, %2673
  %2675 = fneg double %2674
  %2676 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %2671, double %2675)
  %2677 = fmul double %2670, %2676
  %2678 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %2666, double %2677)
  %2679 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2680 = load double, ptr %2679, align 8, !tbaa !14
  %2681 = fmul double 4.000000e+00, %2680
  %2682 = load double, ptr %15, align 8, !tbaa !9
  %2683 = fmul double %2681, %2682
  %2684 = load double, ptr %64, align 8, !tbaa !9
  %2685 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2686 = load double, ptr %2685, align 8, !tbaa !19
  %2687 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2684, double %2686)
  %2688 = call double @llvm.fmuladd.f64(double %2683, double %2687, double %2678)
  %2689 = load double, ptr %15, align 8, !tbaa !9
  %2690 = fmul double 2.000000e+00, %2689
  %2691 = load double, ptr %15, align 8, !tbaa !9
  %2692 = load double, ptr %64, align 8, !tbaa !9
  %2693 = fmul double %2691, %2692
  %2694 = load double, ptr %64, align 8, !tbaa !9
  %2695 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2696 = load double, ptr %2695, align 8, !tbaa !19
  %2697 = fmul double 2.000000e+00, %2696
  %2698 = fneg double %2697
  %2699 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %2694, double %2698)
  %2700 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2701 = load double, ptr %2700, align 8, !tbaa !22
  %2702 = fneg double %2701
  %2703 = call double @llvm.fmuladd.f64(double %2693, double %2699, double %2702)
  %2704 = call double @llvm.fmuladd.f64(double %2690, double %2703, double %2688)
  %2705 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2704, double %2664)
  %2706 = load double, ptr %15, align 8, !tbaa !9
  %2707 = fmul double 4.000000e+00, %2706
  %2708 = fdiv double %2705, %2707
  store double %2708, ptr %69, align 8, !tbaa !9
  %2709 = load double, ptr %68, align 8, !tbaa !9
  %2710 = load double, ptr %69, align 8, !tbaa !9
  %2711 = fdiv double %2709, %2710
  %2712 = load double, ptr %64, align 8, !tbaa !9
  %2713 = fsub double %2712, %2711
  store double %2713, ptr %64, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  %2714 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %2715 = load double, ptr %2714, align 8, !tbaa !34
  %2716 = load double, ptr %15, align 8, !tbaa !9
  %2717 = fmul double 4.000000e+00, %2716
  %2718 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %2719 = load double, ptr %2718, align 8, !tbaa !32
  %2720 = load double, ptr %64, align 8, !tbaa !9
  %2721 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %2722 = load double, ptr %2721, align 8, !tbaa !14
  %2723 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2724 = load double, ptr %2723, align 8, !tbaa !19
  %2725 = fmul double %2722, %2724
  %2726 = call double @llvm.fmuladd.f64(double %2719, double %2720, double %2725)
  %2727 = load double, ptr %15, align 8, !tbaa !9
  %2728 = load double, ptr %64, align 8, !tbaa !9
  %2729 = fmul double %2727, %2728
  %2730 = load double, ptr %64, align 8, !tbaa !9
  %2731 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2732 = load double, ptr %2731, align 8, !tbaa !19
  %2733 = fsub double %2730, %2732
  %2734 = call double @llvm.fmuladd.f64(double %2729, double %2733, double %2726)
  %2735 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2736 = load double, ptr %2735, align 8, !tbaa !22
  %2737 = fsub double %2734, %2736
  %2738 = fmul double %2717, %2737
  %2739 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2715, double %2738)
  %2740 = call double @sqrt(double noundef %2739) #7
  %2741 = load double, ptr %15, align 8, !tbaa !9
  %2742 = call noundef double @_ZSt3absd(double noundef %2741)
  %2743 = fdiv double %2740, %2742
  store double %2743, ptr %70, align 8, !tbaa !9
  %2744 = load ptr, ptr %10, align 8, !tbaa !5
  %2745 = getelementptr inbounds %"class.ruckig::Profile", ptr %2744, i32 0, i32 0
  %2746 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2745, i64 noundef 0) #7
  store double 0.000000e+00, ptr %2746, align 8, !tbaa !9
  %2747 = load ptr, ptr %10, align 8, !tbaa !5
  %2748 = getelementptr inbounds %"class.ruckig::Profile", ptr %2747, i32 0, i32 0
  %2749 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2748, i64 noundef 1) #7
  store double 0.000000e+00, ptr %2749, align 8, !tbaa !9
  %2750 = load double, ptr %64, align 8, !tbaa !9
  %2751 = load ptr, ptr %10, align 8, !tbaa !5
  %2752 = getelementptr inbounds %"class.ruckig::Profile", ptr %2751, i32 0, i32 0
  %2753 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2752, i64 noundef 2) #7
  store double %2750, ptr %2753, align 8, !tbaa !9
  %2754 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2755 = load double, ptr %2754, align 8, !tbaa !19
  %2756 = load double, ptr %64, align 8, !tbaa !9
  %2757 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2756, double %2755)
  %2758 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %2759 = load double, ptr %2758, align 8, !tbaa !32
  %2760 = load double, ptr %15, align 8, !tbaa !9
  %2761 = fdiv double %2759, %2760
  %2762 = fsub double %2757, %2761
  %2763 = load double, ptr %70, align 8, !tbaa !9
  %2764 = fsub double %2762, %2763
  %2765 = load ptr, ptr %10, align 8, !tbaa !5
  %2766 = getelementptr inbounds %"class.ruckig::Profile", ptr %2765, i32 0, i32 0
  %2767 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2766, i64 noundef 3) #7
  store double %2764, ptr %2767, align 8, !tbaa !9
  %2768 = load double, ptr %70, align 8, !tbaa !9
  %2769 = fdiv double %2768, 2.000000e+00
  %2770 = load ptr, ptr %10, align 8, !tbaa !5
  %2771 = getelementptr inbounds %"class.ruckig::Profile", ptr %2770, i32 0, i32 0
  %2772 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2771, i64 noundef 4) #7
  store double %2769, ptr %2772, align 8, !tbaa !9
  %2773 = load ptr, ptr %10, align 8, !tbaa !5
  %2774 = getelementptr inbounds %"class.ruckig::Profile", ptr %2773, i32 0, i32 0
  %2775 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2774, i64 noundef 5) #7
  store double 0.000000e+00, ptr %2775, align 8, !tbaa !9
  %2776 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2777 = load double, ptr %2776, align 8, !tbaa !19
  %2778 = load double, ptr %64, align 8, !tbaa !9
  %2779 = load ptr, ptr %10, align 8, !tbaa !5
  %2780 = getelementptr inbounds %"class.ruckig::Profile", ptr %2779, i32 0, i32 0
  %2781 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2780, i64 noundef 3) #7
  %2782 = load double, ptr %2781, align 8, !tbaa !9
  %2783 = fadd double %2778, %2782
  %2784 = load ptr, ptr %10, align 8, !tbaa !5
  %2785 = getelementptr inbounds %"class.ruckig::Profile", ptr %2784, i32 0, i32 0
  %2786 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2785, i64 noundef 4) #7
  %2787 = load double, ptr %2786, align 8, !tbaa !9
  %2788 = fadd double %2783, %2787
  %2789 = fsub double %2777, %2788
  %2790 = load ptr, ptr %10, align 8, !tbaa !5
  %2791 = getelementptr inbounds %"class.ruckig::Profile", ptr %2790, i32 0, i32 0
  %2792 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %2791, i64 noundef 6) #7
  store double %2789, ptr %2792, align 8, !tbaa !9
  %2793 = load ptr, ptr %10, align 8, !tbaa !5
  %2794 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2795 = load double, ptr %2794, align 8, !tbaa !19
  %2796 = load double, ptr %15, align 8, !tbaa !9
  %2797 = load double, ptr %11, align 8, !tbaa !9
  %2798 = load double, ptr %12, align 8, !tbaa !9
  %2799 = load double, ptr %13, align 8, !tbaa !9
  %2800 = load double, ptr %14, align 8, !tbaa !9
  %2801 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %2793, double noundef %2795, double noundef %2796, double noundef %2797, double noundef %2798, double noundef %2799, double noundef %2800)
  br i1 %2801, label %2802, label %2803

2802:                                             ; preds = %2508
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %2804

2803:                                             ; preds = %2508
  store i32 0, ptr %18, align 4
  br label %2804

2804:                                             ; preds = %2803, %2802
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  %2805 = load i32, ptr %18, align 4
  switch i32 %2805, label %2807 [
    i32 0, label %2806
  ]

2806:                                             ; preds = %2804
  store i32 0, ptr %18, align 4
  br label %2807

2807:                                             ; preds = %2806, %2804, %2507
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  %2808 = load i32, ptr %18, align 4
  switch i32 %2808, label %2813 [
    i32 0, label %2809
    i32 7, label %2810
  ]

2809:                                             ; preds = %2807
  br label %2810

2810:                                             ; preds = %2809, %2807
  %2811 = load ptr, ptr %62, align 8, !tbaa !5
  %2812 = getelementptr inbounds double, ptr %2811, i32 1
  store ptr %2812, ptr %62, align 8, !tbaa !5
  br label %2496

2813:                                             ; preds = %2807, %2500
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  %2814 = load i32, ptr %18, align 4
  switch i32 %2814, label %2816 [
    i32 6, label %2815
  ]

2815:                                             ; preds = %2813
  store i32 0, ptr %18, align 4
  br label %2816

2816:                                             ; preds = %2815, %2813
  call void @llvm.lifetime.end.p0(i64 40, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  %2817 = load i32, ptr %18, align 4
  switch i32 %2817, label %3970 [
    i32 0, label %2818
    i32 1, label %3968
  ]

2818:                                             ; preds = %2816
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  %2819 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2820 = load double, ptr %2819, align 8, !tbaa !18
  %2821 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2822 = load double, ptr %2821, align 8, !tbaa !19
  %2823 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2824 = load double, ptr %2823, align 8, !tbaa !11
  %2825 = fmul double %2822, %2824
  %2826 = fneg double %2825
  %2827 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2820, double %2826)
  %2828 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2829 = load double, ptr %2828, align 8, !tbaa !19
  %2830 = fmul double 3.000000e+00, %2829
  %2831 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2832 = load double, ptr %2831, align 8, !tbaa !20
  %2833 = call double @llvm.fmuladd.f64(double %2830, double %2832, double %2827)
  store double %2833, ptr %71, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %2834 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %2835 = load double, ptr %2834, align 8, !tbaa !32
  %2836 = fneg double %2835
  %2837 = load double, ptr %15, align 8, !tbaa !9
  %2838 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2839 = load double, ptr %2838, align 8, !tbaa !19
  %2840 = call double @llvm.fmuladd.f64(double %2837, double %2839, double %2836)
  store double %2840, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %2841 = load double, ptr %15, align 8, !tbaa !9
  %2842 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2843 = load double, ptr %2842, align 8, !tbaa !16
  %2844 = fmul double %2841, %2843
  %2845 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %2846 = load double, ptr %2845, align 8, !tbaa !33
  %2847 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2848 = load double, ptr %2847, align 8, !tbaa !22
  %2849 = load double, ptr %71, align 8, !tbaa !9
  %2850 = fmul double %2848, %2849
  %2851 = fneg double %2850
  %2852 = call double @llvm.fmuladd.f64(double %2844, double %2846, double %2851)
  store double %2852, ptr %73, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %2853 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2854 = load double, ptr %2853, align 8, !tbaa !28
  %2855 = load double, ptr %15, align 8, !tbaa !9
  %2856 = fmul double 2.000000e+00, %2855
  %2857 = load double, ptr %15, align 8, !tbaa !9
  %2858 = fmul double 2.000000e+00, %2857
  %2859 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2860 = load double, ptr %2859, align 8, !tbaa !16
  %2861 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2862 = load double, ptr %2861, align 8, !tbaa !22
  %2863 = fneg double %2862
  %2864 = call double @llvm.fmuladd.f64(double %2858, double %2860, double %2863)
  %2865 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2866 = load double, ptr %2865, align 8, !tbaa !15
  %2867 = fmul double 4.000000e+00, %2866
  %2868 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2869 = load double, ptr %2868, align 8, !tbaa !19
  %2870 = fneg double %2867
  %2871 = call double @llvm.fmuladd.f64(double %2870, double %2869, double %2864)
  %2872 = fmul double %2856, %2871
  %2873 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %2854, double %2872)
  store double %2873, ptr %74, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #7
  %2874 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2875 = load double, ptr %2874, align 8, !tbaa !25
  %2876 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 13
  %2877 = load double, ptr %2876, align 8, !tbaa !35
  %2878 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %2879 = load double, ptr %2878, align 8, !tbaa !23
  %2880 = fmul double 2.000000e+00, %2879
  %2881 = fneg double %2880
  %2882 = call double @llvm.fmuladd.f64(double %2875, double %2877, double %2881)
  %2883 = load double, ptr %15, align 8, !tbaa !9
  %2884 = fmul double 8.000000e+00, %2883
  %2885 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2886 = load double, ptr %2885, align 8, !tbaa !19
  %2887 = fmul double %2884, %2886
  %2888 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2889 = load double, ptr %2888, align 8, !tbaa !18
  %2890 = fneg double %2889
  %2891 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2892 = load double, ptr %2891, align 8, !tbaa !19
  %2893 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2894 = load double, ptr %2893, align 8, !tbaa !20
  %2895 = call double @llvm.fmuladd.f64(double %2892, double %2894, double %2890)
  %2896 = call double @llvm.fmuladd.f64(double %2887, double %2895, double %2882)
  store double %2896, ptr %75, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #7
  %2897 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %2898 = load double, ptr %2897, align 8, !tbaa !31
  %2899 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %2900 = load double, ptr %2899, align 8, !tbaa !27
  %2901 = fmul double 8.000000e+00, %2900
  %2902 = load double, ptr %15, align 8, !tbaa !9
  %2903 = fmul double %2901, %2902
  %2904 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2905 = load double, ptr %2904, align 8, !tbaa !19
  %2906 = fmul double %2903, %2905
  %2907 = fneg double %2906
  %2908 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %2898, double %2907)
  %2909 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %2910 = load double, ptr %2909, align 8, !tbaa !28
  %2911 = fmul double 1.200000e+01, %2910
  %2912 = load double, ptr %15, align 8, !tbaa !9
  %2913 = fmul double %2911, %2912
  %2914 = load double, ptr %15, align 8, !tbaa !9
  %2915 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2916 = load double, ptr %2915, align 8, !tbaa !16
  %2917 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2918 = load double, ptr %2917, align 8, !tbaa !22
  %2919 = call double @llvm.fmuladd.f64(double %2914, double %2916, double %2918)
  %2920 = fneg double %2913
  %2921 = call double @llvm.fmuladd.f64(double %2920, double %2919, double %2908)
  %2922 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2923 = load double, ptr %2922, align 8, !tbaa !15
  %2924 = fmul double 2.400000e+01, %2923
  %2925 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2926 = load double, ptr %2925, align 8, !tbaa !25
  %2927 = fmul double %2924, %2926
  %2928 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2929 = load double, ptr %2928, align 8, !tbaa !18
  %2930 = load double, ptr %15, align 8, !tbaa !9
  %2931 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %2932 = load double, ptr %2931, align 8, !tbaa !21
  %2933 = fmul double %2930, %2932
  %2934 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2929, double %2933)
  %2935 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2936 = load double, ptr %2935, align 8, !tbaa !19
  %2937 = fmul double 2.000000e+00, %2936
  %2938 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2939 = load double, ptr %2938, align 8, !tbaa !20
  %2940 = call double @llvm.fmuladd.f64(double %2937, double %2939, double %2934)
  %2941 = call double @llvm.fmuladd.f64(double %2927, double %2940, double %2921)
  %2942 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2943 = load double, ptr %2942, align 8, !tbaa !25
  %2944 = fmul double 6.000000e+00, %2943
  %2945 = load double, ptr %75, align 8, !tbaa !9
  %2946 = fneg double %2944
  %2947 = call double @llvm.fmuladd.f64(double %2946, double %2945, double %2941)
  store double %2947, ptr %76, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #7
  %2948 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %2949 = load double, ptr %2948, align 8, !tbaa !23
  %2950 = fneg double %2949
  %2951 = load double, ptr %15, align 8, !tbaa !9
  %2952 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2953 = load double, ptr %2952, align 8, !tbaa !19
  %2954 = fmul double %2951, %2953
  %2955 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %2956 = load double, ptr %2955, align 8, !tbaa !18
  %2957 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2958 = load double, ptr %2957, align 8, !tbaa !19
  %2959 = fmul double 3.000000e+00, %2958
  %2960 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %2961 = load double, ptr %2960, align 8, !tbaa !11
  %2962 = fmul double %2959, %2961
  %2963 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %2956, double %2962)
  %2964 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2965 = load double, ptr %2964, align 8, !tbaa !19
  %2966 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %2967 = load double, ptr %2966, align 8, !tbaa !20
  %2968 = fneg double %2965
  %2969 = call double @llvm.fmuladd.f64(double %2968, double %2967, double %2963)
  %2970 = call double @llvm.fmuladd.f64(double %2954, double %2969, double %2950)
  store double %2970, ptr %77, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #7
  %2971 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %2972 = load double, ptr %2971, align 8, !tbaa !25
  %2973 = fmul double 3.000000e+00, %2972
  %2974 = load double, ptr %72, align 8, !tbaa !9
  %2975 = fmul double %2973, %2974
  %2976 = load double, ptr %72, align 8, !tbaa !9
  %2977 = fmul double %2975, %2976
  store double %2977, ptr %78, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #7
  %2978 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %2979 = load double, ptr %2978, align 8, !tbaa !15
  %2980 = fmul double 4.000000e+00, %2979
  %2981 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %2982 = load double, ptr %2981, align 8, !tbaa !19
  %2983 = load double, ptr %15, align 8, !tbaa !9
  %2984 = fmul double 2.000000e+00, %2983
  %2985 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %2986 = load double, ptr %2985, align 8, !tbaa !16
  %2987 = fmul double %2984, %2986
  %2988 = fneg double %2987
  %2989 = call double @llvm.fmuladd.f64(double %2980, double %2982, double %2988)
  %2990 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %2991 = load double, ptr %2990, align 8, !tbaa !22
  %2992 = call double @llvm.fmuladd.f64(double -4.000000e+00, double %2991, double %2989)
  %2993 = load double, ptr %72, align 8, !tbaa !9
  %2994 = fdiv double %2992, %2993
  %2995 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %79, i64 noundef 0) #7
  store double %2994, ptr %2995, align 8, !tbaa !9
  %2996 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %2997 = load double, ptr %2996, align 8, !tbaa !30
  %2998 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %2999 = load double, ptr %2998, align 8, !tbaa !31
  %3000 = fadd double %2997, %2999
  %3001 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3002 = load double, ptr %3001, align 8, !tbaa !27
  %3003 = fmul double 8.000000e+00, %3002
  %3004 = load double, ptr %15, align 8, !tbaa !9
  %3005 = fmul double %3003, %3004
  %3006 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3007 = load double, ptr %3006, align 8, !tbaa !19
  %3008 = fmul double %3005, %3007
  %3009 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %3000, double %3008)
  %3010 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3011 = load double, ptr %3010, align 8, !tbaa !28
  %3012 = fmul double 6.000000e+00, %3011
  %3013 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3014 = load double, ptr %3013, align 8, !tbaa !25
  %3015 = fmul double %3012, %3014
  %3016 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3017 = load double, ptr %3016, align 8, !tbaa !16
  %3018 = call double @llvm.fmuladd.f64(double %3015, double %3017, double %3009)
  %3019 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %3020 = load double, ptr %3019, align 8, !tbaa !26
  %3021 = fmul double 8.000000e+00, %3020
  %3022 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3023 = load double, ptr %3022, align 8, !tbaa !15
  %3024 = load double, ptr %15, align 8, !tbaa !9
  %3025 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3026 = load double, ptr %3025, align 8, !tbaa !19
  %3027 = fneg double %3024
  %3028 = call double @llvm.fmuladd.f64(double %3027, double %3026, double %3023)
  %3029 = call double @llvm.fmuladd.f64(double %3021, double %3028, double %3018)
  %3030 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %3031 = load double, ptr %3030, align 8, !tbaa !29
  %3032 = fmul double 1.200000e+01, %3031
  %3033 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3034 = load double, ptr %3033, align 8, !tbaa !15
  %3035 = load double, ptr %15, align 8, !tbaa !9
  %3036 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3037 = load double, ptr %3036, align 8, !tbaa !19
  %3038 = fneg double %3035
  %3039 = call double @llvm.fmuladd.f64(double %3038, double %3037, double %3034)
  %3040 = fmul double %3032, %3039
  %3041 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3042 = load double, ptr %3041, align 8, !tbaa !15
  %3043 = load double, ptr %15, align 8, !tbaa !9
  %3044 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3045 = load double, ptr %3044, align 8, !tbaa !19
  %3046 = fneg double %3043
  %3047 = call double @llvm.fmuladd.f64(double %3046, double %3045, double %3042)
  %3048 = fneg double %3040
  %3049 = call double @llvm.fmuladd.f64(double %3048, double %3047, double %3029)
  %3050 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3051 = load double, ptr %3050, align 8, !tbaa !15
  %3052 = fmul double 1.200000e+01, %3051
  %3053 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3054 = load double, ptr %3053, align 8, !tbaa !25
  %3055 = fmul double %3052, %3054
  %3056 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %3057 = load double, ptr %3056, align 8, !tbaa !18
  %3058 = fneg double %3057
  %3059 = load double, ptr %15, align 8, !tbaa !9
  %3060 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %3061 = load double, ptr %3060, align 8, !tbaa !21
  %3062 = call double @llvm.fmuladd.f64(double %3059, double %3061, double %3058)
  %3063 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3064 = load double, ptr %3063, align 8, !tbaa !19
  %3065 = fmul double 2.000000e+00, %3064
  %3066 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %3067 = load double, ptr %3066, align 8, !tbaa !11
  %3068 = fneg double %3065
  %3069 = call double @llvm.fmuladd.f64(double %3068, double %3067, double %3062)
  %3070 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3071 = load double, ptr %3070, align 8, !tbaa !19
  %3072 = fmul double 3.000000e+00, %3071
  %3073 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %3074 = load double, ptr %3073, align 8, !tbaa !20
  %3075 = call double @llvm.fmuladd.f64(double %3072, double %3074, double %3069)
  %3076 = fneg double %3055
  %3077 = call double @llvm.fmuladd.f64(double %3076, double %3075, double %3049)
  %3078 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3079 = load double, ptr %3078, align 8, !tbaa !14
  %3080 = fmul double 2.000000e+00, %3079
  %3081 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3082 = load double, ptr %3081, align 8, !tbaa !27
  %3083 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3084 = load double, ptr %3083, align 8, !tbaa !28
  %3085 = fmul double 1.200000e+01, %3084
  %3086 = load double, ptr %15, align 8, !tbaa !9
  %3087 = fmul double %3085, %3086
  %3088 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3089 = load double, ptr %3088, align 8, !tbaa !19
  %3090 = fmul double %3087, %3089
  %3091 = fneg double %3090
  %3092 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %3082, double %3091)
  %3093 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3094 = load double, ptr %3093, align 8, !tbaa !15
  %3095 = fmul double 9.000000e+00, %3094
  %3096 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3097 = load double, ptr %3096, align 8, !tbaa !25
  %3098 = fmul double %3095, %3097
  %3099 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3100 = load double, ptr %3099, align 8, !tbaa !16
  %3101 = call double @llvm.fmuladd.f64(double %3098, double %3100, double %3092)
  %3102 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3103 = load double, ptr %3102, align 8, !tbaa !25
  %3104 = fmul double 3.000000e+00, %3103
  %3105 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %3106 = load double, ptr %3105, align 8, !tbaa !18
  %3107 = load double, ptr %15, align 8, !tbaa !9
  %3108 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %3109 = load double, ptr %3108, align 8, !tbaa !21
  %3110 = fmul double %3107, %3109
  %3111 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3106, double %3110)
  %3112 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3113 = load double, ptr %3112, align 8, !tbaa !19
  %3114 = fmul double 2.000000e+00, %3113
  %3115 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %3116 = load double, ptr %3115, align 8, !tbaa !20
  %3117 = fneg double %3114
  %3118 = call double @llvm.fmuladd.f64(double %3117, double %3116, double %3111)
  %3119 = fneg double %3104
  %3120 = call double @llvm.fmuladd.f64(double %3119, double %3118, double %3101)
  %3121 = call double @llvm.fmuladd.f64(double %3080, double %3120, double %3077)
  %3122 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3123 = load double, ptr %3122, align 8, !tbaa !25
  %3124 = fmul double 3.000000e+00, %3123
  %3125 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3126 = load double, ptr %3125, align 8, !tbaa !25
  %3127 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 13
  %3128 = load double, ptr %3127, align 8, !tbaa !35
  %3129 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %3130 = load double, ptr %3129, align 8, !tbaa !23
  %3131 = fmul double 4.000000e+00, %3130
  %3132 = call double @llvm.fmuladd.f64(double %3126, double %3128, double %3131)
  %3133 = load double, ptr %15, align 8, !tbaa !9
  %3134 = fmul double 4.000000e+00, %3133
  %3135 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3136 = load double, ptr %3135, align 8, !tbaa !19
  %3137 = fmul double %3134, %3136
  %3138 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %3139 = load double, ptr %3138, align 8, !tbaa !18
  %3140 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3141 = load double, ptr %3140, align 8, !tbaa !19
  %3142 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %3143 = load double, ptr %3142, align 8, !tbaa !11
  %3144 = call double @llvm.fmuladd.f64(double %3141, double %3143, double %3139)
  %3145 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3146 = load double, ptr %3145, align 8, !tbaa !19
  %3147 = fmul double 2.000000e+00, %3146
  %3148 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %3149 = load double, ptr %3148, align 8, !tbaa !20
  %3150 = fneg double %3147
  %3151 = call double @llvm.fmuladd.f64(double %3150, double %3149, double %3144)
  %3152 = fneg double %3137
  %3153 = call double @llvm.fmuladd.f64(double %3152, double %3151, double %3132)
  %3154 = call double @llvm.fmuladd.f64(double %3124, double %3153, double %3121)
  %3155 = load double, ptr %78, align 8, !tbaa !9
  %3156 = fdiv double %3154, %3155
  %3157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %79, i64 noundef 1) #7
  store double %3156, ptr %3157, align 8, !tbaa !9
  %3158 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 23
  %3159 = load double, ptr %3158, align 8, !tbaa !36
  %3160 = fneg double %3159
  %3161 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 28
  %3162 = load double, ptr %3161, align 8, !tbaa !37
  %3163 = fadd double %3160, %3162
  %3164 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %3165 = load double, ptr %3164, align 8, !tbaa !31
  %3166 = load double, ptr %15, align 8, !tbaa !9
  %3167 = fmul double %3165, %3166
  %3168 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3169 = load double, ptr %3168, align 8, !tbaa !19
  %3170 = fneg double %3167
  %3171 = call double @llvm.fmuladd.f64(double %3170, double %3169, double %3163)
  %3172 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %3173 = load double, ptr %3172, align 8, !tbaa !30
  %3174 = fmul double 5.000000e+00, %3173
  %3175 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3176 = load double, ptr %3175, align 8, !tbaa !15
  %3177 = load double, ptr %15, align 8, !tbaa !9
  %3178 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3179 = load double, ptr %3178, align 8, !tbaa !19
  %3180 = fneg double %3177
  %3181 = call double @llvm.fmuladd.f64(double %3180, double %3179, double %3176)
  %3182 = call double @llvm.fmuladd.f64(double %3174, double %3181, double %3171)
  %3183 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %3184 = load double, ptr %3183, align 8, !tbaa !26
  %3185 = fmul double 2.000000e+00, %3184
  %3186 = load double, ptr %74, align 8, !tbaa !9
  %3187 = fneg double %3185
  %3188 = call double @llvm.fmuladd.f64(double %3187, double %3186, double %3182)
  %3189 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3190 = load double, ptr %3189, align 8, !tbaa !27
  %3191 = fmul double 4.000000e+00, %3190
  %3192 = load double, ptr %15, align 8, !tbaa !9
  %3193 = fmul double %3191, %3192
  %3194 = load double, ptr %15, align 8, !tbaa !9
  %3195 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3196 = load double, ptr %3195, align 8, !tbaa !16
  %3197 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3198 = load double, ptr %3197, align 8, !tbaa !22
  %3199 = call double @llvm.fmuladd.f64(double %3194, double %3196, double %3198)
  %3200 = fneg double %3193
  %3201 = call double @llvm.fmuladd.f64(double %3200, double %3199, double %3188)
  %3202 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3203 = load double, ptr %3202, align 8, !tbaa !28
  %3204 = fmul double 1.200000e+01, %3203
  %3205 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3206 = load double, ptr %3205, align 8, !tbaa !25
  %3207 = fmul double %3204, %3206
  %3208 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 32
  %3209 = load double, ptr %3208, align 8, !tbaa !24
  %3210 = call double @llvm.fmuladd.f64(double %3207, double %3209, double %3201)
  %3211 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3212 = load double, ptr %3211, align 8, !tbaa !15
  %3213 = fmul double 1.200000e+01, %3212
  %3214 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3215 = load double, ptr %3214, align 8, !tbaa !25
  %3216 = fmul double %3213, %3215
  %3217 = load double, ptr %77, align 8, !tbaa !9
  %3218 = fneg double %3216
  %3219 = call double @llvm.fmuladd.f64(double %3218, double %3217, double %3210)
  %3220 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %3221 = load double, ptr %3220, align 8, !tbaa !29
  %3222 = fmul double 2.000000e+00, %3221
  %3223 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3224 = load double, ptr %3223, align 8, !tbaa !27
  %3225 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3226 = load double, ptr %3225, align 8, !tbaa !28
  %3227 = fmul double 9.000000e+00, %3226
  %3228 = load double, ptr %15, align 8, !tbaa !9
  %3229 = fmul double %3227, %3228
  %3230 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3231 = load double, ptr %3230, align 8, !tbaa !19
  %3232 = fmul double %3229, %3231
  %3233 = fneg double %3232
  %3234 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %3224, double %3233)
  %3235 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3236 = load double, ptr %3235, align 8, !tbaa !15
  %3237 = fmul double 6.000000e+00, %3236
  %3238 = load double, ptr %15, align 8, !tbaa !9
  %3239 = fmul double %3237, %3238
  %3240 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3241 = load double, ptr %3240, align 8, !tbaa !22
  %3242 = fneg double %3239
  %3243 = call double @llvm.fmuladd.f64(double %3242, double %3241, double %3234)
  %3244 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3245 = load double, ptr %3244, align 8, !tbaa !25
  %3246 = fmul double 6.000000e+00, %3245
  %3247 = load double, ptr %71, align 8, !tbaa !9
  %3248 = call double @llvm.fmuladd.f64(double %3246, double %3247, double %3243)
  %3249 = call double @llvm.fmuladd.f64(double %3222, double %3248, double %3219)
  %3250 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3251 = load double, ptr %3250, align 8, !tbaa !25
  %3252 = fmul double 1.200000e+01, %3251
  %3253 = load double, ptr %15, align 8, !tbaa !9
  %3254 = fmul double %3252, %3253
  %3255 = load double, ptr %73, align 8, !tbaa !9
  %3256 = call double @llvm.fmuladd.f64(double %3254, double %3255, double %3249)
  %3257 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3258 = load double, ptr %3257, align 8, !tbaa !14
  %3259 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %3260 = load double, ptr %3259, align 8, !tbaa !31
  %3261 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3262 = load double, ptr %3261, align 8, !tbaa !27
  %3263 = fmul double 8.000000e+00, %3262
  %3264 = load double, ptr %15, align 8, !tbaa !9
  %3265 = fmul double %3263, %3264
  %3266 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3267 = load double, ptr %3266, align 8, !tbaa !19
  %3268 = fmul double %3265, %3267
  %3269 = call double @llvm.fmuladd.f64(double -5.000000e+00, double %3260, double %3268)
  %3270 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3271 = load double, ptr %3270, align 8, !tbaa !28
  %3272 = fmul double 1.200000e+01, %3271
  %3273 = load double, ptr %15, align 8, !tbaa !9
  %3274 = fmul double %3272, %3273
  %3275 = load double, ptr %15, align 8, !tbaa !9
  %3276 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3277 = load double, ptr %3276, align 8, !tbaa !16
  %3278 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3279 = load double, ptr %3278, align 8, !tbaa !22
  %3280 = call double @llvm.fmuladd.f64(double %3275, double %3277, double %3279)
  %3281 = call double @llvm.fmuladd.f64(double %3274, double %3280, double %3269)
  %3282 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3283 = load double, ptr %3282, align 8, !tbaa !15
  %3284 = fmul double 2.400000e+01, %3283
  %3285 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3286 = load double, ptr %3285, align 8, !tbaa !25
  %3287 = fmul double %3284, %3286
  %3288 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %3289 = load double, ptr %3288, align 8, !tbaa !18
  %3290 = load double, ptr %15, align 8, !tbaa !9
  %3291 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 12
  %3292 = load double, ptr %3291, align 8, !tbaa !21
  %3293 = fmul double %3290, %3292
  %3294 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %3289, double %3293)
  %3295 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3296 = load double, ptr %3295, align 8, !tbaa !19
  %3297 = fmul double 2.000000e+00, %3296
  %3298 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %3299 = load double, ptr %3298, align 8, !tbaa !20
  %3300 = call double @llvm.fmuladd.f64(double %3297, double %3299, double %3294)
  %3301 = fneg double %3287
  %3302 = call double @llvm.fmuladd.f64(double %3301, double %3300, double %3281)
  %3303 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3304 = load double, ptr %3303, align 8, !tbaa !25
  %3305 = fmul double 6.000000e+00, %3304
  %3306 = load double, ptr %75, align 8, !tbaa !9
  %3307 = call double @llvm.fmuladd.f64(double %3305, double %3306, double %3302)
  %3308 = call double @llvm.fmuladd.f64(double %3258, double %3307, double %3256)
  %3309 = load double, ptr %15, align 8, !tbaa !9
  %3310 = load double, ptr %78, align 8, !tbaa !9
  %3311 = fmul double %3309, %3310
  %3312 = fdiv double %3308, %3311
  %3313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %79, i64 noundef 2) #7
  store double %3312, ptr %3313, align 8, !tbaa !9
  %3314 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 24
  %3315 = load double, ptr %3314, align 8, !tbaa !38
  %3316 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 29
  %3317 = load double, ptr %3316, align 8, !tbaa !39
  %3318 = fadd double %3315, %3317
  %3319 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 23
  %3320 = load double, ptr %3319, align 8, !tbaa !36
  %3321 = fmul double 6.000000e+00, %3320
  %3322 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3323 = load double, ptr %3322, align 8, !tbaa !15
  %3324 = load double, ptr %15, align 8, !tbaa !9
  %3325 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3326 = load double, ptr %3325, align 8, !tbaa !19
  %3327 = fneg double %3324
  %3328 = call double @llvm.fmuladd.f64(double %3327, double %3326, double %3323)
  %3329 = fneg double %3321
  %3330 = call double @llvm.fmuladd.f64(double %3329, double %3328, double %3318)
  %3331 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3332 = load double, ptr %3331, align 8, !tbaa !27
  %3333 = fmul double 4.800000e+01, %3332
  %3334 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3335 = load double, ptr %3334, align 8, !tbaa !25
  %3336 = fmul double %3333, %3335
  %3337 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %3338 = load double, ptr %3337, align 8, !tbaa !33
  %3339 = call double @llvm.fmuladd.f64(double %3336, double %3338, double %3330)
  %3340 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3341 = load double, ptr %3340, align 8, !tbaa !25
  %3342 = fmul double 7.200000e+01, %3341
  %3343 = load double, ptr %15, align 8, !tbaa !9
  %3344 = fmul double %3342, %3343
  %3345 = load double, ptr %15, align 8, !tbaa !9
  %3346 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %3347 = load double, ptr %3346, align 8, !tbaa !33
  %3348 = fmul double %3345, %3347
  %3349 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %3350 = load double, ptr %3349, align 8, !tbaa !33
  %3351 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %3352 = load double, ptr %3351, align 8, !tbaa !23
  %3353 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3354 = load double, ptr %3353, align 8, !tbaa !22
  %3355 = fmul double %3352, %3354
  %3356 = call double @llvm.fmuladd.f64(double %3348, double %3350, double %3355)
  %3357 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3358 = load double, ptr %3357, align 8, !tbaa !15
  %3359 = fmul double 2.000000e+00, %3358
  %3360 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 31
  %3361 = load double, ptr %3360, align 8, !tbaa !33
  %3362 = fmul double %3359, %3361
  %3363 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3364 = load double, ptr %3363, align 8, !tbaa !22
  %3365 = call double @llvm.fmuladd.f64(double %3362, double %3364, double %3356)
  %3366 = fneg double %3344
  %3367 = call double @llvm.fmuladd.f64(double %3366, double %3365, double %3339)
  %3368 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 22
  %3369 = load double, ptr %3368, align 8, !tbaa !30
  %3370 = fmul double 3.000000e+00, %3369
  %3371 = load double, ptr %74, align 8, !tbaa !9
  %3372 = call double @llvm.fmuladd.f64(double %3370, double %3371, double %3367)
  %3373 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %3374 = load double, ptr %3373, align 8, !tbaa !31
  %3375 = fmul double 6.000000e+00, %3374
  %3376 = load double, ptr %15, align 8, !tbaa !9
  %3377 = fmul double %3375, %3376
  %3378 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3379 = load double, ptr %3378, align 8, !tbaa !22
  %3380 = fneg double %3377
  %3381 = call double @llvm.fmuladd.f64(double %3380, double %3379, double %3372)
  %3382 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3383 = load double, ptr %3382, align 8, !tbaa !28
  %3384 = fmul double 3.600000e+01, %3383
  %3385 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3386 = load double, ptr %3385, align 8, !tbaa !25
  %3387 = fmul double %3384, %3386
  %3388 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %3389 = load double, ptr %3388, align 8, !tbaa !23
  %3390 = call double @llvm.fmuladd.f64(double %3387, double %3389, double %3381)
  %3391 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 21
  %3392 = load double, ptr %3391, align 8, !tbaa !26
  %3393 = fmul double 4.000000e+00, %3392
  %3394 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3395 = load double, ptr %3394, align 8, !tbaa !27
  %3396 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3397 = load double, ptr %3396, align 8, !tbaa !28
  %3398 = fmul double 9.000000e+00, %3397
  %3399 = load double, ptr %15, align 8, !tbaa !9
  %3400 = fmul double %3398, %3399
  %3401 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3402 = load double, ptr %3401, align 8, !tbaa !19
  %3403 = fmul double %3400, %3402
  %3404 = fneg double %3403
  %3405 = call double @llvm.fmuladd.f64(double 5.000000e+00, double %3395, double %3404)
  %3406 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3407 = load double, ptr %3406, align 8, !tbaa !15
  %3408 = fmul double 6.000000e+00, %3407
  %3409 = load double, ptr %15, align 8, !tbaa !9
  %3410 = fmul double %3408, %3409
  %3411 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3412 = load double, ptr %3411, align 8, !tbaa !22
  %3413 = fneg double %3410
  %3414 = call double @llvm.fmuladd.f64(double %3413, double %3412, double %3405)
  %3415 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3416 = load double, ptr %3415, align 8, !tbaa !25
  %3417 = fmul double 6.000000e+00, %3416
  %3418 = load double, ptr %71, align 8, !tbaa !9
  %3419 = call double @llvm.fmuladd.f64(double %3417, double %3418, double %3414)
  %3420 = fneg double %3393
  %3421 = call double @llvm.fmuladd.f64(double %3420, double %3419, double %3390)
  %3422 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %3423 = load double, ptr %3422, align 8, !tbaa !29
  %3424 = fmul double 3.000000e+00, %3423
  %3425 = load double, ptr %76, align 8, !tbaa !9
  %3426 = call double @llvm.fmuladd.f64(double %3424, double %3425, double %3421)
  %3427 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3428 = load double, ptr %3427, align 8, !tbaa !14
  %3429 = fmul double 6.000000e+00, %3428
  %3430 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 28
  %3431 = load double, ptr %3430, align 8, !tbaa !37
  %3432 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 27
  %3433 = load double, ptr %3432, align 8, !tbaa !31
  %3434 = load double, ptr %15, align 8, !tbaa !9
  %3435 = fmul double %3433, %3434
  %3436 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3437 = load double, ptr %3436, align 8, !tbaa !19
  %3438 = fneg double %3435
  %3439 = call double @llvm.fmuladd.f64(double %3438, double %3437, double %3431)
  %3440 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 26
  %3441 = load double, ptr %3440, align 8, !tbaa !27
  %3442 = fmul double 4.000000e+00, %3441
  %3443 = load double, ptr %15, align 8, !tbaa !9
  %3444 = fmul double %3442, %3443
  %3445 = load double, ptr %15, align 8, !tbaa !9
  %3446 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3447 = load double, ptr %3446, align 8, !tbaa !16
  %3448 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3449 = load double, ptr %3448, align 8, !tbaa !22
  %3450 = call double @llvm.fmuladd.f64(double %3445, double %3447, double %3449)
  %3451 = fneg double %3444
  %3452 = call double @llvm.fmuladd.f64(double %3451, double %3450, double %3439)
  %3453 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3454 = load double, ptr %3453, align 8, !tbaa !25
  %3455 = fmul double 1.200000e+01, %3454
  %3456 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3457 = load double, ptr %3456, align 8, !tbaa !28
  %3458 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 32
  %3459 = load double, ptr %3458, align 8, !tbaa !24
  %3460 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3461 = load double, ptr %3460, align 8, !tbaa !15
  %3462 = load double, ptr %77, align 8, !tbaa !9
  %3463 = fmul double %3461, %3462
  %3464 = fneg double %3463
  %3465 = call double @llvm.fmuladd.f64(double %3457, double %3459, double %3464)
  %3466 = load double, ptr %15, align 8, !tbaa !9
  %3467 = load double, ptr %73, align 8, !tbaa !9
  %3468 = call double @llvm.fmuladd.f64(double %3466, double %3467, double %3465)
  %3469 = call double @llvm.fmuladd.f64(double %3455, double %3468, double %3452)
  %3470 = fneg double %3429
  %3471 = call double @llvm.fmuladd.f64(double %3470, double %3469, double %3426)
  %3472 = fneg double %3471
  %3473 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3474 = load double, ptr %3473, align 8, !tbaa !25
  %3475 = fmul double 6.000000e+00, %3474
  %3476 = load double, ptr %78, align 8, !tbaa !9
  %3477 = fmul double %3475, %3476
  %3478 = fdiv double %3472, %3477
  %3479 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %79, i64 noundef 3) #7
  store double %3478, ptr %3479, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %80) #7
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind writable sret(%"class.ruckig::roots::PositiveSet") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %79)
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  store ptr %80, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %3480 = load ptr, ptr %81, align 8, !tbaa !5
  %3481 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %3480)
  store ptr %3481, ptr %82, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #7
  %3482 = load ptr, ptr %81, align 8, !tbaa !5
  %3483 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %3482)
  store ptr %3483, ptr %83, align 8, !tbaa !5
  br label %3484

3484:                                             ; preds = %3595, %2818
  %3485 = load ptr, ptr %82, align 8, !tbaa !5
  %3486 = load ptr, ptr %83, align 8, !tbaa !5
  %3487 = icmp ne ptr %3485, %3486
  br i1 %3487, label %3489, label %3488

3488:                                             ; preds = %3484
  store i32 8, ptr %18, align 4
  br label %3598

3489:                                             ; preds = %3484
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #7
  %3490 = load ptr, ptr %82, align 8, !tbaa !5
  %3491 = load double, ptr %3490, align 8, !tbaa !9
  store double %3491, ptr %84, align 8, !tbaa !9
  %3492 = load double, ptr %84, align 8, !tbaa !9
  %3493 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3494 = load double, ptr %3493, align 8, !tbaa !19
  %3495 = fcmp ogt double %3492, %3494
  br i1 %3495, label %3505, label %3496

3496:                                             ; preds = %3489
  %3497 = load double, ptr %84, align 8, !tbaa !9
  %3498 = load double, ptr %13, align 8, !tbaa !9
  %3499 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3500 = load double, ptr %3499, align 8, !tbaa !14
  %3501 = fsub double %3498, %3500
  %3502 = load double, ptr %15, align 8, !tbaa !9
  %3503 = fdiv double %3501, %3502
  %3504 = fcmp ogt double %3497, %3503
  br i1 %3504, label %3505, label %3506

3505:                                             ; preds = %3496, %3489
  store i32 9, ptr %18, align 4
  br label %3592

3506:                                             ; preds = %3496
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #7
  %3507 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %3508 = load double, ptr %3507, align 8, !tbaa !34
  %3509 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 30
  %3510 = load double, ptr %3509, align 8, !tbaa !25
  %3511 = fmul double 2.000000e+00, %3510
  %3512 = fdiv double %3508, %3511
  %3513 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3514 = load double, ptr %3513, align 8, !tbaa !14
  %3515 = load double, ptr %84, align 8, !tbaa !9
  %3516 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3517 = load double, ptr %3516, align 8, !tbaa !19
  %3518 = fadd double %3515, %3517
  %3519 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3520 = load double, ptr %3519, align 8, !tbaa !15
  %3521 = load double, ptr %84, align 8, !tbaa !9
  %3522 = fmul double %3520, %3521
  %3523 = fneg double %3522
  %3524 = call double @llvm.fmuladd.f64(double %3514, double %3518, double %3523)
  %3525 = load double, ptr %15, align 8, !tbaa !9
  %3526 = load double, ptr %84, align 8, !tbaa !9
  %3527 = fmul double %3525, %3526
  %3528 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3529 = load double, ptr %3528, align 8, !tbaa !19
  %3530 = call double @llvm.fmuladd.f64(double %3527, double %3529, double %3524)
  %3531 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3532 = load double, ptr %3531, align 8, !tbaa !22
  %3533 = fsub double %3530, %3532
  %3534 = load double, ptr %15, align 8, !tbaa !9
  %3535 = fdiv double %3533, %3534
  %3536 = fadd double %3512, %3535
  %3537 = call double @sqrt(double noundef %3536) #7
  store double %3537, ptr %85, align 8, !tbaa !9
  %3538 = load double, ptr %84, align 8, !tbaa !9
  %3539 = load ptr, ptr %10, align 8, !tbaa !5
  %3540 = getelementptr inbounds %"class.ruckig::Profile", ptr %3539, i32 0, i32 0
  %3541 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3540, i64 noundef 0) #7
  store double %3538, ptr %3541, align 8, !tbaa !9
  %3542 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3543 = load double, ptr %3542, align 8, !tbaa !19
  %3544 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3545 = load double, ptr %3544, align 8, !tbaa !32
  %3546 = load double, ptr %15, align 8, !tbaa !9
  %3547 = fdiv double %3545, %3546
  %3548 = fsub double %3543, %3547
  %3549 = load double, ptr %85, align 8, !tbaa !9
  %3550 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %3549, double %3548)
  %3551 = load ptr, ptr %10, align 8, !tbaa !5
  %3552 = getelementptr inbounds %"class.ruckig::Profile", ptr %3551, i32 0, i32 0
  %3553 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3552, i64 noundef 1) #7
  store double %3550, ptr %3553, align 8, !tbaa !9
  %3554 = load double, ptr %85, align 8, !tbaa !9
  %3555 = load ptr, ptr %10, align 8, !tbaa !5
  %3556 = getelementptr inbounds %"class.ruckig::Profile", ptr %3555, i32 0, i32 0
  %3557 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3556, i64 noundef 2) #7
  store double %3554, ptr %3557, align 8, !tbaa !9
  %3558 = load ptr, ptr %10, align 8, !tbaa !5
  %3559 = getelementptr inbounds %"class.ruckig::Profile", ptr %3558, i32 0, i32 0
  %3560 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3559, i64 noundef 3) #7
  store double 0.000000e+00, ptr %3560, align 8, !tbaa !9
  %3561 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3562 = load double, ptr %3561, align 8, !tbaa !32
  %3563 = load double, ptr %15, align 8, !tbaa !9
  %3564 = fdiv double %3562, %3563
  %3565 = load double, ptr %85, align 8, !tbaa !9
  %3566 = fadd double %3564, %3565
  %3567 = load double, ptr %84, align 8, !tbaa !9
  %3568 = fsub double %3566, %3567
  %3569 = load ptr, ptr %10, align 8, !tbaa !5
  %3570 = getelementptr inbounds %"class.ruckig::Profile", ptr %3569, i32 0, i32 0
  %3571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3570, i64 noundef 4) #7
  store double %3568, ptr %3571, align 8, !tbaa !9
  %3572 = load ptr, ptr %10, align 8, !tbaa !5
  %3573 = getelementptr inbounds %"class.ruckig::Profile", ptr %3572, i32 0, i32 0
  %3574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3573, i64 noundef 5) #7
  store double 0.000000e+00, ptr %3574, align 8, !tbaa !9
  %3575 = load ptr, ptr %10, align 8, !tbaa !5
  %3576 = getelementptr inbounds %"class.ruckig::Profile", ptr %3575, i32 0, i32 0
  %3577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3576, i64 noundef 6) #7
  store double 0.000000e+00, ptr %3577, align 8, !tbaa !9
  %3578 = load ptr, ptr %10, align 8, !tbaa !5
  %3579 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3580 = load double, ptr %3579, align 8, !tbaa !19
  %3581 = load double, ptr %15, align 8, !tbaa !9
  %3582 = load double, ptr %11, align 8, !tbaa !9
  %3583 = load double, ptr %12, align 8, !tbaa !9
  %3584 = load double, ptr %13, align 8, !tbaa !9
  %3585 = load double, ptr %14, align 8, !tbaa !9
  %3586 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE1ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %3578, double noundef %3580, double noundef %3581, double noundef %3582, double noundef %3583, double noundef %3584, double noundef %3585)
  br i1 %3586, label %3587, label %3588

3587:                                             ; preds = %3506
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %3589

3588:                                             ; preds = %3506
  store i32 0, ptr %18, align 4
  br label %3589

3589:                                             ; preds = %3588, %3587
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #7
  %3590 = load i32, ptr %18, align 4
  switch i32 %3590, label %3592 [
    i32 0, label %3591
  ]

3591:                                             ; preds = %3589
  store i32 0, ptr %18, align 4
  br label %3592

3592:                                             ; preds = %3591, %3589, %3505
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #7
  %3593 = load i32, ptr %18, align 4
  switch i32 %3593, label %3598 [
    i32 0, label %3594
    i32 9, label %3595
  ]

3594:                                             ; preds = %3592
  br label %3595

3595:                                             ; preds = %3594, %3592
  %3596 = load ptr, ptr %82, align 8, !tbaa !5
  %3597 = getelementptr inbounds double, ptr %3596, i32 1
  store ptr %3597, ptr %82, align 8, !tbaa !5
  br label %3484

3598:                                             ; preds = %3592, %3488
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  %3599 = load i32, ptr %18, align 4
  switch i32 %3599, label %3601 [
    i32 8, label %3600
  ]

3600:                                             ; preds = %3598
  store i32 0, ptr %18, align 4
  br label %3601

3601:                                             ; preds = %3600, %3598
  call void @llvm.lifetime.end.p0(i64 40, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  %3602 = load i32, ptr %18, align 4
  switch i32 %3602, label %3970 [
    i32 0, label %3603
    i32 1, label %3968
  ]

3603:                                             ; preds = %3601
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #7
  %3604 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %3605 = load double, ptr %3604, align 8, !tbaa !34
  %3606 = fneg double %3605
  %3607 = load double, ptr %15, align 8, !tbaa !9
  %3608 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3609 = load double, ptr %3608, align 8, !tbaa !14
  %3610 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3611 = load double, ptr %3610, align 8, !tbaa !15
  %3612 = fadd double %3609, %3611
  %3613 = fmul double 2.000000e+00, %3612
  %3614 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3615 = load double, ptr %3614, align 8, !tbaa !19
  %3616 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3617 = load double, ptr %3616, align 8, !tbaa !22
  %3618 = fmul double 4.000000e+00, %3617
  %3619 = fneg double %3618
  %3620 = call double @llvm.fmuladd.f64(double %3613, double %3615, double %3619)
  %3621 = load double, ptr %15, align 8, !tbaa !9
  %3622 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3623 = load double, ptr %3622, align 8, !tbaa !16
  %3624 = call double @llvm.fmuladd.f64(double %3621, double %3623, double %3620)
  %3625 = call double @llvm.fmuladd.f64(double %3607, double %3624, double %3606)
  %3626 = call double @sqrt(double noundef %3625) #7
  %3627 = load double, ptr %15, align 8, !tbaa !9
  %3628 = call noundef double @_ZSt3absd(double noundef %3627)
  %3629 = fdiv double %3626, %3628
  store double %3629, ptr %86, align 8, !tbaa !9
  %3630 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3631 = load double, ptr %3630, align 8, !tbaa !19
  %3632 = load double, ptr %86, align 8, !tbaa !9
  %3633 = fsub double %3631, %3632
  %3634 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3635 = load double, ptr %3634, align 8, !tbaa !32
  %3636 = load double, ptr %15, align 8, !tbaa !9
  %3637 = fdiv double %3635, %3636
  %3638 = fadd double %3633, %3637
  %3639 = fdiv double %3638, 2.000000e+00
  %3640 = load ptr, ptr %10, align 8, !tbaa !5
  %3641 = getelementptr inbounds %"class.ruckig::Profile", ptr %3640, i32 0, i32 0
  %3642 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3641, i64 noundef 0) #7
  store double %3639, ptr %3642, align 8, !tbaa !9
  %3643 = load double, ptr %86, align 8, !tbaa !9
  %3644 = load ptr, ptr %10, align 8, !tbaa !5
  %3645 = getelementptr inbounds %"class.ruckig::Profile", ptr %3644, i32 0, i32 0
  %3646 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3645, i64 noundef 1) #7
  store double %3643, ptr %3646, align 8, !tbaa !9
  %3647 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3648 = load double, ptr %3647, align 8, !tbaa !19
  %3649 = load double, ptr %86, align 8, !tbaa !9
  %3650 = fsub double %3648, %3649
  %3651 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3652 = load double, ptr %3651, align 8, !tbaa !32
  %3653 = load double, ptr %15, align 8, !tbaa !9
  %3654 = fdiv double %3652, %3653
  %3655 = fsub double %3650, %3654
  %3656 = fdiv double %3655, 2.000000e+00
  %3657 = load ptr, ptr %10, align 8, !tbaa !5
  %3658 = getelementptr inbounds %"class.ruckig::Profile", ptr %3657, i32 0, i32 0
  %3659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3658, i64 noundef 2) #7
  store double %3656, ptr %3659, align 8, !tbaa !9
  %3660 = load ptr, ptr %10, align 8, !tbaa !5
  %3661 = getelementptr inbounds %"class.ruckig::Profile", ptr %3660, i32 0, i32 0
  %3662 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3661, i64 noundef 3) #7
  store double 0.000000e+00, ptr %3662, align 8, !tbaa !9
  %3663 = load ptr, ptr %10, align 8, !tbaa !5
  %3664 = getelementptr inbounds %"class.ruckig::Profile", ptr %3663, i32 0, i32 0
  %3665 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3664, i64 noundef 4) #7
  store double 0.000000e+00, ptr %3665, align 8, !tbaa !9
  %3666 = load ptr, ptr %10, align 8, !tbaa !5
  %3667 = getelementptr inbounds %"class.ruckig::Profile", ptr %3666, i32 0, i32 0
  %3668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3667, i64 noundef 5) #7
  store double 0.000000e+00, ptr %3668, align 8, !tbaa !9
  %3669 = load ptr, ptr %10, align 8, !tbaa !5
  %3670 = getelementptr inbounds %"class.ruckig::Profile", ptr %3669, i32 0, i32 0
  %3671 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3670, i64 noundef 6) #7
  store double 0.000000e+00, ptr %3671, align 8, !tbaa !9
  %3672 = load ptr, ptr %10, align 8, !tbaa !5
  %3673 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3674 = load double, ptr %3673, align 8, !tbaa !19
  %3675 = load double, ptr %15, align 8, !tbaa !9
  %3676 = load double, ptr %11, align 8, !tbaa !9
  %3677 = load double, ptr %12, align 8, !tbaa !9
  %3678 = load double, ptr %13, align 8, !tbaa !9
  %3679 = load double, ptr %14, align 8, !tbaa !9
  %3680 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %3672, double noundef %3674, double noundef %3675, double noundef %3676, double noundef %3677, double noundef %3678, double noundef %3679)
  br i1 %3680, label %3681, label %3682

3681:                                             ; preds = %3603
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %3683

3682:                                             ; preds = %3603
  store i32 0, ptr %18, align 4
  br label %3683

3683:                                             ; preds = %3682, %3681
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #7
  %3684 = load i32, ptr %18, align 4
  switch i32 %3684, label %3970 [
    i32 0, label %3685
    i32 1, label %3968
  ]

3685:                                             ; preds = %3683
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #7
  %3686 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %3687 = load double, ptr %3686, align 8, !tbaa !34
  %3688 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 0) #7
  store double %3687, ptr %3688, align 8, !tbaa !9
  %3689 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %3690 = load double, ptr %3689, align 8, !tbaa !34
  %3691 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3692 = load double, ptr %3691, align 8, !tbaa !19
  %3693 = fmul double %3690, %3692
  %3694 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 1) #7
  store double %3693, ptr %3694, align 8, !tbaa !9
  %3695 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %3696 = load double, ptr %3695, align 8, !tbaa !29
  %3697 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3698 = load double, ptr %3697, align 8, !tbaa !28
  %3699 = fadd double %3696, %3698
  %3700 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3701 = load double, ptr %3700, align 8, !tbaa !14
  %3702 = fmul double 1.000000e+01, %3701
  %3703 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3704 = load double, ptr %3703, align 8, !tbaa !15
  %3705 = call double @llvm.fmuladd.f64(double %3702, double %3704, double %3699)
  %3706 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3707 = load double, ptr %3706, align 8, !tbaa !16
  %3708 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3709 = load double, ptr %3708, align 8, !tbaa !19
  %3710 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3711 = load double, ptr %3710, align 8, !tbaa !15
  %3712 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 0
  %3713 = load double, ptr %3712, align 8, !tbaa !11
  %3714 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3715 = load double, ptr %3714, align 8, !tbaa !14
  %3716 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 3
  %3717 = load double, ptr %3716, align 8, !tbaa !20
  %3718 = fmul double %3715, %3717
  %3719 = fneg double %3718
  %3720 = call double @llvm.fmuladd.f64(double %3711, double %3713, double %3719)
  %3721 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 10
  %3722 = load double, ptr %3721, align 8, !tbaa !18
  %3723 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3724 = load double, ptr %3723, align 8, !tbaa !32
  %3725 = fmul double %3722, %3724
  %3726 = fneg double %3725
  %3727 = call double @llvm.fmuladd.f64(double %3709, double %3720, double %3726)
  %3728 = fmul double 2.400000e+01, %3727
  %3729 = call double @llvm.fmuladd.f64(double %3705, double %3707, double %3728)
  %3730 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %3731 = load double, ptr %3730, align 8, !tbaa !23
  %3732 = call double @llvm.fmuladd.f64(double 1.200000e+01, double %3731, double %3729)
  %3733 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 2) #7
  store double %3732, ptr %3733, align 8, !tbaa !9
  %3734 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3735 = load double, ptr %3734, align 8, !tbaa !19
  %3736 = fmul double -3.000000e+00, %3735
  %3737 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 20
  %3738 = load double, ptr %3737, align 8, !tbaa !29
  %3739 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 25
  %3740 = load double, ptr %3739, align 8, !tbaa !28
  %3741 = fadd double %3738, %3740
  %3742 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3743 = load double, ptr %3742, align 8, !tbaa !14
  %3744 = fmul double 2.000000e+00, %3743
  %3745 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3746 = load double, ptr %3745, align 8, !tbaa !15
  %3747 = call double @llvm.fmuladd.f64(double %3744, double %3746, double %3741)
  %3748 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3749 = load double, ptr %3748, align 8, !tbaa !16
  %3750 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3751 = load double, ptr %3750, align 8, !tbaa !22
  %3752 = fmul double 4.000000e+00, %3751
  %3753 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3754 = load double, ptr %3753, align 8, !tbaa !14
  %3755 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3756 = load double, ptr %3755, align 8, !tbaa !15
  %3757 = fadd double %3754, %3756
  %3758 = fmul double %3752, %3757
  %3759 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3760 = load double, ptr %3759, align 8, !tbaa !19
  %3761 = fmul double %3758, %3760
  %3762 = fneg double %3761
  %3763 = call double @llvm.fmuladd.f64(double %3747, double %3749, double %3762)
  %3764 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 15
  %3765 = load double, ptr %3764, align 8, !tbaa !23
  %3766 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %3765, double %3763)
  %3767 = fmul double %3736, %3766
  %3768 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 3) #7
  store double %3767, ptr %3768, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #7
  %3769 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 0) #7
  %3770 = load double, ptr %3769, align 8, !tbaa !9
  %3771 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 1) #7
  %3772 = load double, ptr %3771, align 8, !tbaa !9
  %3773 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 2) #7
  %3774 = load double, ptr %3773, align 8, !tbaa !9
  %3775 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %87, i64 noundef 3) #7
  %3776 = load double, ptr %3775, align 8, !tbaa !9
  call void @_ZN6ruckig5roots11solve_cubicEdddd(ptr dead_on_unwind writable sret(%"class.ruckig::roots::PositiveSet.3") align 8 %88, double noundef %3770, double noundef %3772, double noundef %3774, double noundef %3776)
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  store ptr %88, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %3777 = load ptr, ptr %89, align 8, !tbaa !5
  %3778 = call noundef ptr @_ZN6ruckig5roots3SetIdLm3EE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %3777)
  store ptr %3778, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #7
  %3779 = load ptr, ptr %89, align 8, !tbaa !5
  %3780 = call noundef ptr @_ZN6ruckig5roots3SetIdLm3EE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %3779)
  store ptr %3780, ptr %91, align 8, !tbaa !5
  br label %3781

3781:                                             ; preds = %3875, %3685
  %3782 = load ptr, ptr %90, align 8, !tbaa !5
  %3783 = load ptr, ptr %91, align 8, !tbaa !5
  %3784 = icmp ne ptr %3782, %3783
  br i1 %3784, label %3786, label %3785

3785:                                             ; preds = %3781
  store i32 10, ptr %18, align 4
  br label %3878

3786:                                             ; preds = %3781
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #7
  %3787 = load ptr, ptr %90, align 8, !tbaa !5
  %3788 = load double, ptr %3787, align 8, !tbaa !9
  store double %3788, ptr %92, align 8, !tbaa !9
  %3789 = load double, ptr %92, align 8, !tbaa !9
  %3790 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3791 = load double, ptr %3790, align 8, !tbaa !19
  %3792 = fcmp ogt double %3789, %3791
  br i1 %3792, label %3793, label %3794

3793:                                             ; preds = %3786
  store i32 11, ptr %18, align 4
  br label %3872

3794:                                             ; preds = %3786
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  %3795 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3796 = load double, ptr %3795, align 8, !tbaa !32
  %3797 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3798 = load double, ptr %3797, align 8, !tbaa !19
  %3799 = load double, ptr %92, align 8, !tbaa !9
  %3800 = fsub double %3798, %3799
  %3801 = fdiv double %3796, %3800
  store double %3801, ptr %93, align 8, !tbaa !9
  %3802 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3803 = load double, ptr %3802, align 8, !tbaa !22
  %3804 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3805 = load double, ptr %3804, align 8, !tbaa !14
  %3806 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3807 = load double, ptr %3806, align 8, !tbaa !19
  %3808 = fneg double %3805
  %3809 = call double @llvm.fmuladd.f64(double %3808, double %3807, double %3803)
  %3810 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3811 = load double, ptr %3810, align 8, !tbaa !32
  %3812 = load double, ptr %92, align 8, !tbaa !9
  %3813 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3814 = load double, ptr %3813, align 8, !tbaa !19
  %3815 = fsub double %3812, %3814
  %3816 = fmul double %3811, %3815
  %3817 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %3809, double %3816)
  %3818 = load double, ptr %93, align 8, !tbaa !9
  %3819 = fmul double 2.000000e+00, %3818
  %3820 = load double, ptr %92, align 8, !tbaa !9
  %3821 = fmul double %3819, %3820
  %3822 = fdiv double %3817, %3821
  %3823 = load ptr, ptr %10, align 8, !tbaa !5
  %3824 = getelementptr inbounds %"class.ruckig::Profile", ptr %3823, i32 0, i32 0
  %3825 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3824, i64 noundef 0) #7
  store double %3822, ptr %3825, align 8, !tbaa !9
  %3826 = load double, ptr %92, align 8, !tbaa !9
  %3827 = load ptr, ptr %10, align 8, !tbaa !5
  %3828 = getelementptr inbounds %"class.ruckig::Profile", ptr %3827, i32 0, i32 0
  %3829 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3828, i64 noundef 1) #7
  store double %3826, ptr %3829, align 8, !tbaa !9
  %3830 = load ptr, ptr %10, align 8, !tbaa !5
  %3831 = getelementptr inbounds %"class.ruckig::Profile", ptr %3830, i32 0, i32 0
  %3832 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3831, i64 noundef 2) #7
  store double 0.000000e+00, ptr %3832, align 8, !tbaa !9
  %3833 = load ptr, ptr %10, align 8, !tbaa !5
  %3834 = getelementptr inbounds %"class.ruckig::Profile", ptr %3833, i32 0, i32 0
  %3835 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3834, i64 noundef 3) #7
  store double 0.000000e+00, ptr %3835, align 8, !tbaa !9
  %3836 = load ptr, ptr %10, align 8, !tbaa !5
  %3837 = getelementptr inbounds %"class.ruckig::Profile", ptr %3836, i32 0, i32 0
  %3838 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3837, i64 noundef 4) #7
  store double 0.000000e+00, ptr %3838, align 8, !tbaa !9
  %3839 = load ptr, ptr %10, align 8, !tbaa !5
  %3840 = getelementptr inbounds %"class.ruckig::Profile", ptr %3839, i32 0, i32 0
  %3841 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3840, i64 noundef 5) #7
  store double 0.000000e+00, ptr %3841, align 8, !tbaa !9
  %3842 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3843 = load double, ptr %3842, align 8, !tbaa !19
  %3844 = load ptr, ptr %10, align 8, !tbaa !5
  %3845 = getelementptr inbounds %"class.ruckig::Profile", ptr %3844, i32 0, i32 0
  %3846 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3845, i64 noundef 0) #7
  %3847 = load double, ptr %3846, align 8, !tbaa !9
  %3848 = load ptr, ptr %10, align 8, !tbaa !5
  %3849 = getelementptr inbounds %"class.ruckig::Profile", ptr %3848, i32 0, i32 0
  %3850 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3849, i64 noundef 1) #7
  %3851 = load double, ptr %3850, align 8, !tbaa !9
  %3852 = fadd double %3847, %3851
  %3853 = fsub double %3843, %3852
  %3854 = load ptr, ptr %10, align 8, !tbaa !5
  %3855 = getelementptr inbounds %"class.ruckig::Profile", ptr %3854, i32 0, i32 0
  %3856 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3855, i64 noundef 6) #7
  store double %3853, ptr %3856, align 8, !tbaa !9
  %3857 = load ptr, ptr %10, align 8, !tbaa !5
  %3858 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3859 = load double, ptr %3858, align 8, !tbaa !19
  %3860 = load double, ptr %93, align 8, !tbaa !9
  %3861 = load double, ptr %11, align 8, !tbaa !9
  %3862 = load double, ptr %12, align 8, !tbaa !9
  %3863 = load double, ptr %13, align 8, !tbaa !9
  %3864 = load double, ptr %14, align 8, !tbaa !9
  %3865 = load double, ptr %15, align 8, !tbaa !9
  %3866 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbddddddd(ptr noundef nonnull align 8 dereferenceable(572) %3857, double noundef %3859, double noundef %3860, double noundef %3861, double noundef %3862, double noundef %3863, double noundef %3864, double noundef %3865)
  br i1 %3866, label %3867, label %3868

3867:                                             ; preds = %3794
  store i1 true, ptr %8, align 1
  store i32 1, ptr %18, align 4
  br label %3869

3868:                                             ; preds = %3794
  store i32 0, ptr %18, align 4
  br label %3869

3869:                                             ; preds = %3868, %3867
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  %3870 = load i32, ptr %18, align 4
  switch i32 %3870, label %3872 [
    i32 0, label %3871
  ]

3871:                                             ; preds = %3869
  store i32 0, ptr %18, align 4
  br label %3872

3872:                                             ; preds = %3871, %3869, %3793
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #7
  %3873 = load i32, ptr %18, align 4
  switch i32 %3873, label %3878 [
    i32 0, label %3874
    i32 11, label %3875
  ]

3874:                                             ; preds = %3872
  br label %3875

3875:                                             ; preds = %3874, %3872
  %3876 = load ptr, ptr %90, align 8, !tbaa !5
  %3877 = getelementptr inbounds double, ptr %3876, i32 1
  store ptr %3877, ptr %90, align 8, !tbaa !5
  br label %3781

3878:                                             ; preds = %3872, %3785
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  %3879 = load i32, ptr %18, align 4
  switch i32 %3879, label %3881 [
    i32 10, label %3880
  ]

3880:                                             ; preds = %3878
  store i32 0, ptr %18, align 4
  br label %3881

3881:                                             ; preds = %3880, %3878
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #7
  %3882 = load i32, ptr %18, align 4
  switch i32 %3882, label %3970 [
    i32 0, label %3883
    i32 1, label %3968
  ]

3883:                                             ; preds = %3881
  %3884 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 17
  %3885 = load double, ptr %3884, align 8, !tbaa !34
  %3886 = load double, ptr %15, align 8, !tbaa !9
  %3887 = fdiv double %3885, %3886
  %3888 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 1
  %3889 = load double, ptr %3888, align 8, !tbaa !14
  %3890 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 4
  %3891 = load double, ptr %3890, align 8, !tbaa !15
  %3892 = fadd double %3889, %3891
  %3893 = fmul double 2.000000e+00, %3892
  %3894 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3895 = load double, ptr %3894, align 8, !tbaa !19
  %3896 = call double @llvm.fmuladd.f64(double %3893, double %3895, double %3887)
  %3897 = load double, ptr %15, align 8, !tbaa !9
  %3898 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 11
  %3899 = load double, ptr %3898, align 8, !tbaa !16
  %3900 = fneg double %3897
  %3901 = call double @llvm.fmuladd.f64(double %3900, double %3899, double %3896)
  %3902 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 14
  %3903 = load double, ptr %3902, align 8, !tbaa !22
  %3904 = call double @llvm.fmuladd.f64(double -4.000000e+00, double %3903, double %3901)
  %3905 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3906 = load double, ptr %3905, align 8, !tbaa !32
  %3907 = load double, ptr %15, align 8, !tbaa !9
  %3908 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3909 = load double, ptr %3908, align 8, !tbaa !19
  %3910 = fneg double %3907
  %3911 = call double @llvm.fmuladd.f64(double %3910, double %3909, double %3906)
  %3912 = fmul double 4.000000e+00, %3911
  %3913 = fdiv double %3904, %3912
  %3914 = load ptr, ptr %10, align 8, !tbaa !5
  %3915 = getelementptr inbounds %"class.ruckig::Profile", ptr %3914, i32 0, i32 0
  %3916 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3915, i64 noundef 0) #7
  store double %3913, ptr %3916, align 8, !tbaa !9
  %3917 = load ptr, ptr %10, align 8, !tbaa !5
  %3918 = getelementptr inbounds %"class.ruckig::Profile", ptr %3917, i32 0, i32 0
  %3919 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3918, i64 noundef 1) #7
  store double 0.000000e+00, ptr %3919, align 8, !tbaa !9
  %3920 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 16
  %3921 = load double, ptr %3920, align 8, !tbaa !32
  %3922 = fneg double %3921
  %3923 = load double, ptr %15, align 8, !tbaa !9
  %3924 = fmul double 2.000000e+00, %3923
  %3925 = fdiv double %3922, %3924
  %3926 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3927 = load double, ptr %3926, align 8, !tbaa !19
  %3928 = fdiv double %3927, 2.000000e+00
  %3929 = fadd double %3925, %3928
  %3930 = load ptr, ptr %10, align 8, !tbaa !5
  %3931 = getelementptr inbounds %"class.ruckig::Profile", ptr %3930, i32 0, i32 0
  %3932 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3931, i64 noundef 2) #7
  store double %3929, ptr %3932, align 8, !tbaa !9
  %3933 = load ptr, ptr %10, align 8, !tbaa !5
  %3934 = getelementptr inbounds %"class.ruckig::Profile", ptr %3933, i32 0, i32 0
  %3935 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3934, i64 noundef 3) #7
  store double 0.000000e+00, ptr %3935, align 8, !tbaa !9
  %3936 = load ptr, ptr %10, align 8, !tbaa !5
  %3937 = getelementptr inbounds %"class.ruckig::Profile", ptr %3936, i32 0, i32 0
  %3938 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3937, i64 noundef 4) #7
  store double 0.000000e+00, ptr %3938, align 8, !tbaa !9
  %3939 = load ptr, ptr %10, align 8, !tbaa !5
  %3940 = getelementptr inbounds %"class.ruckig::Profile", ptr %3939, i32 0, i32 0
  %3941 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3940, i64 noundef 5) #7
  store double 0.000000e+00, ptr %3941, align 8, !tbaa !9
  %3942 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3943 = load double, ptr %3942, align 8, !tbaa !19
  %3944 = load ptr, ptr %10, align 8, !tbaa !5
  %3945 = getelementptr inbounds %"class.ruckig::Profile", ptr %3944, i32 0, i32 0
  %3946 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3945, i64 noundef 0) #7
  %3947 = load double, ptr %3946, align 8, !tbaa !9
  %3948 = load ptr, ptr %10, align 8, !tbaa !5
  %3949 = getelementptr inbounds %"class.ruckig::Profile", ptr %3948, i32 0, i32 0
  %3950 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3949, i64 noundef 2) #7
  %3951 = load double, ptr %3950, align 8, !tbaa !9
  %3952 = fadd double %3947, %3951
  %3953 = fsub double %3943, %3952
  %3954 = load ptr, ptr %10, align 8, !tbaa !5
  %3955 = getelementptr inbounds %"class.ruckig::Profile", ptr %3954, i32 0, i32 0
  %3956 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %3955, i64 noundef 6) #7
  store double %3953, ptr %3956, align 8, !tbaa !9
  %3957 = load ptr, ptr %10, align 8, !tbaa !5
  %3958 = getelementptr inbounds %"class.ruckig::PositionThirdOrderStep2", ptr %94, i32 0, i32 2
  %3959 = load double, ptr %3958, align 8, !tbaa !19
  %3960 = load double, ptr %15, align 8, !tbaa !9
  %3961 = load double, ptr %11, align 8, !tbaa !9
  %3962 = load double, ptr %12, align 8, !tbaa !9
  %3963 = load double, ptr %13, align 8, !tbaa !9
  %3964 = load double, ptr %14, align 8, !tbaa !9
  %3965 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %3957, double noundef %3959, double noundef %3960, double noundef %3961, double noundef %3962, double noundef %3963, double noundef %3964)
  br i1 %3965, label %3966, label %3967

3966:                                             ; preds = %3883
  store i1 true, ptr %8, align 1
  br label %3968

3967:                                             ; preds = %3883
  store i1 false, ptr %8, align 1
  br label %3968

3968:                                             ; preds = %3967, %3966, %3881, %3683, %3601, %2816, %1751, %1545, %999, %460, %187
  %3969 = load i1, ptr %8, align 1
  ret i1 %3969

3970:                                             ; preds = %3881, %3683, %3601, %2816, %1751, %1545, %999, %460, %187
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbddddddd(ptr noundef nonnull align 8 dereferenceable(572), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) #5 align 2

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { 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 #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { 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, !10, i64 0}
!12 = !{!"_ZTSN6ruckig23PositionThirdOrderStep2E", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !10, i64 256, !13, i64 264}
!13 = !{!"bool", !7, i64 0}
!14 = !{!12, !10, i64 8}
!15 = !{!12, !10, i64 32}
!16 = !{!12, !10, i64 88}
!17 = !{!12, !10, i64 152}
!18 = !{!12, !10, i64 80}
!19 = !{!12, !10, i64 16}
!20 = !{!12, !10, i64 24}
!21 = !{!12, !10, i64 96}
!22 = !{!12, !10, i64 112}
!23 = !{!12, !10, i64 120}
!24 = !{!12, !10, i64 256}
!25 = !{!12, !10, i64 240}
!26 = !{!12, !10, i64 168}
!27 = !{!12, !10, i64 208}
!28 = !{!12, !10, i64 200}
!29 = !{!12, !10, i64 160}
!30 = !{!12, !10, i64 176}
!31 = !{!12, !10, i64 216}
!32 = !{!12, !10, i64 128}
!33 = !{!12, !10, i64 248}
!34 = !{!12, !10, i64 136}
!35 = !{!12, !10, i64 104}
!36 = !{!12, !10, i64 184}
!37 = !{!12, !10, i64 224}
!38 = !{!12, !10, i64 192}
!39 = !{!12, !10, i64 232}


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

%"class.ruckig::roots::PositiveSet" = type { %"class.ruckig::roots::Set" }
%"class.ruckig::roots::Set" = type { %"struct.std::array.2", i64 }
%"struct.std::array.2" = type { [4 x double] }
%"class.ruckig::roots::PositiveSet.3" = type { %"class.ruckig::roots::Set.4" }
%"class.ruckig::roots::Set.4" = type { %"struct.std::array.5", i64 }
%"struct.std::array.5" = type { [3 x double] }

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #4 align 2

; 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 #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind noalias writable sret(%"class.ruckig::roots::PositiveSet") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ruckig5roots11solve_cubicEdddd(ptr dead_on_unwind noalias writable sret(%"class.ruckig::roots::PositiveSet.3") align 8, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm3EE5beginEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6ruckig5roots3SetIdLm3EE3endEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE1ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6ruckig23PositionThirdOrderStep29time_noneERNS_7ProfileEddddd(ptr noundef nonnull readonly align 8 dereferenceable(265) %0, ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6) local_unnamed_addr #6 align 2 {
  %8 = alloca %"struct.std::array.2", align 8
  %9 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %10 = alloca %"struct.std::array.2", align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %14 = alloca %"struct.std::array.2", align 8
  %15 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %16 = alloca %"struct.std::array.2", align 8
  %17 = alloca %"class.ruckig::roots::PositiveSet", align 8
  %18 = alloca %"struct.std::array.2", align 8
  %19 = alloca %"class.ruckig::roots::PositiveSet.3", align 8
  %20 = load double, ptr %0, align 8, !tbaa !5
  %21 = tail call noundef double @_ZSt3absd(double noundef %20)
  %22 = fcmp olt double %21, 0x3CB0000000000000
  br i1 %22, label %23, label %76

23:                                               ; preds = %7
  %24 = getelementptr inbounds i8, ptr %0, i64 8
  %25 = load double, ptr %24, align 8, !tbaa !11
  %26 = tail call noundef double @_ZSt3absd(double noundef %25)
  %27 = fcmp olt double %26, 0x3CB0000000000000
  br i1 %27, label %28, label %76

28:                                               ; preds = %23
  %29 = getelementptr inbounds i8, ptr %0, i64 32
  %30 = load double, ptr %29, align 8, !tbaa !12
  %31 = tail call noundef double @_ZSt3absd(double noundef %30)
  %32 = fcmp olt double %31, 0x3CB0000000000000
  br i1 %32, label %33, label %76

33:                                               ; preds = %28
  %34 = getelementptr inbounds i8, ptr %0, i64 88
  %35 = load double, ptr %34, align 8, !tbaa !13
  %36 = getelementptr inbounds i8, ptr %0, i64 152
  %37 = load double, ptr %36, align 8, !tbaa !14
  %38 = getelementptr inbounds i8, ptr %0, i64 80
  %39 = load double, ptr %38, align 8, !tbaa !15
  %40 = getelementptr inbounds i8, ptr %0, i64 16
  %41 = load double, ptr %40, align 8, !tbaa !16
  %42 = getelementptr inbounds i8, ptr %0, i64 24
  %43 = load double, ptr %42, align 8, !tbaa !17
  %44 = fneg double %41
  %45 = fmul double %43, %44
  %46 = tail call double @llvm.fmuladd.f64(double %39, double 4.000000e+00, double %45)
  %47 = tail call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %46)
  %48 = tail call double @llvm.fmuladd.f64(double %35, double %37, double %47)
  %49 = tail call double @sqrt(double noundef %48) #8
  %50 = load double, ptr %38, align 8, !tbaa !15
  %51 = load double, ptr %40, align 8, !tbaa !16
  %52 = load double, ptr %42, align 8, !tbaa !17
  %53 = fmul double %51, -2.000000e+00
  %54 = fmul double %53, %52
  %55 = tail call double @llvm.fmuladd.f64(double %50, double 4.000000e+00, double %54)
  %56 = fadd double %49, %55
  %57 = fmul double %56, 4.000000e+00
  %58 = getelementptr inbounds i8, ptr %0, i64 96
  %59 = load double, ptr %58, align 8, !tbaa !18
  %60 = fdiv double %57, %59
  %61 = fmul double %51, 2.500000e-01
  %62 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %61, ptr %62, align 8, !tbaa !19
  %63 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double 0.000000e+00, ptr %63, align 8, !tbaa !19
  %64 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  %65 = load double, ptr %64, align 8, !tbaa !19
  %66 = fmul double %65, 2.000000e+00
  %67 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %66, ptr %67, align 8, !tbaa !19
  %68 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double 0.000000e+00, ptr %68, align 8, !tbaa !19
  %69 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double 0.000000e+00, ptr %69, align 8, !tbaa !19
  %70 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %70, align 8, !tbaa !19
  %71 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  %72 = load double, ptr %71, align 8, !tbaa !19
  %73 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double %72, ptr %73, align 8, !tbaa !19
  %74 = load double, ptr %40, align 8, !tbaa !16
  %75 = tail call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbddddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %74, double noundef %60, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6)
  br i1 %75, label %1791, label %76

76:                                               ; preds = %33, %28, %23, %7
  %77 = getelementptr inbounds i8, ptr %0, i64 8
  %78 = load double, ptr %77, align 8, !tbaa !11
  %79 = tail call noundef double @_ZSt3absd(double noundef %78)
  %80 = fcmp olt double %79, 0x3CB0000000000000
  br i1 %80, label %81, label %205

81:                                               ; preds = %76
  %82 = getelementptr inbounds i8, ptr %0, i64 32
  %83 = load double, ptr %82, align 8, !tbaa !12
  %84 = tail call noundef double @_ZSt3absd(double noundef %83)
  %85 = fcmp olt double %84, 0x3CB0000000000000
  br i1 %85, label %86, label %205

86:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  %87 = getelementptr inbounds i8, ptr %0, i64 16
  %88 = load double, ptr %87, align 8, !tbaa !16
  %89 = fmul double %88, -2.000000e+00
  %90 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 0) #8
  store double %89, ptr %90, align 8, !tbaa !19
  %91 = getelementptr inbounds i8, ptr %0, i64 112
  %92 = load double, ptr %91, align 8, !tbaa !20
  %93 = fmul double %92, 2.000000e+00
  %94 = fdiv double %93, %6
  %95 = getelementptr inbounds i8, ptr %0, i64 88
  %96 = load double, ptr %95, align 8, !tbaa !13
  %97 = fadd double %96, %94
  %98 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 1) #8
  store double %97, ptr %98, align 8, !tbaa !19
  %99 = getelementptr inbounds i8, ptr %0, i64 80
  %100 = load double, ptr %99, align 8, !tbaa !15
  %101 = load double, ptr %87, align 8, !tbaa !16
  %102 = getelementptr inbounds i8, ptr %0, i64 24
  %103 = load double, ptr %102, align 8, !tbaa !17
  %104 = fneg double %101
  %105 = call double @llvm.fmuladd.f64(double %104, double %103, double %100)
  %106 = fmul double %105, 4.000000e+00
  %107 = fdiv double %106, %6
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 2) #8
  store double %107, ptr %108, align 8, !tbaa !19
  %109 = getelementptr inbounds i8, ptr %0, i64 120
  %110 = load double, ptr %109, align 8, !tbaa !21
  %111 = load double, ptr %87, align 8, !tbaa !16
  %112 = fmul double %111, %6
  %113 = getelementptr inbounds i8, ptr %0, i64 256
  %114 = load double, ptr %113, align 8, !tbaa !22
  %115 = call double @llvm.fmuladd.f64(double %112, double %114, double %110)
  %116 = getelementptr inbounds i8, ptr %0, i64 240
  %117 = load double, ptr %116, align 8, !tbaa !23
  %118 = fdiv double %115, %117
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 3) #8
  store double %118, ptr %119, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #8
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind nonnull writable sret(%"class.ruckig::roots::PositiveSet") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %8)
  %120 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %9)
  %121 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %9)
  %.not721 = icmp eq ptr %120, %121
  br i1 %.not721, label %.thread683, label %.lr.ph

.lr.ph:                                           ; preds = %86
  %122 = fmul double %6, 2.000000e+00
  br label %123

.thread683:                                       ; preds = %202, %86
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %205

123:                                              ; preds = %.lr.ph, %202
  %.0644722 = phi ptr [ %120, %.lr.ph ], [ %203, %202 ]
  %124 = load double, ptr %.0644722, align 8, !tbaa !19
  %125 = load double, ptr %87, align 8, !tbaa !16
  %126 = fmul double %125, 5.000000e-01
  %127 = fcmp ogt double %124, %126
  br i1 %127, label %202, label %128

128:                                              ; preds = %123
  %129 = load double, ptr %77, align 8, !tbaa !11
  %130 = fsub double %4, %129
  %131 = fdiv double %130, %6
  %132 = fcmp ogt double %124, %131
  br i1 %132, label %202, label %133

133:                                              ; preds = %128
  %134 = fmul double %124, %6
  %135 = fsub double %124, %125
  %136 = load double, ptr %91, align 8, !tbaa !20
  %137 = call double @llvm.fmuladd.f64(double %134, double %135, double %136)
  %138 = fneg double %125
  %139 = call double @llvm.fmuladd.f64(double %124, double 2.000000e+00, double %138)
  %140 = fmul double %139, %6
  %141 = fdiv double %137, %140
  %142 = fmul double %122, %124
  %143 = load double, ptr %95, align 8, !tbaa !13
  %144 = fmul double %143, %6
  %145 = call double @llvm.fmuladd.f64(double %142, double %135, double %144)
  %146 = call double @llvm.fmuladd.f64(double %136, double -2.000000e+00, double %145)
  %147 = fmul double %139, %140
  %148 = fdiv double %146, %147
  %149 = load double, ptr %99, align 8, !tbaa !15
  %150 = fmul double %125, 2.000000e+00
  %151 = load double, ptr %0, align 8, !tbaa !5
  %152 = fmul double %150, %151
  %153 = call double @llvm.fmuladd.f64(double %149, double -2.000000e+00, double %152)
  %154 = fmul double %141, %141
  %155 = fmul double %154, %6
  %156 = call double @llvm.fmuladd.f64(double %124, double -2.000000e+00, double %125)
  %157 = call double @llvm.fmuladd.f64(double %155, double %156, double %153)
  %158 = fmul double %125, %6
  %159 = fmul double %141, 2.000000e+00
  %160 = fneg double %124
  %161 = fmul double %124, %160
  %162 = call double @llvm.fmuladd.f64(double %159, double %124, double %161)
  %163 = fsub double %141, %124
  %164 = fneg double %163
  %165 = call double @llvm.fmuladd.f64(double %164, double %125, double %162)
  %166 = call double @llvm.fmuladd.f64(double %158, double %165, double %157)
  %167 = fmul double %166, 5.000000e-01
  %168 = fmul double %158, %139
  %169 = fadd double %148, -1.000000e+00
  %170 = fmul double %168, %169
  %171 = fmul double %170, 5.000000e-01
  %172 = fmul double %141, %6
  %173 = fneg double %139
  %174 = call double @llvm.fmuladd.f64(double %173, double %148, double %125)
  %175 = fsub double %174, %141
  %176 = call double @llvm.fmuladd.f64(double %172, double %175, double %171)
  %177 = fdiv double %167, %176
  %178 = fsub double %124, %177
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %178, ptr %179, align 8, !tbaa !19
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double 0.000000e+00, ptr %180, align 8, !tbaa !19
  %181 = fmul double %178, %6
  %182 = load double, ptr %87, align 8, !tbaa !16
  %183 = fsub double %178, %182
  %184 = load double, ptr %91, align 8, !tbaa !20
  %185 = call double @llvm.fmuladd.f64(double %181, double %183, double %184)
  %186 = fneg double %182
  %187 = call double @llvm.fmuladd.f64(double %178, double 2.000000e+00, double %186)
  %188 = fmul double %187, %6
  %189 = fdiv double %185, %188
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %189, ptr %190, align 8, !tbaa !19
  %191 = load double, ptr %87, align 8, !tbaa !16
  %192 = call double @llvm.fmuladd.f64(double %178, double -2.000000e+00, double %191)
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double %192, ptr %193, align 8, !tbaa !19
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  %195 = load double, ptr %194, align 8, !tbaa !19
  %196 = fsub double %178, %195
  %197 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double %196, ptr %197, align 8, !tbaa !19
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %198, align 8, !tbaa !19
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double 0.000000e+00, ptr %199, align 8, !tbaa !19
  %200 = load double, ptr %87, align 8, !tbaa !16
  %201 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %200, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br i1 %201, label %204, label %202

202:                                              ; preds = %128, %123, %133
  %203 = getelementptr inbounds i8, ptr %.0644722, i64 8
  %.not = icmp eq ptr %203, %121
  br i1 %.not, label %.thread683, label %123

204:                                              ; preds = %133
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %1791

205:                                              ; preds = %.thread683, %81, %76
  %206 = getelementptr inbounds i8, ptr %0, i64 240
  %207 = load double, ptr %206, align 8, !tbaa !23
  %208 = fmul double %207, 2.000000e+00
  %209 = getelementptr inbounds i8, ptr %0, i64 168
  %210 = load double, ptr %209, align 8, !tbaa !24
  %211 = getelementptr inbounds i8, ptr %0, i64 208
  %212 = load double, ptr %211, align 8, !tbaa !25
  %213 = fsub double %210, %212
  %214 = getelementptr inbounds i8, ptr %0, i64 200
  %215 = load double, ptr %214, align 8, !tbaa !26
  %216 = getelementptr inbounds i8, ptr %0, i64 16
  %217 = load double, ptr %216, align 8, !tbaa !16
  %218 = fmul double %215, -3.000000e+00
  %219 = fmul double %218, %6
  %220 = call double @llvm.fmuladd.f64(double %219, double %217, double %213)
  %221 = getelementptr inbounds i8, ptr %0, i64 32
  %222 = load double, ptr %221, align 8, !tbaa !12
  %223 = fmul double %222, 9.000000e+00
  %224 = fmul double %207, %223
  %225 = getelementptr inbounds i8, ptr %0, i64 88
  %226 = load double, ptr %225, align 8, !tbaa !13
  %227 = call double @llvm.fmuladd.f64(double %224, double %226, double %220)
  %228 = getelementptr inbounds i8, ptr %0, i64 160
  %229 = load double, ptr %228, align 8, !tbaa !27
  %230 = call double @llvm.fmuladd.f64(double %6, double %217, double %222)
  %231 = fmul double %229, -3.000000e+00
  %232 = call double @llvm.fmuladd.f64(double %231, double %230, double %227)
  %233 = load double, ptr %77, align 8, !tbaa !11
  %234 = fmul double %233, 3.000000e+00
  %235 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %230)
  %236 = call double @llvm.fmuladd.f64(double %234, double %235, double %232)
  %237 = load double, ptr %206, align 8, !tbaa !23
  %238 = fmul double %237, 3.000000e+00
  %239 = getelementptr inbounds i8, ptr %0, i64 80
  %240 = load double, ptr %239, align 8, !tbaa !15
  %241 = load double, ptr %225, align 8, !tbaa !13
  %242 = fmul double %241, %6
  %243 = load double, ptr %216, align 8, !tbaa !16
  %244 = fmul double %242, %243
  %245 = call double @llvm.fmuladd.f64(double %240, double 8.000000e+00, double %244)
  %246 = getelementptr inbounds i8, ptr %0, i64 24
  %247 = load double, ptr %246, align 8, !tbaa !17
  %248 = fmul double %243, -8.000000e+00
  %249 = call double @llvm.fmuladd.f64(double %248, double %247, double %245)
  %250 = call double @llvm.fmuladd.f64(double %238, double %249, double %236)
  %251 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %250)
  %252 = load double, ptr %228, align 8, !tbaa !27
  %253 = load double, ptr %214, align 8, !tbaa !26
  %254 = fadd double %252, %253
  %255 = load double, ptr %221, align 8, !tbaa !12
  %256 = load double, ptr %216, align 8, !tbaa !16
  %257 = fmul double %255, -2.000000e+00
  %258 = fmul double %257, %6
  %259 = call double @llvm.fmuladd.f64(double %258, double %256, double %254)
  %260 = load double, ptr %77, align 8, !tbaa !11
  %261 = call double @llvm.fmuladd.f64(double %6, double %256, double %255)
  %262 = fmul double %260, -2.000000e+00
  %263 = call double @llvm.fmuladd.f64(double %262, double %261, double %259)
  %264 = load double, ptr %225, align 8, !tbaa !13
  %265 = load double, ptr %0, align 8, !tbaa !5
  %266 = fmul double %265, 4.000000e+00
  %267 = call double @llvm.fmuladd.f64(double %6, double %264, double %266)
  %268 = load double, ptr %246, align 8, !tbaa !17
  %269 = call double @llvm.fmuladd.f64(double %268, double -4.000000e+00, double %267)
  %270 = fneg double %6
  %271 = call double @llvm.fmuladd.f64(double %270, double %269, double %263)
  %272 = getelementptr inbounds i8, ptr %0, i64 176
  %273 = load double, ptr %272, align 8, !tbaa !28
  %274 = getelementptr inbounds i8, ptr %0, i64 216
  %275 = load double, ptr %274, align 8, !tbaa !29
  %276 = fadd double %273, %275
  %277 = load double, ptr %211, align 8, !tbaa !25
  %278 = fmul double %277, 4.000000e+00
  %279 = fmul double %278, %6
  %280 = call double @llvm.fmuladd.f64(double %279, double %256, double %276)
  %281 = fmul double %253, 6.000000e+00
  %282 = load double, ptr %206, align 8, !tbaa !23
  %283 = fmul double %281, %282
  %284 = call double @llvm.fmuladd.f64(double %283, double %264, double %280)
  %285 = fmul double %282, -3.000000e+00
  %286 = fmul double %282, %285
  %287 = fmul double %264, %286
  %288 = call double @llvm.fmuladd.f64(double %287, double %264, double %284)
  %289 = load double, ptr %209, align 8, !tbaa !24
  %290 = fmul double %289, -4.000000e+00
  %291 = call double @llvm.fmuladd.f64(double %290, double %261, double %288)
  %292 = fmul double %252, 6.000000e+00
  %293 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %261)
  %294 = call double @llvm.fmuladd.f64(double %292, double %293, double %291)
  %295 = load double, ptr %221, align 8, !tbaa !12
  %296 = load double, ptr %206, align 8, !tbaa !23
  %297 = load double, ptr %239, align 8, !tbaa !15
  %298 = load double, ptr %225, align 8, !tbaa !13
  %299 = fmul double %298, %6
  %300 = load double, ptr %216, align 8, !tbaa !16
  %301 = fmul double %299, %300
  %302 = call double @llvm.fmuladd.f64(double %297, double 8.000000e+00, double %301)
  %303 = load double, ptr %0, align 8, !tbaa !5
  %304 = fmul double %300, -8.000000e+00
  %305 = call double @llvm.fmuladd.f64(double %304, double %303, double %302)
  %306 = fmul double %295, -1.200000e+01
  %307 = fmul double %306, %296
  %308 = call double @llvm.fmuladd.f64(double %307, double %305, double %294)
  %309 = fmul double %296, 4.800000e+01
  %310 = getelementptr inbounds i8, ptr %0, i64 120
  %311 = load double, ptr %310, align 8, !tbaa !21
  %312 = call double @llvm.fmuladd.f64(double %309, double %311, double %308)
  %313 = fmul double %309, %6
  %314 = fmul double %313, %300
  %315 = getelementptr inbounds i8, ptr %0, i64 256
  %316 = load double, ptr %315, align 8, !tbaa !22
  %317 = call double @llvm.fmuladd.f64(double %314, double %316, double %312)
  %318 = load double, ptr %77, align 8, !tbaa !11
  %319 = load double, ptr %211, align 8, !tbaa !25
  %320 = load double, ptr %214, align 8, !tbaa !26
  %321 = fmul double %320, 3.000000e+00
  %322 = fmul double %321, %6
  %323 = call double @llvm.fmuladd.f64(double %322, double %300, double %319)
  %324 = fmul double %295, -9.000000e+00
  %325 = fmul double %324, %296
  %326 = call double @llvm.fmuladd.f64(double %325, double %298, double %323)
  %327 = load double, ptr %246, align 8, !tbaa !17
  %328 = call double @llvm.fmuladd.f64(double %304, double %327, double %302)
  %329 = fmul double %296, -3.000000e+00
  %330 = call double @llvm.fmuladd.f64(double %329, double %328, double %326)
  %331 = fmul double %318, -4.000000e+00
  %332 = call double @llvm.fmuladd.f64(double %331, double %330, double %317)
  %333 = fmul double %271, -3.000000e+00
  %334 = fmul double %333, %332
  %335 = call double @llvm.fmuladd.f64(double %251, double 2.000000e+00, double %334)
  %336 = fmul double %208, %335
  %337 = call double @sqrt(double noundef %336) #8
  %338 = fdiv double %337, %6
  %339 = fmul double %6, 1.200000e+01
  %340 = load double, ptr %228, align 8, !tbaa !27
  %341 = fneg double %340
  %342 = load double, ptr %214, align 8, !tbaa !26
  %343 = fsub double %341, %342
  %344 = load double, ptr %221, align 8, !tbaa !12
  %345 = load double, ptr %216, align 8, !tbaa !16
  %346 = load double, ptr %77, align 8, !tbaa !11
  %347 = call double @llvm.fmuladd.f64(double %6, double %345, double %344)
  %348 = load double, ptr %225, align 8, !tbaa !13
  %349 = load double, ptr %0, align 8, !tbaa !5
  %350 = fmul double %349, 4.000000e+00
  %351 = call double @llvm.fmuladd.f64(double %6, double %348, double %350)
  %352 = load double, ptr %246, align 8, !tbaa !17
  %353 = call double @llvm.fmuladd.f64(double %352, double -4.000000e+00, double %351)
  %354 = load double, ptr %209, align 8, !tbaa !24
  %355 = load double, ptr %211, align 8, !tbaa !25
  %356 = fmul double %355, 4.000000e+00
  %357 = call double @llvm.fmuladd.f64(double %354, double -4.000000e+00, double %356)
  %358 = fmul double %340, 1.200000e+01
  %359 = call double @llvm.fmuladd.f64(double %358, double %344, double %357)
  %360 = fmul double %346, 1.200000e+01
  %361 = fneg double %360
  %362 = call double @llvm.fmuladd.f64(double %361, double %342, double %359)
  %363 = load double, ptr %206, align 8, !tbaa !23
  %364 = fmul double %363, 4.800000e+01
  %365 = load double, ptr %239, align 8, !tbaa !15
  %366 = call double @llvm.fmuladd.f64(double %364, double %365, double %362)
  %367 = fsub double %340, %342
  %368 = fmul double %367, 1.200000e+01
  %369 = fmul double %368, %6
  %370 = call double @llvm.fmuladd.f64(double %369, double %345, double %366)
  %371 = fadd double %349, %352
  %372 = fmul double %363, -2.400000e+01
  %373 = fmul double %345, %372
  %374 = call double @llvm.fmuladd.f64(double %373, double %371, double %370)
  %375 = getelementptr inbounds i8, ptr %0, i64 128
  %376 = load double, ptr %375, align 8, !tbaa !30
  %377 = fmul double %376, 2.400000e+01
  %378 = fmul double %377, %6
  %379 = getelementptr inbounds i8, ptr %0, i64 112
  %380 = load double, ptr %379, align 8, !tbaa !20
  %381 = call double @llvm.fmuladd.f64(double %378, double %380, double %374)
  %382 = fmul double %355, -2.000000e+00
  %383 = call double @llvm.fmuladd.f64(double %354, double 2.000000e+00, double %382)
  %384 = fmul double %340, -6.000000e+00
  %385 = call double @llvm.fmuladd.f64(double %384, double %344, double %383)
  %386 = fmul double %346, 6.000000e+00
  %387 = call double @llvm.fmuladd.f64(double %386, double %342, double %385)
  %388 = fneg double %365
  %389 = call double @llvm.fmuladd.f64(double %345, double %352, double %388)
  %390 = fneg double %364
  %391 = call double @llvm.fmuladd.f64(double %390, double %389, double %387)
  %392 = fadd double %340, %342
  %393 = fmul double %344, %360
  %394 = call double @llvm.fmuladd.f64(double %344, double 3.000000e+00, double %346)
  %395 = call double @llvm.fmuladd.f64(double %6, double %345, double %394)
  %396 = fmul double %395, 6.000000e+00
  %397 = fmul double %348, %396
  %398 = insertelement <2 x double> poison, double %392, i64 0
  %399 = insertelement <2 x double> %398, double %344, i64 1
  %400 = fmul <2 x double> %399, <double -6.000000e+00, double 2.000000e+00>
  %401 = insertelement <2 x double> poison, double %6, i64 0
  %402 = shufflevector <2 x double> %401, <2 x double> poison, <2 x i32> zeroinitializer
  %403 = fmul <2 x double> %400, %402
  %404 = insertelement <2 x double> poison, double %345, i64 0
  %405 = shufflevector <2 x double> %404, <2 x double> poison, <2 x i32> zeroinitializer
  %406 = insertelement <2 x double> poison, double %391, i64 0
  %407 = insertelement <2 x double> %406, double %343, i64 1
  %408 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %403, <2 x double> %405, <2 x double> %407)
  %409 = insertelement <2 x double> poison, double %393, i64 0
  %410 = insertelement <2 x double> %409, double %346, i64 1
  %411 = insertelement <2 x double> %402, double 2.000000e+00, i64 1
  %412 = fmul <2 x double> %410, %411
  %413 = insertelement <2 x double> %405, double %347, i64 1
  %414 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %412, <2 x double> %413, <2 x double> %408)
  %415 = insertelement <2 x double> %402, double %397, i64 0
  %416 = insertelement <2 x double> poison, double %363, i64 0
  %417 = insertelement <2 x double> %416, double %353, i64 1
  %418 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %415, <2 x double> %417, <2 x double> %414)
  %419 = extractelement <2 x double> %418, i64 0
  %420 = fsub double %419, %338
  %421 = extractelement <2 x double> %418, i64 1
  %422 = fmul double %421, %339
  %423 = fdiv double %420, %422
  %424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %423, ptr %424, align 8, !tbaa !19
  %425 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double 0.000000e+00, ptr %425, align 8, !tbaa !19
  %426 = fadd double %338, %381
  %427 = fdiv double %426, %422
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %427, ptr %428, align 8, !tbaa !19
  %429 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double 0.000000e+00, ptr %429, align 8, !tbaa !19
  %430 = fsub double %338, %381
  %431 = fdiv double %430, %422
  %432 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double %431, ptr %432, align 8, !tbaa !19
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %433, align 8, !tbaa !19
  %434 = fneg double %387
  %435 = load double, ptr %206, align 8, !tbaa !23
  %436 = fmul double %435, 4.800000e+01
  %437 = load double, ptr %216, align 8, !tbaa !16
  %438 = load double, ptr %0, align 8, !tbaa !5
  %439 = load double, ptr %239, align 8, !tbaa !15
  %440 = fneg double %439
  %441 = call double @llvm.fmuladd.f64(double %437, double %438, double %440)
  %442 = call double @llvm.fmuladd.f64(double %436, double %441, double %434)
  %443 = load double, ptr %228, align 8, !tbaa !27
  %444 = load double, ptr %214, align 8, !tbaa !26
  %445 = fadd double %443, %444
  %446 = fmul double %445, -6.000000e+00
  %447 = fmul double %446, %6
  %448 = call double @llvm.fmuladd.f64(double %447, double %437, double %442)
  %449 = load double, ptr %77, align 8, !tbaa !11
  %450 = fmul double %449, 1.200000e+01
  %451 = load double, ptr %221, align 8, !tbaa !12
  %452 = fmul double %450, %451
  %453 = fmul double %452, %6
  %454 = call double @llvm.fmuladd.f64(double %453, double %437, double %448)
  %455 = call double @llvm.fmuladd.f64(double %449, double 3.000000e+00, double %451)
  %456 = call double @llvm.fmuladd.f64(double %6, double %437, double %455)
  %457 = fmul double %456, 6.000000e+00
  %458 = load double, ptr %225, align 8, !tbaa !13
  %459 = fmul double %458, %457
  %460 = call double @llvm.fmuladd.f64(double %459, double %435, double %454)
  %461 = fsub double %460, %338
  %462 = fdiv double %461, %422
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double %462, ptr %463, align 8, !tbaa !19
  %464 = load double, ptr %216, align 8, !tbaa !16
  %465 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE1ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %464, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br i1 %465, label %1791, label %466

466:                                              ; preds = %205
  %467 = load double, ptr %221, align 8, !tbaa !12
  %468 = load double, ptr %216, align 8, !tbaa !16
  %469 = call double @llvm.fmuladd.f64(double %6, double %468, double %467)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  %470 = load double, ptr %375, align 8, !tbaa !30
  %471 = call double @llvm.fmuladd.f64(double %6, double %468, double %470)
  %472 = fmul double %471, -2.000000e+00
  %473 = fdiv double %472, %6
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef 0) #8
  store double %473, ptr %474, align 8, !tbaa !19
  %475 = load double, ptr %228, align 8, !tbaa !27
  %476 = load double, ptr %214, align 8, !tbaa !26
  %477 = fadd double %475, %476
  %478 = load double, ptr %221, align 8, !tbaa !12
  %479 = load double, ptr %216, align 8, !tbaa !16
  %480 = load double, ptr %379, align 8, !tbaa !20
  %481 = call double @llvm.fmuladd.f64(double %478, double %479, double %480)
  %482 = call double @llvm.fmuladd.f64(double %6, double %481, double %477)
  %483 = load double, ptr %77, align 8, !tbaa !11
  %484 = fmul double %483, -2.000000e+00
  %485 = call double @llvm.fmuladd.f64(double %484, double %469, double %482)
  %486 = fmul double %485, 2.000000e+00
  %487 = load double, ptr %206, align 8, !tbaa !23
  %488 = fdiv double %486, %487
  %489 = load double, ptr %225, align 8, !tbaa !13
  %490 = fadd double %489, %488
  %491 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef 1) #8
  store double %490, ptr %491, align 8, !tbaa !19
  %492 = load double, ptr %209, align 8, !tbaa !24
  %493 = load double, ptr %211, align 8, !tbaa !25
  %494 = fsub double %492, %493
  %495 = load double, ptr %214, align 8, !tbaa !26
  %496 = load double, ptr %216, align 8, !tbaa !16
  %497 = fmul double %495, -3.000000e+00
  %498 = fmul double %497, %6
  %499 = call double @llvm.fmuladd.f64(double %498, double %496, double %494)
  %500 = load double, ptr %77, align 8, !tbaa !11
  %501 = fmul double %500, 3.000000e+00
  %502 = fmul double %469, %501
  %503 = fsub double %469, %500
  %504 = call double @llvm.fmuladd.f64(double %502, double %503, double %499)
  %505 = load double, ptr %206, align 8, !tbaa !23
  %506 = load double, ptr %239, align 8, !tbaa !15
  %507 = fneg double %506
  %508 = load double, ptr %246, align 8, !tbaa !17
  %509 = call double @llvm.fmuladd.f64(double %496, double %508, double %507)
  %510 = fmul double %505, -6.000000e+00
  %511 = call double @llvm.fmuladd.f64(double %510, double %509, double %504)
  %512 = fmul double %511, 2.000000e+00
  %513 = fmul double %505, 3.000000e+00
  %514 = fmul double %513, %6
  %515 = fdiv double %512, %514
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef 2) #8
  store double %515, ptr %516, align 8, !tbaa !19
  %517 = load double, ptr %272, align 8, !tbaa !28
  %518 = load double, ptr %274, align 8, !tbaa !29
  %519 = fadd double %517, %518
  %520 = load double, ptr %211, align 8, !tbaa !25
  %521 = fmul double %520, 4.000000e+00
  %522 = fmul double %521, %6
  %523 = load double, ptr %216, align 8, !tbaa !16
  %524 = call double @llvm.fmuladd.f64(double %522, double %523, double %519)
  %525 = load double, ptr %209, align 8, !tbaa !24
  %526 = fmul double %525, -4.000000e+00
  %527 = call double @llvm.fmuladd.f64(double %526, double %469, double %524)
  %528 = load double, ptr %228, align 8, !tbaa !27
  %529 = fmul double %528, 6.000000e+00
  %530 = fmul double %469, %529
  %531 = call double @llvm.fmuladd.f64(double %530, double %469, double %527)
  %532 = load double, ptr %206, align 8, !tbaa !23
  %533 = fmul double %532, 2.400000e+01
  %534 = load double, ptr %221, align 8, !tbaa !12
  %535 = fmul double %533, %534
  %536 = getelementptr inbounds i8, ptr %0, i64 248
  %537 = load double, ptr %536, align 8, !tbaa !31
  %538 = call double @llvm.fmuladd.f64(double %535, double %537, double %531)
  %539 = load double, ptr %77, align 8, !tbaa !11
  %540 = load double, ptr %214, align 8, !tbaa !26
  %541 = fmul double %540, 3.000000e+00
  %542 = fmul double %541, %6
  %543 = call double @llvm.fmuladd.f64(double %542, double %523, double %520)
  %544 = fmul double %532, 6.000000e+00
  %545 = load double, ptr %239, align 8, !tbaa !15
  %546 = fneg double %545
  %547 = load double, ptr %246, align 8, !tbaa !17
  %548 = call double @llvm.fmuladd.f64(double %523, double %547, double %546)
  %549 = call double @llvm.fmuladd.f64(double %544, double %548, double %543)
  %550 = fmul double %539, -4.000000e+00
  %551 = call double @llvm.fmuladd.f64(double %550, double %549, double %538)
  %552 = fmul double %544, %540
  %553 = load double, ptr %225, align 8, !tbaa !13
  %554 = call double @llvm.fmuladd.f64(double %552, double %553, double %551)
  %555 = fmul double %532, 1.200000e+01
  %556 = load double, ptr %310, align 8, !tbaa !21
  %557 = fmul double %523, %6
  %558 = load double, ptr %315, align 8, !tbaa !22
  %559 = call double @llvm.fmuladd.f64(double %557, double %558, double %556)
  %560 = call double @llvm.fmuladd.f64(double %555, double %559, double %554)
  %561 = fmul double %532, %555
  %562 = fdiv double %560, %561
  %563 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef 3) #8
  store double %562, ptr %563, align 8, !tbaa !19
  %564 = load double, ptr %375, align 8, !tbaa !30
  %565 = fdiv double %564, %6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %566 = load double, ptr %77, align 8, !tbaa !11
  %567 = fsub double %4, %566
  %568 = fdiv double %567, %6
  store double %568, ptr %11, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %569 = load double, ptr %216, align 8, !tbaa !16
  %570 = fadd double %565, %569
  %571 = fmul double %570, 5.000000e-01
  store double %571, ptr %12, align 8, !tbaa !19
  %572 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12)
  %573 = load double, ptr %572, align 8, !tbaa !19
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #8
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind nonnull writable sret(%"class.ruckig::roots::PositiveSet") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %10)
  %574 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %13)
  %575 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %13)
  %.not655723 = icmp eq ptr %574, %575
  br i1 %.not655723, label %.._crit_edge_crit_edge, label %.lr.ph725

.._crit_edge_crit_edge:                           ; preds = %466
  %.pre = fmul double %6, 2.000000e+00
  %.pre741 = fneg double %.pre
  br label %._crit_edge

.lr.ph725:                                        ; preds = %466
  %576 = getelementptr inbounds i8, ptr %0, i64 136
  %577 = fmul double %6, 2.000000e+00
  %578 = fneg double %577
  br label %579

579:                                              ; preds = %.lr.ph725, %708
  %.0646724 = phi ptr [ %574, %.lr.ph725 ], [ %709, %708 ]
  %580 = load double, ptr %.0646724, align 8, !tbaa !19
  %581 = fcmp olt double %580, %565
  %582 = fcmp ogt double %580, %573
  %or.cond = select i1 %581, i1 true, i1 %582
  br i1 %or.cond, label %708, label %583

583:                                              ; preds = %579
  %584 = load double, ptr %216, align 8, !tbaa !16
  %585 = fneg double %584
  %586 = call double @llvm.fmuladd.f64(double %580, double 2.000000e+00, double %585)
  %587 = load double, ptr %375, align 8, !tbaa !30
  %588 = fneg double %587
  %589 = call double @llvm.fmuladd.f64(double %6, double %586, double %588)
  %590 = load double, ptr %576, align 8, !tbaa !32
  %591 = load double, ptr %221, align 8, !tbaa !12
  %592 = fmul double %591, -2.000000e+00
  %593 = fmul double %592, %6
  %594 = call double @llvm.fmuladd.f64(double %593, double %580, double %590)
  %595 = load double, ptr %77, align 8, !tbaa !11
  %596 = fmul double %595, 2.000000e+00
  %597 = fmul double %596, %6
  %598 = fsub double %580, %584
  %599 = call double @llvm.fmuladd.f64(double %597, double %598, double %594)
  %600 = fmul double %580, %6
  %601 = load double, ptr %379, align 8, !tbaa !20
  %602 = call double @llvm.fmuladd.f64(double %600, double %598, double %601)
  %603 = call double @llvm.fmuladd.f64(double %577, double %602, double %599)
  %604 = fmul double %577, %589
  %605 = fdiv double %603, %604
  %606 = fneg double %590
  %607 = load double, ptr %206, align 8, !tbaa !23
  %608 = fmul double %607, 2.000000e+00
  %609 = load double, ptr %225, align 8, !tbaa !13
  %610 = call double @llvm.fmuladd.f64(double %580, double %598, double %609)
  %611 = call double @llvm.fmuladd.f64(double %608, double %610, double %606)
  %612 = fadd double %591, %595
  %613 = fmul double %612, %6
  %614 = call double @llvm.fmuladd.f64(double %613, double %584, double %611)
  %615 = call double @llvm.fmuladd.f64(double %588, double %589, double %614)
  %616 = call double @llvm.fmuladd.f64(double %578, double %601, double %615)
  %617 = fmul double %589, %589
  %618 = fdiv double %616, %617
  %619 = load double, ptr %209, align 8, !tbaa !24
  %620 = load double, ptr %211, align 8, !tbaa !25
  %621 = fsub double %620, %619
  %622 = fmul double %590, 3.000000e+00
  %623 = fmul double %622, %6
  %624 = fsub double %605, %580
  %625 = call double @llvm.fmuladd.f64(double %623, double %624, double %621)
  %626 = fmul double %587, 3.000000e+00
  %627 = fmul double %626, %607
  %628 = fmul double %627, %624
  %629 = call double @llvm.fmuladd.f64(double %628, double %624, double %625)
  %630 = fmul double %595, -3.000000e+00
  %631 = fmul double %591, %630
  %632 = call double @llvm.fmuladd.f64(double %631, double %587, double %629)
  %633 = fmul double %607, 3.000000e+00
  %634 = load double, ptr %239, align 8, !tbaa !15
  %635 = fmul double %634, -2.000000e+00
  %636 = call double @llvm.fmuladd.f64(double %595, double %609, double %635)
  %637 = fmul double %584, 2.000000e+00
  %638 = load double, ptr %0, align 8, !tbaa !5
  %639 = call double @llvm.fmuladd.f64(double %637, double %638, double %636)
  %640 = fmul double %605, %605
  %641 = fmul double %640, %6
  %642 = call double @llvm.fmuladd.f64(double %580, double -2.000000e+00, double %584)
  %643 = call double @llvm.fmuladd.f64(double %641, double %642, double %639)
  %644 = fmul double %584, %6
  %645 = fmul double %605, 2.000000e+00
  %646 = fneg double %580
  %647 = fmul double %580, %646
  %648 = call double @llvm.fmuladd.f64(double %645, double %580, double %647)
  %649 = fneg double %624
  %650 = call double @llvm.fmuladd.f64(double %649, double %584, double %648)
  %651 = call double @llvm.fmuladd.f64(double %644, double %650, double %643)
  %652 = call double @llvm.fmuladd.f64(double %633, double %651, double %632)
  %653 = fmul double %607, 6.000000e+00
  %654 = fdiv double %652, %653
  %655 = call double @llvm.fmuladd.f64(double %6, double %584, double %588)
  %656 = fmul double %589, %655
  %657 = fadd double %618, -1.000000e+00
  %658 = fmul double %656, %657
  %659 = fdiv double %658, %577
  %660 = fsub double %584, %605
  %661 = call double @llvm.fmuladd.f64(double %6, double %660, double %588)
  %662 = fneg double %589
  %663 = call double @llvm.fmuladd.f64(double %662, double %618, double %661)
  %664 = call double @llvm.fmuladd.f64(double %605, double %663, double %659)
  %665 = fdiv double %654, %664
  %666 = fsub double %580, %665
  %667 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %666, ptr %667, align 8, !tbaa !19
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double 0.000000e+00, ptr %668, align 8, !tbaa !19
  %669 = load double, ptr %576, align 8, !tbaa !32
  %670 = load double, ptr %77, align 8, !tbaa !11
  %671 = fneg double %670
  %672 = load double, ptr %216, align 8, !tbaa !16
  %673 = load double, ptr %375, align 8, !tbaa !30
  %674 = fneg double %673
  %675 = fmul double %666, %674
  %676 = call double @llvm.fmuladd.f64(double %671, double %672, double %675)
  %677 = fmul double %666, %6
  %678 = fsub double %666, %672
  %679 = call double @llvm.fmuladd.f64(double %677, double %678, double %676)
  %680 = load double, ptr %379, align 8, !tbaa !20
  %681 = fadd double %680, %679
  %682 = call double @llvm.fmuladd.f64(double %577, double %681, double %669)
  %683 = fneg double %672
  %684 = call double @llvm.fmuladd.f64(double %666, double 2.000000e+00, double %683)
  %685 = call double @llvm.fmuladd.f64(double %6, double %684, double %674)
  %686 = fmul double %577, %685
  %687 = fdiv double %682, %686
  %688 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %687, ptr %688, align 8, !tbaa !19
  %689 = load double, ptr %375, align 8, !tbaa !30
  %690 = fdiv double %689, %6
  %691 = load double, ptr %216, align 8, !tbaa !16
  %692 = fadd double %690, %691
  %693 = call double @llvm.fmuladd.f64(double %666, double -2.000000e+00, double %692)
  %694 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double %693, ptr %694, align 8, !tbaa !19
  %695 = load double, ptr %216, align 8, !tbaa !16
  %696 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  %697 = load double, ptr %696, align 8, !tbaa !19
  %698 = fadd double %666, %697
  %699 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  %700 = load double, ptr %699, align 8, !tbaa !19
  %701 = fadd double %698, %700
  %702 = fsub double %695, %701
  %703 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double %702, ptr %703, align 8, !tbaa !19
  %704 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %704, align 8, !tbaa !19
  %705 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double 0.000000e+00, ptr %705, align 8, !tbaa !19
  %706 = load double, ptr %216, align 8, !tbaa !16
  %707 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %706, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br i1 %707, label %710, label %708

708:                                              ; preds = %579, %583
  %709 = getelementptr inbounds i8, ptr %.0646724, i64 8
  %.not655 = icmp eq ptr %709, %575
  br i1 %.not655, label %._crit_edge, label %579

710:                                              ; preds = %583
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  br label %1791

._crit_edge:                                      ; preds = %708, %.._crit_edge_crit_edge
  %.pre-phi742 = phi double [ %.pre741, %.._crit_edge_crit_edge ], [ %578, %708 ]
  %.pre-phi = phi double [ %.pre, %.._crit_edge_crit_edge ], [ %577, %708 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  %711 = fmul double %6, 3.000000e+00
  %712 = getelementptr inbounds i8, ptr %0, i64 136
  %713 = load double, ptr %712, align 8, !tbaa !32
  %714 = load double, ptr %77, align 8, !tbaa !11
  %715 = load double, ptr %216, align 8, !tbaa !16
  %716 = load double, ptr %379, align 8, !tbaa !20
  %717 = fneg double %716
  %718 = call double @llvm.fmuladd.f64(double %714, double %715, double %717)
  %719 = call double @llvm.fmuladd.f64(double %.pre-phi, double %718, double %713)
  %720 = fmul double %711, %719
  %721 = load double, ptr %209, align 8, !tbaa !24
  %722 = load double, ptr %211, align 8, !tbaa !25
  %723 = fsub double %721, %722
  %724 = load double, ptr %228, align 8, !tbaa !27
  %725 = load double, ptr %221, align 8, !tbaa !12
  %726 = call double @llvm.fmuladd.f64(double %270, double %715, double %725)
  %727 = fmul double %724, -6.000000e+00
  %728 = fmul double %727, %726
  %729 = call double @llvm.fmuladd.f64(double %723, double 2.000000e+00, double %728)
  %730 = load double, ptr %206, align 8, !tbaa !23
  %731 = fmul double %730, 6.000000e+00
  %732 = load double, ptr %536, align 8, !tbaa !31
  %733 = call double @llvm.fmuladd.f64(double %731, double %732, double %729)
  %734 = fmul double %714, 3.000000e+00
  %735 = load double, ptr %214, align 8, !tbaa !26
  %736 = fmul double %725, %.pre-phi742
  %737 = fmul double %715, %736
  %738 = call double @llvm.fmuladd.f64(double %735, double 2.000000e+00, double %737)
  %739 = load double, ptr %225, align 8, !tbaa !13
  %740 = call double @llvm.fmuladd.f64(double %730, double %739, double %738)
  %741 = call double @llvm.fmuladd.f64(double %734, double %740, double %733)
  %742 = load double, ptr %375, align 8, !tbaa !30
  %743 = fmul double %742, 6.000000e+00
  %744 = fmul double %743, %6
  %745 = call double @llvm.fmuladd.f64(double %744, double %716, double %741)
  %746 = call noundef double @_ZN6ruckig4pow2IdEET_S1_(double noundef %745)
  %747 = fmul double %719, -1.800000e+01
  %748 = fmul double %719, %747
  %749 = fmul double %719, %748
  %750 = call double @llvm.fmuladd.f64(double %746, double 4.000000e+00, double %749)
  %751 = call double @sqrt(double noundef %750) #8
  %752 = fdiv double %751, %720
  %753 = call noundef double @_ZSt3absd(double noundef %6)
  %754 = fmul double %752, %753
  %755 = fdiv double %754, %6
  %756 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double 0.000000e+00, ptr %756, align 8, !tbaa !19
  %757 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double 0.000000e+00, ptr %757, align 8, !tbaa !19
  %758 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double 0.000000e+00, ptr %758, align 8, !tbaa !19
  %759 = load double, ptr %211, align 8, !tbaa !25
  %760 = load double, ptr %209, align 8, !tbaa !24
  %761 = fsub double %759, %760
  %762 = load double, ptr %214, align 8, !tbaa !26
  %763 = load double, ptr %228, align 8, !tbaa !27
  %764 = fsub double %762, %763
  %765 = fmul double %764, 3.000000e+00
  %766 = fmul double %765, %6
  %767 = load double, ptr %216, align 8, !tbaa !16
  %768 = call double @llvm.fmuladd.f64(double %766, double %767, double %761)
  %769 = load double, ptr %375, align 8, !tbaa !30
  %770 = load double, ptr %77, align 8, !tbaa !11
  %771 = load double, ptr %221, align 8, !tbaa !12
  %772 = load double, ptr %379, align 8, !tbaa !20
  %773 = fmul double %.pre-phi, %772
  %774 = call double @llvm.fmuladd.f64(double %770, double %771, double %773)
  %775 = fmul double %769, -3.000000e+00
  %776 = call double @llvm.fmuladd.f64(double %775, double %774, double %768)
  %777 = load double, ptr %206, align 8, !tbaa !23
  %778 = load double, ptr %315, align 8, !tbaa !22
  %779 = fmul double %777, -6.000000e+00
  %780 = call double @llvm.fmuladd.f64(double %779, double %778, double %776)
  %781 = fdiv double %780, %720
  %782 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double %781, ptr %782, align 8, !tbaa !19
  %783 = load double, ptr %216, align 8, !tbaa !16
  %784 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  %785 = load double, ptr %784, align 8, !tbaa !19
  %786 = fsub double %783, %785
  %787 = fsub double %786, %755
  %788 = fmul double %787, 5.000000e-01
  %789 = load double, ptr %375, align 8, !tbaa !30
  %790 = fdiv double %789, %.pre-phi
  %791 = fsub double %788, %790
  %792 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double %791, ptr %792, align 8, !tbaa !19
  %793 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double %755, ptr %793, align 8, !tbaa !19
  %794 = load double, ptr %216, align 8, !tbaa !16
  %795 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  %796 = load double, ptr %795, align 8, !tbaa !19
  %797 = fsub double %794, %796
  %798 = load double, ptr %375, align 8, !tbaa !30
  %799 = fdiv double %798, %6
  %800 = fadd double %797, %799
  %801 = fsub double %800, %755
  %802 = fmul double %801, 5.000000e-01
  %803 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double %802, ptr %803, align 8, !tbaa !19
  %804 = load double, ptr %216, align 8, !tbaa !16
  %805 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %804, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br i1 %805, label %1791, label %806

806:                                              ; preds = %._crit_edge
  %807 = load double, ptr %712, align 8, !tbaa !32
  %808 = load double, ptr %221, align 8, !tbaa !12
  %809 = load double, ptr %77, align 8, !tbaa !11
  %810 = fadd double %808, %809
  %811 = fmul double %810, 2.000000e+00
  %812 = fmul double %811, %6
  %813 = load double, ptr %216, align 8, !tbaa !16
  %814 = call double @llvm.fmuladd.f64(double %812, double %813, double %807)
  %815 = load double, ptr %225, align 8, !tbaa !13
  %816 = load double, ptr %379, align 8, !tbaa !20
  %817 = fmul double %816, 4.000000e+00
  %818 = call double @llvm.fmuladd.f64(double %6, double %815, double %817)
  %819 = call double @llvm.fmuladd.f64(double %270, double %818, double %814)
  %820 = fmul double %815, %6
  %821 = load double, ptr %536, align 8, !tbaa !31
  %822 = load double, ptr %239, align 8, !tbaa !15
  %823 = load double, ptr %0, align 8, !tbaa !5
  %824 = fneg double %813
  %825 = fmul double %823, %824
  %826 = call double @llvm.fmuladd.f64(double %822, double -2.000000e+00, double %825)
  %827 = fmul double %813, 3.000000e+00
  %828 = load double, ptr %246, align 8, !tbaa !17
  %829 = call double @llvm.fmuladd.f64(double %827, double %828, double %826)
  %830 = fneg double %816
  %831 = fmul double %829, %830
  %832 = call double @llvm.fmuladd.f64(double %820, double %821, double %831)
  %833 = load double, ptr %214, align 8, !tbaa !26
  %834 = fmul double %808, -8.000000e+00
  %835 = fmul double %834, %6
  %836 = fmul double %835, %813
  %837 = call double @llvm.fmuladd.f64(double %833, double 5.000000e+00, double %836)
  %838 = call double @llvm.fmuladd.f64(double %.pre-phi, double %815, double %830)
  %839 = call double @llvm.fmuladd.f64(double %.pre-phi, double %838, double %837)
  %840 = load double, ptr %206, align 8, !tbaa !23
  %841 = getelementptr inbounds i8, ptr %0, i64 104
  %842 = load double, ptr %841, align 8, !tbaa !33
  %843 = load double, ptr %310, align 8, !tbaa !21
  %844 = fmul double %843, -2.000000e+00
  %845 = call double @llvm.fmuladd.f64(double %840, double %842, double %844)
  %846 = fmul double %6, 8.000000e+00
  %847 = fmul double %846, %813
  %848 = fneg double %822
  %849 = call double @llvm.fmuladd.f64(double %813, double %828, double %848)
  %850 = call double @llvm.fmuladd.f64(double %847, double %849, double %845)
  %851 = load double, ptr %274, align 8, !tbaa !29
  %852 = load double, ptr %211, align 8, !tbaa !25
  %853 = fmul double %852, -8.000000e+00
  %854 = fmul double %853, %6
  %855 = fmul double %813, %854
  %856 = call double @llvm.fmuladd.f64(double %851, double 5.000000e+00, double %855)
  %857 = call double @llvm.fmuladd.f64(double %6, double %815, double %816)
  %858 = fmul double %833, -1.200000e+01
  %859 = fmul double %858, %6
  %860 = call double @llvm.fmuladd.f64(double %859, double %857, double %856)
  %861 = fmul double %808, 2.400000e+01
  %862 = fmul double %861, %840
  %863 = getelementptr inbounds i8, ptr %0, i64 96
  %864 = load double, ptr %863, align 8, !tbaa !18
  %865 = fmul double %864, %6
  %866 = call double @llvm.fmuladd.f64(double %822, double -2.000000e+00, double %865)
  %867 = fmul double %813, 2.000000e+00
  %868 = call double @llvm.fmuladd.f64(double %867, double %828, double %866)
  %869 = call double @llvm.fmuladd.f64(double %862, double %868, double %860)
  %870 = fmul double %840, -6.000000e+00
  %871 = call double @llvm.fmuladd.f64(double %870, double %850, double %869)
  %872 = fneg double %843
  %873 = fmul double %813, %6
  %874 = fmul double %827, %823
  %875 = call double @llvm.fmuladd.f64(double %822, double -2.000000e+00, double %874)
  %876 = call double @llvm.fmuladd.f64(double %824, double %828, double %875)
  %877 = call double @llvm.fmuladd.f64(double %873, double %876, double %872)
  %878 = load double, ptr %315, align 8, !tbaa !22
  %879 = fneg double %808
  %880 = call double @llvm.fmuladd.f64(double %879, double %878, double %877)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  %881 = load double, ptr %209, align 8, !tbaa !24
  %882 = fsub double %881, %852
  %883 = load double, ptr %228, align 8, !tbaa !27
  %884 = call double @llvm.fmuladd.f64(double %270, double %813, double %808)
  %885 = fmul double %883, -1.200000e+01
  %886 = fmul double %884, %885
  %887 = call double @llvm.fmuladd.f64(double %882, double 4.000000e+00, double %886)
  %888 = fmul double %809, 6.000000e+00
  %889 = fmul double %808, -2.000000e+00
  %890 = fmul double %889, %6
  %891 = fmul double %890, %813
  %892 = call double @llvm.fmuladd.f64(double %833, double 2.000000e+00, double %891)
  %893 = fmul double %816, 2.000000e+00
  %894 = fneg double %893
  %895 = call double @llvm.fmuladd.f64(double %6, double %815, double %894)
  %896 = call double @llvm.fmuladd.f64(double %6, double %895, double %892)
  %897 = call double @llvm.fmuladd.f64(double %888, double %896, double %887)
  %898 = fmul double %808, 6.000000e+00
  %899 = fmul double %898, %6
  %900 = call double @llvm.fmuladd.f64(double %711, double %815, double %893)
  %901 = call double @llvm.fmuladd.f64(double %899, double %900, double %897)
  %902 = call double @llvm.fmuladd.f64(double %822, double -4.000000e+00, double %865)
  %903 = fmul double %813, -2.000000e+00
  %904 = call double @llvm.fmuladd.f64(double %903, double %823, double %902)
  %905 = fmul double %813, 6.000000e+00
  %906 = call double @llvm.fmuladd.f64(double %905, double %828, double %904)
  %907 = call double @llvm.fmuladd.f64(double %870, double %906, double %901)
  %908 = fneg double %907
  %909 = fmul double %711, %819
  %910 = fdiv double %908, %909
  %911 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef 0) #8
  store double %910, ptr %911, align 8, !tbaa !19
  %912 = load double, ptr %272, align 8, !tbaa !28
  %913 = fneg double %912
  %914 = load double, ptr %274, align 8, !tbaa !29
  %915 = fsub double %913, %914
  %916 = load double, ptr %209, align 8, !tbaa !24
  %917 = fmul double %916, 4.000000e+00
  %918 = load double, ptr %221, align 8, !tbaa !12
  %919 = load double, ptr %216, align 8, !tbaa !16
  %920 = call double @llvm.fmuladd.f64(double %270, double %919, double %918)
  %921 = call double @llvm.fmuladd.f64(double %917, double %920, double %915)
  %922 = load double, ptr %228, align 8, !tbaa !27
  %923 = load double, ptr %214, align 8, !tbaa !26
  %924 = fmul double %918, 8.000000e+00
  %925 = fmul double %924, %6
  %926 = fmul double %919, %925
  %927 = call double @llvm.fmuladd.f64(double %923, double -6.000000e+00, double %926)
  %928 = fmul double %6, 4.000000e+00
  %929 = load double, ptr %225, align 8, !tbaa !13
  %930 = load double, ptr %379, align 8, !tbaa !20
  %931 = fneg double %930
  %932 = call double @llvm.fmuladd.f64(double %6, double %929, double %931)
  %933 = fneg double %928
  %934 = call double @llvm.fmuladd.f64(double %933, double %932, double %927)
  %935 = call double @llvm.fmuladd.f64(double %922, double %934, double %921)
  %936 = fmul double %923, 2.000000e+00
  %937 = fmul double %936, %6
  %938 = fmul double %930, 2.000000e+00
  %939 = call double @llvm.fmuladd.f64(double %6, double %929, double %938)
  %940 = call double @llvm.fmuladd.f64(double %937, double %939, double %935)
  %941 = load double, ptr %206, align 8, !tbaa !23
  %942 = load double, ptr %239, align 8, !tbaa !15
  %943 = load double, ptr %863, align 8, !tbaa !18
  %944 = fmul double %943, %6
  %945 = call double @llvm.fmuladd.f64(double %942, double -3.000000e+00, double %944)
  %946 = fmul double %919, 2.000000e+00
  %947 = load double, ptr %0, align 8, !tbaa !5
  %948 = call double @llvm.fmuladd.f64(double %946, double %947, double %945)
  %949 = load double, ptr %246, align 8, !tbaa !17
  %950 = call double @llvm.fmuladd.f64(double %919, double %949, double %948)
  %951 = fmul double %918, -4.000000e+00
  %952 = fmul double %951, %941
  %953 = call double @llvm.fmuladd.f64(double %952, double %950, double %940)
  %954 = load double, ptr %841, align 8, !tbaa !33
  %955 = load double, ptr %310, align 8, !tbaa !21
  %956 = fmul double %955, -8.000000e+00
  %957 = call double @llvm.fmuladd.f64(double %941, double %954, double %956)
  %958 = fmul double %928, %919
  %959 = fmul double %919, %947
  %960 = call double @llvm.fmuladd.f64(double %942, double -3.000000e+00, double %959)
  %961 = call double @llvm.fmuladd.f64(double %946, double %949, double %960)
  %962 = call double @llvm.fmuladd.f64(double %958, double %961, double %957)
  %963 = call double @llvm.fmuladd.f64(double %941, double %962, double %953)
  %964 = load double, ptr %77, align 8, !tbaa !11
  %965 = fmul double %964, 2.000000e+00
  %966 = load double, ptr %211, align 8, !tbaa !25
  %967 = fneg double %937
  %968 = fmul double %919, %967
  %969 = call double @llvm.fmuladd.f64(double %966, double 2.000000e+00, double %968)
  %970 = fmul double %918, %6
  %971 = fmul double %6, -3.000000e+00
  %972 = fmul double %930, -4.000000e+00
  %973 = call double @llvm.fmuladd.f64(double %971, double %929, double %972)
  %974 = call double @llvm.fmuladd.f64(double %970, double %973, double %969)
  %975 = call double @llvm.fmuladd.f64(double %942, double -6.000000e+00, double %944)
  %976 = fmul double %919, -4.000000e+00
  %977 = call double @llvm.fmuladd.f64(double %976, double %947, double %975)
  %978 = fmul double %919, 1.000000e+01
  %979 = call double @llvm.fmuladd.f64(double %978, double %949, double %977)
  %980 = call double @llvm.fmuladd.f64(double %941, double %979, double %974)
  %981 = call double @llvm.fmuladd.f64(double %965, double %980, double %963)
  %982 = fneg double %981
  %983 = fmul double %819, %941
  %984 = fdiv double %982, %983
  %985 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef 1) #8
  store double %984, ptr %985, align 8, !tbaa !19
  %986 = getelementptr inbounds i8, ptr %0, i64 184
  %987 = load double, ptr %986, align 8, !tbaa !34
  %988 = getelementptr inbounds i8, ptr %0, i64 224
  %989 = load double, ptr %988, align 8, !tbaa !35
  %990 = fsub double %987, %989
  %991 = load double, ptr %274, align 8, !tbaa !29
  %992 = fmul double %991, %6
  %993 = load double, ptr %216, align 8, !tbaa !16
  %994 = call double @llvm.fmuladd.f64(double %992, double %993, double %990)
  %995 = load double, ptr %272, align 8, !tbaa !28
  %996 = load double, ptr %221, align 8, !tbaa !12
  %997 = call double @llvm.fmuladd.f64(double %270, double %993, double %996)
  %998 = fmul double %995, -5.000000e+00
  %999 = call double @llvm.fmuladd.f64(double %998, double %997, double %994)
  %1000 = load double, ptr %209, align 8, !tbaa !24
  %1001 = fmul double %1000, 2.000000e+00
  %1002 = call double @llvm.fmuladd.f64(double %1001, double %839, double %999)
  %1003 = load double, ptr %211, align 8, !tbaa !25
  %1004 = fmul double %1003, 4.000000e+00
  %1005 = fmul double %1004, %6
  %1006 = load double, ptr %225, align 8, !tbaa !13
  %1007 = load double, ptr %379, align 8, !tbaa !20
  %1008 = call double @llvm.fmuladd.f64(double %6, double %1006, double %1007)
  %1009 = call double @llvm.fmuladd.f64(double %1005, double %1008, double %1002)
  %1010 = load double, ptr %206, align 8, !tbaa !23
  %1011 = fmul double %1010, 1.200000e+01
  %1012 = fmul double %996, %1011
  %1013 = call double @llvm.fmuladd.f64(double %1012, double %880, double %1009)
  %1014 = load double, ptr %228, align 8, !tbaa !27
  %1015 = load double, ptr %214, align 8, !tbaa !26
  %1016 = fmul double %1015, -9.000000e+00
  %1017 = fmul double %1016, %6
  %1018 = fmul double %993, %1017
  %1019 = call double @llvm.fmuladd.f64(double %1003, double 5.000000e+00, double %1018)
  %1020 = fmul double %996, -6.000000e+00
  %1021 = fmul double %1020, %6
  %1022 = call double @llvm.fmuladd.f64(double %1021, double %1007, double %1019)
  %1023 = fmul double %1010, 6.000000e+00
  %1024 = load double, ptr %239, align 8, !tbaa !15
  %1025 = load double, ptr %0, align 8, !tbaa !5
  %1026 = fneg double %993
  %1027 = fmul double %1025, %1026
  %1028 = call double @llvm.fmuladd.f64(double %1024, double -2.000000e+00, double %1027)
  %1029 = fmul double %993, 3.000000e+00
  %1030 = load double, ptr %246, align 8, !tbaa !17
  %1031 = call double @llvm.fmuladd.f64(double %1029, double %1030, double %1028)
  %1032 = call double @llvm.fmuladd.f64(double %1023, double %1031, double %1022)
  %1033 = fmul double %1014, -2.000000e+00
  %1034 = call double @llvm.fmuladd.f64(double %1033, double %1032, double %1013)
  %1035 = fneg double %1011
  %1036 = fmul double %1035, %6
  %1037 = call double @llvm.fmuladd.f64(double %1036, double %832, double %1034)
  %1038 = load double, ptr %77, align 8, !tbaa !11
  %1039 = call double @llvm.fmuladd.f64(double %1038, double %871, double %1037)
  %1040 = fneg double %1039
  %1041 = fmul double %1010, 3.000000e+00
  %1042 = fmul double %1041, %6
  %1043 = fmul double %819, %1042
  %1044 = fdiv double %1040, %1043
  %1045 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef 2) #8
  store double %1044, ptr %1045, align 8, !tbaa !19
  %1046 = getelementptr inbounds i8, ptr %0, i64 192
  %1047 = load double, ptr %1046, align 8, !tbaa !36
  %1048 = fneg double %1047
  %1049 = getelementptr inbounds i8, ptr %0, i64 232
  %1050 = load double, ptr %1049, align 8, !tbaa !37
  %1051 = fsub double %1048, %1050
  %1052 = load double, ptr %986, align 8, !tbaa !34
  %1053 = fmul double %1052, 6.000000e+00
  %1054 = load double, ptr %221, align 8, !tbaa !12
  %1055 = load double, ptr %216, align 8, !tbaa !16
  %1056 = call double @llvm.fmuladd.f64(double %270, double %1055, double %1054)
  %1057 = call double @llvm.fmuladd.f64(double %1053, double %1056, double %1051)
  %1058 = load double, ptr %211, align 8, !tbaa !25
  %1059 = load double, ptr %206, align 8, !tbaa !23
  %1060 = load double, ptr %536, align 8, !tbaa !31
  %1061 = fmul double %1058, -4.800000e+01
  %1062 = fmul double %1061, %1059
  %1063 = call double @llvm.fmuladd.f64(double %1062, double %1060, double %1057)
  %1064 = fmul double %1059, 7.200000e+01
  %1065 = fmul double %1064, %6
  %1066 = fmul double %1060, %6
  %1067 = load double, ptr %310, align 8, !tbaa !21
  %1068 = load double, ptr %379, align 8, !tbaa !20
  %1069 = fmul double %1067, %1068
  %1070 = call double @llvm.fmuladd.f64(double %1066, double %1060, double %1069)
  %1071 = fmul double %1054, 2.000000e+00
  %1072 = fmul double %1071, %1060
  %1073 = call double @llvm.fmuladd.f64(double %1072, double %1068, double %1070)
  %1074 = call double @llvm.fmuladd.f64(double %1065, double %1073, double %1063)
  %1075 = load double, ptr %272, align 8, !tbaa !28
  %1076 = fmul double %1075, -3.000000e+00
  %1077 = call double @llvm.fmuladd.f64(double %1076, double %839, double %1074)
  %1078 = load double, ptr %214, align 8, !tbaa !26
  %1079 = fmul double %1078, -3.600000e+01
  %1080 = fmul double %1059, %1079
  %1081 = call double @llvm.fmuladd.f64(double %1080, double %1067, double %1077)
  %1082 = load double, ptr %274, align 8, !tbaa !29
  %1083 = fmul double %1082, 6.000000e+00
  %1084 = fmul double %1083, %6
  %1085 = call double @llvm.fmuladd.f64(double %1084, double %1068, double %1081)
  %1086 = load double, ptr %209, align 8, !tbaa !24
  %1087 = fmul double %1086, 4.000000e+00
  %1088 = fmul double %1078, -9.000000e+00
  %1089 = fmul double %1088, %6
  %1090 = fmul double %1055, %1089
  %1091 = call double @llvm.fmuladd.f64(double %1058, double 5.000000e+00, double %1090)
  %1092 = fmul double %1054, -6.000000e+00
  %1093 = fmul double %1092, %6
  %1094 = call double @llvm.fmuladd.f64(double %1093, double %1068, double %1091)
  %1095 = fmul double %1059, 6.000000e+00
  %1096 = load double, ptr %239, align 8, !tbaa !15
  %1097 = load double, ptr %0, align 8, !tbaa !5
  %1098 = fneg double %1055
  %1099 = fmul double %1097, %1098
  %1100 = call double @llvm.fmuladd.f64(double %1096, double -2.000000e+00, double %1099)
  %1101 = fmul double %1055, 3.000000e+00
  %1102 = load double, ptr %246, align 8, !tbaa !17
  %1103 = call double @llvm.fmuladd.f64(double %1101, double %1102, double %1100)
  %1104 = call double @llvm.fmuladd.f64(double %1095, double %1103, double %1094)
  %1105 = call double @llvm.fmuladd.f64(double %1087, double %1104, double %1085)
  %1106 = load double, ptr %228, align 8, !tbaa !27
  %1107 = fmul double %1106, -3.000000e+00
  %1108 = call double @llvm.fmuladd.f64(double %1107, double %871, double %1105)
  %1109 = load double, ptr %77, align 8, !tbaa !11
  %1110 = fmul double %1109, 6.000000e+00
  %1111 = load double, ptr %988, align 8, !tbaa !35
  %1112 = fneg double %1082
  %1113 = fmul double %1112, %6
  %1114 = call double @llvm.fmuladd.f64(double %1113, double %1055, double %1111)
  %1115 = load double, ptr %225, align 8, !tbaa !13
  %1116 = call double @llvm.fmuladd.f64(double %6, double %1115, double %1068)
  %1117 = fmul double %1058, -4.000000e+00
  %1118 = fmul double %1117, %6
  %1119 = call double @llvm.fmuladd.f64(double %1118, double %1116, double %1114)
  %1120 = fmul double %1059, 1.200000e+01
  %1121 = fneg double %1054
  %1122 = fmul double %832, %6
  %1123 = call double @llvm.fmuladd.f64(double %1121, double %880, double %1122)
  %1124 = call double @llvm.fmuladd.f64(double %1120, double %1123, double %1119)
  %1125 = call double @llvm.fmuladd.f64(double %1110, double %1124, double %1108)
  %1126 = fneg double %1125
  %1127 = fmul double %1059, 1.800000e+01
  %1128 = fmul double %1059, %1127
  %1129 = fmul double %819, %1128
  %1130 = fdiv double %1126, %1129
  %1131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef 3) #8
  store double %1130, ptr %1131, align 8, !tbaa !19
  %1132 = load double, ptr %77, align 8, !tbaa !11
  %1133 = fsub double %1132, %5
  %1134 = fdiv double %1133, %6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #8
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind nonnull writable sret(%"class.ruckig::roots::PositiveSet") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %14)
  %1135 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %15)
  %1136 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %15)
  %.not656726 = icmp eq ptr %1135, %1136
  br i1 %.not656726, label %._crit_edge730, label %.lr.ph729

.lr.ph729:                                        ; preds = %806
  %1137 = fmul double %6, 6.000000e+00
  %1138 = insertelement <2 x double> <double 6.000000e+00, double poison>, double %6, i64 1
  br label %1139

1139:                                             ; preds = %.lr.ph729, %1288
  %.0647727 = phi ptr [ %1135, %.lr.ph729 ], [ %1289, %1288 ]
  %1140 = load double, ptr %.0647727, align 8, !tbaa !19
  %1141 = fcmp ogt double %1140, %1134
  br i1 %1141, label %1288, label %1142

1142:                                             ; preds = %1139
  %1143 = load double, ptr %712, align 8, !tbaa !32
  %1144 = fmul double %1143, 5.000000e-01
  %1145 = load double, ptr %221, align 8, !tbaa !12
  %1146 = load double, ptr %77, align 8, !tbaa !11
  %1147 = fneg double %1146
  %1148 = call double @llvm.fmuladd.f64(double %6, double %1140, double %1147)
  %1149 = load double, ptr %216, align 8, !tbaa !16
  %1150 = fsub double %1140, %1149
  %1151 = fmul double %1148, %1150
  %1152 = call double @llvm.fmuladd.f64(double %1145, double %1140, double %1151)
  %1153 = load double, ptr %379, align 8, !tbaa !20
  %1154 = fsub double %1152, %1153
  %1155 = call double @llvm.fmuladd.f64(double %6, double %1154, double %1144)
  %1156 = load double, ptr %375, align 8, !tbaa !30
  %1157 = fneg double %1156
  %1158 = call double @llvm.fmuladd.f64(double %1140, double -2.000000e+00, double %1149)
  %1159 = call double @llvm.fmuladd.f64(double %6, double %1158, double %1157)
  %1160 = call double @sqrt(double noundef %1155) #8
  %1161 = load double, ptr %211, align 8, !tbaa !25
  %1162 = load double, ptr %209, align 8, !tbaa !24
  %1163 = fsub double %1161, %1162
  %1164 = load double, ptr %221, align 8, !tbaa !12
  %1165 = fmul double %1164, 3.000000e+00
  %1166 = fmul double %1165, %6
  %1167 = fmul double %1140, %1166
  %1168 = call double @llvm.fmuladd.f64(double %6, double %1140, double %1164)
  %1169 = call double @llvm.fmuladd.f64(double %1167, double %1168, double %1163)
  %1170 = load double, ptr %228, align 8, !tbaa !27
  %1171 = fmul double %1170, 3.000000e+00
  %1172 = call double @llvm.fmuladd.f64(double %1171, double %1168, double %1169)
  %1173 = load double, ptr %77, align 8, !tbaa !11
  %1174 = load double, ptr %214, align 8, !tbaa !26
  %1175 = fmul double %1164, 2.000000e+00
  %1176 = fmul double %1175, %6
  %1177 = call double @llvm.fmuladd.f64(double %1176, double %1140, double %1174)
  %1178 = load double, ptr %206, align 8, !tbaa !23
  %1179 = load double, ptr %225, align 8, !tbaa !13
  %1180 = fneg double %1179
  %1181 = call double @llvm.fmuladd.f64(double %1140, double %1140, double %1180)
  %1182 = call double @llvm.fmuladd.f64(double %1178, double %1181, double %1177)
  %1183 = fmul double %1173, -3.000000e+00
  %1184 = call double @llvm.fmuladd.f64(double %1183, double %1182, double %1172)
  %1185 = fmul double %1178, 3.000000e+00
  %1186 = load double, ptr %239, align 8, !tbaa !15
  %1187 = fmul double %1140, %6
  %1188 = load double, ptr %216, align 8, !tbaa !16
  %1189 = fsub double %1140, %1188
  %1190 = fmul double %1187, %1189
  %1191 = fmul double %1188, %1190
  %1192 = call double @llvm.fmuladd.f64(double %1186, double -2.000000e+00, double %1191)
  %1193 = fmul double %1188, 2.000000e+00
  %1194 = load double, ptr %0, align 8, !tbaa !5
  %1195 = call double @llvm.fmuladd.f64(double %1193, double %1194, double %1192)
  %1196 = call double @llvm.fmuladd.f64(double %1185, double %1195, double %1184)
  %1197 = fmul double %1160, %1160
  %1198 = fmul double %1160, %1197
  %1199 = call noundef double @_ZSt3absd(double noundef %6)
  %1200 = insertelement <2 x double> poison, double %1178, i64 0
  %1201 = insertelement <2 x double> %1200, double %1199, i64 1
  %1202 = fmul <2 x double> %1201, %1138
  %1203 = insertelement <2 x double> poison, double %1196, i64 0
  %1204 = insertelement <2 x double> %1203, double %1198, i64 1
  %1205 = fdiv <2 x double> %1204, %1202
  %shift = shufflevector <2 x double> %1205, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %1206 = fsub <2 x double> %1205, %shift
  %1207 = load double, ptr %375, align 8, !tbaa !30
  %1208 = fneg double %1207
  %1209 = call double @llvm.fmuladd.f64(double %270, double %1140, double %1208)
  %1210 = fmul double %1155, %1209
  %1211 = load double, ptr %206, align 8, !tbaa !23
  %1212 = fmul double %1137, %1159
  %1213 = fmul double %1160, %1212
  %1214 = call noundef double @_ZSt3absd(double noundef %6)
  %1215 = fdiv double %1213, %1214
  %1216 = load double, ptr %375, align 8, !tbaa !30
  %1217 = fneg double %1216
  %1218 = load double, ptr %216, align 8, !tbaa !16
  %1219 = call double @llvm.fmuladd.f64(double %270, double %1218, double %1217)
  %1220 = fmul double %1219, 2.000000e+00
  %1221 = call double @llvm.fmuladd.f64(double %1220, double %1159, double %1215)
  %1222 = load double, ptr %712, align 8, !tbaa !32
  %1223 = load double, ptr %221, align 8, !tbaa !12
  %1224 = fmul double %1223, %6
  %1225 = fmul double %1218, -2.000000e+00
  %1226 = call double @llvm.fmuladd.f64(double %1140, double 8.000000e+00, double %1225)
  %1227 = fmul double %1226, %1224
  %1228 = call double @llvm.fmuladd.f64(double %1222, double 3.000000e+00, double %1227)
  %1229 = load double, ptr %77, align 8, !tbaa !11
  %1230 = fmul double %1229, 4.000000e+00
  %1231 = fmul double %1230, %6
  %1232 = call double @llvm.fmuladd.f64(double %1140, double -2.000000e+00, double %1218)
  %1233 = call double @llvm.fmuladd.f64(double %1231, double %1232, double %1228)
  %1234 = call double @llvm.fmuladd.f64(double %1140, double 3.000000e+00, double %1225)
  %1235 = load double, ptr %379, align 8, !tbaa !20
  %1236 = fneg double %1235
  %1237 = call double @llvm.fmuladd.f64(double %1187, double %1234, double %1236)
  %1238 = call double @llvm.fmuladd.f64(double %.pre-phi, double %1237, double %1233)
  %1239 = call double @llvm.fmuladd.f64(double %1238, double -2.000000e+00, double %1221)
  %1240 = insertelement <2 x double> poison, double %1210, i64 0
  %1241 = insertelement <2 x double> %1240, double %1239, i64 1
  %1242 = insertelement <2 x double> poison, double %1211, i64 0
  %1243 = insertelement <2 x double> %1242, double %928, i64 1
  %1244 = fdiv <2 x double> %1241, %1243
  %1245 = fadd <2 x double> %1244, %1206
  %1246 = extractelement <2 x double> %1245, i64 0
  %1247 = extractelement <2 x double> %1244, i64 1
  %1248 = fdiv double %1246, %1247
  %1249 = fsub double %1140, %1248
  %1250 = fmul double %1218, %1229
  %1251 = call double @llvm.fmuladd.f64(double %1216, double %1249, double %1250)
  %1252 = fmul double %1249, %6
  %1253 = fsub double %1249, %1218
  %1254 = call double @llvm.fmuladd.f64(double %1252, double %1253, double %1251)
  %1255 = fsub double %1254, %1235
  %1256 = fmul double %928, %1255
  %1257 = call double @llvm.fmuladd.f64(double %1222, double 2.000000e+00, double %1256)
  %1258 = call double @sqrt(double noundef %1257) #8
  %1259 = call noundef double @_ZSt3absd(double noundef %6)
  %1260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double 0.000000e+00, ptr %1260, align 8, !tbaa !19
  %1261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double 0.000000e+00, ptr %1261, align 8, !tbaa !19
  %1262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %1249, ptr %1262, align 8, !tbaa !19
  %1263 = load double, ptr %216, align 8, !tbaa !16
  %1264 = call double @llvm.fmuladd.f64(double %1249, double -2.000000e+00, double %1263)
  %1265 = load <2 x double>, ptr %375, align 8
  %1266 = insertelement <2 x double> %1265, double %1258, i64 1
  %1267 = insertelement <2 x double> %401, double %1259, i64 1
  %1268 = fdiv <2 x double> %1266, %1267
  %1269 = extractelement <2 x double> %1268, i64 0
  %1270 = fsub double %1264, %1269
  %1271 = extractelement <2 x double> %1268, i64 1
  %1272 = fsub double %1270, %1271
  %1273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double %1272, ptr %1273, align 8, !tbaa !19
  %1274 = fmul double %1271, 5.000000e-01
  %1275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double %1274, ptr %1275, align 8, !tbaa !19
  %1276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %1276, align 8, !tbaa !19
  %1277 = load double, ptr %216, align 8, !tbaa !16
  %1278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  %1279 = load double, ptr %1278, align 8, !tbaa !19
  %1280 = fadd double %1249, %1279
  %1281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  %1282 = load double, ptr %1281, align 8, !tbaa !19
  %1283 = fadd double %1280, %1282
  %1284 = fsub double %1277, %1283
  %1285 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double %1284, ptr %1285, align 8, !tbaa !19
  %1286 = load double, ptr %216, align 8, !tbaa !16
  %1287 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %1286, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br i1 %1287, label %1290, label %1288

1288:                                             ; preds = %1142, %1139
  %1289 = getelementptr inbounds i8, ptr %.0647727, i64 8
  %.not656 = icmp eq ptr %1289, %1136
  br i1 %.not656, label %._crit_edge730, label %1139

1290:                                             ; preds = %1142
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  br label %1791

._crit_edge730:                                   ; preds = %1288, %806
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  %1291 = load double, ptr %239, align 8, !tbaa !15
  %1292 = load double, ptr %216, align 8, !tbaa !16
  %1293 = load double, ptr %0, align 8, !tbaa !5
  %1294 = fneg double %1292
  %1295 = fmul double %1293, %1294
  %1296 = call double @llvm.fmuladd.f64(double %1291, double -2.000000e+00, double %1295)
  %1297 = fmul double %1292, 3.000000e+00
  %1298 = load double, ptr %246, align 8, !tbaa !17
  %1299 = call double @llvm.fmuladd.f64(double %1297, double %1298, double %1296)
  %1300 = load double, ptr %375, align 8, !tbaa !30
  %1301 = fneg double %1300
  %1302 = call double @llvm.fmuladd.f64(double %6, double %1292, double %1301)
  %1303 = load double, ptr %225, align 8, !tbaa !13
  %1304 = fmul double %1303, %6
  %1305 = load double, ptr %536, align 8, !tbaa !31
  %1306 = load double, ptr %379, align 8, !tbaa !20
  %1307 = fneg double %1306
  %1308 = fmul double %1299, %1307
  %1309 = call double @llvm.fmuladd.f64(double %1304, double %1305, double %1308)
  %1310 = load double, ptr %214, align 8, !tbaa !26
  %1311 = call double @llvm.fmuladd.f64(double %.pre-phi, double %1303, double %1307)
  %1312 = load double, ptr %221, align 8, !tbaa !12
  %1313 = fmul double %1312, -4.000000e+00
  %1314 = call double @llvm.fmuladd.f64(double %1313, double %1292, double %1311)
  %1315 = fmul double %.pre-phi, %1314
  %1316 = call double @llvm.fmuladd.f64(double %1310, double 5.000000e+00, double %1315)
  %1317 = load double, ptr %206, align 8, !tbaa !23
  %1318 = load double, ptr %841, align 8, !tbaa !33
  %1319 = load double, ptr %310, align 8, !tbaa !21
  %1320 = fmul double %1319, -2.000000e+00
  %1321 = call double @llvm.fmuladd.f64(double %1317, double %1318, double %1320)
  %1322 = fmul double %846, %1292
  %1323 = fneg double %1291
  %1324 = call double @llvm.fmuladd.f64(double %1292, double %1298, double %1323)
  %1325 = call double @llvm.fmuladd.f64(double %1322, double %1324, double %1321)
  %1326 = load double, ptr %274, align 8, !tbaa !29
  %1327 = load double, ptr %211, align 8, !tbaa !25
  %1328 = fmul double %1327, -8.000000e+00
  %1329 = fmul double %1328, %6
  %1330 = fmul double %1292, %1329
  %1331 = call double @llvm.fmuladd.f64(double %1326, double 5.000000e+00, double %1330)
  %1332 = call double @llvm.fmuladd.f64(double %6, double %1303, double %1306)
  %1333 = fmul double %1310, -1.200000e+01
  %1334 = fmul double %1333, %6
  %1335 = call double @llvm.fmuladd.f64(double %1334, double %1332, double %1331)
  %1336 = fmul double %1312, 2.400000e+01
  %1337 = fmul double %1336, %1317
  %1338 = load double, ptr %863, align 8, !tbaa !18
  %1339 = fmul double %1338, %6
  %1340 = call double @llvm.fmuladd.f64(double %1291, double -2.000000e+00, double %1339)
  %1341 = fmul double %1292, 2.000000e+00
  %1342 = call double @llvm.fmuladd.f64(double %1341, double %1298, double %1340)
  %1343 = call double @llvm.fmuladd.f64(double %1337, double %1342, double %1335)
  %1344 = fmul double %1317, -6.000000e+00
  %1345 = call double @llvm.fmuladd.f64(double %1344, double %1325, double %1343)
  %1346 = fneg double %1319
  %1347 = fmul double %1292, %6
  %1348 = fmul double %1297, %1293
  %1349 = call double @llvm.fmuladd.f64(double %1291, double -2.000000e+00, double %1348)
  %1350 = call double @llvm.fmuladd.f64(double %1294, double %1298, double %1349)
  %1351 = call double @llvm.fmuladd.f64(double %1347, double %1350, double %1346)
  %1352 = fmul double %1317, 3.000000e+00
  %1353 = fmul double %1302, %1352
  %1354 = fmul double %1302, %1353
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  %1355 = fmul double %1312, 4.000000e+00
  %1356 = fmul double %1303, %.pre-phi742
  %1357 = call double @llvm.fmuladd.f64(double %1355, double %1292, double %1356)
  %1358 = call double @llvm.fmuladd.f64(double %1306, double -4.000000e+00, double %1357)
  %1359 = fdiv double %1358, %1302
  %1360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %16, i64 noundef 0) #8
  store double %1359, ptr %1360, align 8, !tbaa !19
  %1361 = load double, ptr %272, align 8, !tbaa !28
  %1362 = load double, ptr %274, align 8, !tbaa !29
  %1363 = fadd double %1361, %1362
  %1364 = load double, ptr %211, align 8, !tbaa !25
  %1365 = fmul double %1364, 8.000000e+00
  %1366 = fmul double %1365, %6
  %1367 = load double, ptr %216, align 8, !tbaa !16
  %1368 = fmul double %1367, %1366
  %1369 = call double @llvm.fmuladd.f64(double %1363, double -2.000000e+00, double %1368)
  %1370 = load double, ptr %214, align 8, !tbaa !26
  %1371 = fmul double %1370, 6.000000e+00
  %1372 = load double, ptr %206, align 8, !tbaa !23
  %1373 = fmul double %1371, %1372
  %1374 = load double, ptr %225, align 8, !tbaa !13
  %1375 = call double @llvm.fmuladd.f64(double %1373, double %1374, double %1369)
  %1376 = load double, ptr %209, align 8, !tbaa !24
  %1377 = fmul double %1376, 8.000000e+00
  %1378 = load double, ptr %221, align 8, !tbaa !12
  %1379 = call double @llvm.fmuladd.f64(double %270, double %1367, double %1378)
  %1380 = call double @llvm.fmuladd.f64(double %1377, double %1379, double %1375)
  %1381 = load double, ptr %228, align 8, !tbaa !27
  %1382 = fmul double %1381, -1.200000e+01
  %1383 = fmul double %1379, %1382
  %1384 = call double @llvm.fmuladd.f64(double %1383, double %1379, double %1380)
  %1385 = load double, ptr %239, align 8, !tbaa !15
  %1386 = fneg double %1385
  %1387 = load double, ptr %863, align 8, !tbaa !18
  %1388 = call double @llvm.fmuladd.f64(double %6, double %1387, double %1386)
  %1389 = load double, ptr %0, align 8, !tbaa !5
  %1390 = fmul double %1367, -2.000000e+00
  %1391 = call double @llvm.fmuladd.f64(double %1390, double %1389, double %1388)
  %1392 = fmul double %1367, 3.000000e+00
  %1393 = load double, ptr %246, align 8, !tbaa !17
  %1394 = call double @llvm.fmuladd.f64(double %1392, double %1393, double %1391)
  %1395 = fmul double %1378, -1.200000e+01
  %1396 = fmul double %1372, %1395
  %1397 = call double @llvm.fmuladd.f64(double %1396, double %1394, double %1384)
  %1398 = load double, ptr %77, align 8, !tbaa !11
  %1399 = fmul double %1398, 2.000000e+00
  %1400 = fmul double %1370, -1.200000e+01
  %1401 = fmul double %1400, %6
  %1402 = fmul double %1367, %1401
  %1403 = call double @llvm.fmuladd.f64(double %1364, double 4.000000e+00, double %1402)
  %1404 = fmul double %1378, 9.000000e+00
  %1405 = fmul double %1372, %1404
  %1406 = call double @llvm.fmuladd.f64(double %1405, double %1374, double %1403)
  %1407 = fmul double %1372, 3.000000e+00
  %1408 = fmul double %1387, %6
  %1409 = call double @llvm.fmuladd.f64(double %1385, double 2.000000e+00, double %1408)
  %1410 = call double @llvm.fmuladd.f64(double %1390, double %1393, double %1409)
  %1411 = fneg double %1407
  %1412 = call double @llvm.fmuladd.f64(double %1411, double %1410, double %1406)
  %1413 = call double @llvm.fmuladd.f64(double %1399, double %1412, double %1397)
  %1414 = load double, ptr %841, align 8, !tbaa !33
  %1415 = load double, ptr %310, align 8, !tbaa !21
  %1416 = fmul double %1415, 4.000000e+00
  %1417 = call double @llvm.fmuladd.f64(double %1372, double %1414, double %1416)
  %1418 = call double @llvm.fmuladd.f64(double %1367, double %1389, double %1385)
  %1419 = call double @llvm.fmuladd.f64(double %1390, double %1393, double %1418)
  %1420 = fmul double %1367, %933
  %1421 = call double @llvm.fmuladd.f64(double %1420, double %1419, double %1417)
  %1422 = call double @llvm.fmuladd.f64(double %1407, double %1421, double %1413)
  %1423 = fdiv double %1422, %1354
  %1424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %16, i64 noundef 1) #8
  store double %1423, ptr %1424, align 8, !tbaa !19
  %1425 = load double, ptr %986, align 8, !tbaa !34
  %1426 = load double, ptr %988, align 8, !tbaa !35
  %1427 = fsub double %1426, %1425
  %1428 = load double, ptr %274, align 8, !tbaa !29
  %1429 = load double, ptr %216, align 8, !tbaa !16
  %1430 = fneg double %1428
  %1431 = fmul double %1430, %6
  %1432 = call double @llvm.fmuladd.f64(double %1431, double %1429, double %1427)
  %1433 = load double, ptr %272, align 8, !tbaa !28
  %1434 = fmul double %1433, 5.000000e+00
  %1435 = load double, ptr %221, align 8, !tbaa !12
  %1436 = call double @llvm.fmuladd.f64(double %270, double %1429, double %1435)
  %1437 = call double @llvm.fmuladd.f64(double %1434, double %1436, double %1432)
  %1438 = load double, ptr %209, align 8, !tbaa !24
  %1439 = fmul double %1438, -2.000000e+00
  %1440 = call double @llvm.fmuladd.f64(double %1439, double %1316, double %1437)
  %1441 = load double, ptr %211, align 8, !tbaa !25
  %1442 = load double, ptr %225, align 8, !tbaa !13
  %1443 = load double, ptr %379, align 8, !tbaa !20
  %1444 = call double @llvm.fmuladd.f64(double %6, double %1442, double %1443)
  %1445 = fmul double %1441, -4.000000e+00
  %1446 = fmul double %1445, %6
  %1447 = call double @llvm.fmuladd.f64(double %1446, double %1444, double %1440)
  %1448 = load double, ptr %214, align 8, !tbaa !26
  %1449 = fmul double %1448, 1.200000e+01
  %1450 = load double, ptr %206, align 8, !tbaa !23
  %1451 = fmul double %1449, %1450
  %1452 = load double, ptr %315, align 8, !tbaa !22
  %1453 = call double @llvm.fmuladd.f64(double %1451, double %1452, double %1447)
  %1454 = fmul double %1435, -1.200000e+01
  %1455 = fmul double %1454, %1450
  %1456 = call double @llvm.fmuladd.f64(double %1455, double %1351, double %1453)
  %1457 = load double, ptr %228, align 8, !tbaa !27
  %1458 = fmul double %1457, 2.000000e+00
  %1459 = fmul double %1448, -9.000000e+00
  %1460 = fmul double %1459, %6
  %1461 = fmul double %1429, %1460
  %1462 = call double @llvm.fmuladd.f64(double %1441, double 5.000000e+00, double %1461)
  %1463 = fmul double %1435, -6.000000e+00
  %1464 = fmul double %1463, %6
  %1465 = call double @llvm.fmuladd.f64(double %1464, double %1443, double %1462)
  %1466 = fmul double %1450, 6.000000e+00
  %1467 = call double @llvm.fmuladd.f64(double %1466, double %1299, double %1465)
  %1468 = call double @llvm.fmuladd.f64(double %1458, double %1467, double %1456)
  %1469 = fmul double %1450, 1.200000e+01
  %1470 = fmul double %1469, %6
  %1471 = call double @llvm.fmuladd.f64(double %1470, double %1309, double %1468)
  %1472 = load double, ptr %77, align 8, !tbaa !11
  %1473 = fmul double %1441, 8.000000e+00
  %1474 = fmul double %1473, %6
  %1475 = fmul double %1429, %1474
  %1476 = call double @llvm.fmuladd.f64(double %1428, double -5.000000e+00, double %1475)
  %1477 = fmul double %1449, %6
  %1478 = call double @llvm.fmuladd.f64(double %1477, double %1444, double %1476)
  %1479 = load double, ptr %239, align 8, !tbaa !15
  %1480 = load double, ptr %863, align 8, !tbaa !18
  %1481 = fmul double %1480, %6
  %1482 = call double @llvm.fmuladd.f64(double %1479, double -2.000000e+00, double %1481)
  %1483 = fmul double %1429, 2.000000e+00
  %1484 = load double, ptr %246, align 8, !tbaa !17
  %1485 = call double @llvm.fmuladd.f64(double %1483, double %1484, double %1482)
  %1486 = fmul double %1435, -2.400000e+01
  %1487 = fmul double %1486, %1450
  %1488 = call double @llvm.fmuladd.f64(double %1487, double %1485, double %1478)
  %1489 = call double @llvm.fmuladd.f64(double %1466, double %1325, double %1488)
  %1490 = call double @llvm.fmuladd.f64(double %1472, double %1489, double %1471)
  %1491 = fmul double %1354, %6
  %1492 = fdiv double %1490, %1491
  %1493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %16, i64 noundef 2) #8
  store double %1492, ptr %1493, align 8, !tbaa !19
  %1494 = load double, ptr %1046, align 8, !tbaa !36
  %1495 = load double, ptr %1049, align 8, !tbaa !37
  %1496 = fadd double %1494, %1495
  %1497 = load double, ptr %986, align 8, !tbaa !34
  %1498 = load double, ptr %221, align 8, !tbaa !12
  %1499 = load double, ptr %216, align 8, !tbaa !16
  %1500 = call double @llvm.fmuladd.f64(double %270, double %1499, double %1498)
  %1501 = fmul double %1497, -6.000000e+00
  %1502 = call double @llvm.fmuladd.f64(double %1501, double %1500, double %1496)
  %1503 = load double, ptr %211, align 8, !tbaa !25
  %1504 = fmul double %1503, 4.800000e+01
  %1505 = load double, ptr %206, align 8, !tbaa !23
  %1506 = fmul double %1504, %1505
  %1507 = load double, ptr %536, align 8, !tbaa !31
  %1508 = call double @llvm.fmuladd.f64(double %1506, double %1507, double %1502)
  %1509 = fmul double %1507, %6
  %1510 = load double, ptr %310, align 8, !tbaa !21
  %1511 = load double, ptr %379, align 8, !tbaa !20
  %1512 = fmul double %1510, %1511
  %1513 = call double @llvm.fmuladd.f64(double %1509, double %1507, double %1512)
  %1514 = fmul double %1498, 2.000000e+00
  %1515 = fmul double %1514, %1507
  %1516 = call double @llvm.fmuladd.f64(double %1515, double %1511, double %1513)
  %1517 = fmul double %1505, -7.200000e+01
  %1518 = fmul double %1517, %6
  %1519 = call double @llvm.fmuladd.f64(double %1518, double %1516, double %1508)
  %1520 = load double, ptr %272, align 8, !tbaa !28
  %1521 = fmul double %1520, 3.000000e+00
  %1522 = call double @llvm.fmuladd.f64(double %1521, double %1316, double %1519)
  %1523 = load double, ptr %274, align 8, !tbaa !29
  %1524 = fmul double %1523, -6.000000e+00
  %1525 = fmul double %1524, %6
  %1526 = call double @llvm.fmuladd.f64(double %1525, double %1511, double %1522)
  %1527 = load double, ptr %214, align 8, !tbaa !26
  %1528 = fmul double %1527, 3.600000e+01
  %1529 = fmul double %1505, %1528
  %1530 = call double @llvm.fmuladd.f64(double %1529, double %1510, double %1526)
  %1531 = load double, ptr %209, align 8, !tbaa !24
  %1532 = fmul double %1527, -9.000000e+00
  %1533 = fmul double %1532, %6
  %1534 = fmul double %1499, %1533
  %1535 = call double @llvm.fmuladd.f64(double %1503, double 5.000000e+00, double %1534)
  %1536 = fmul double %1498, -6.000000e+00
  %1537 = fmul double %1536, %6
  %1538 = call double @llvm.fmuladd.f64(double %1537, double %1511, double %1535)
  %1539 = fmul double %1505, 6.000000e+00
  %1540 = call double @llvm.fmuladd.f64(double %1539, double %1299, double %1538)
  %1541 = fmul double %1531, -4.000000e+00
  %1542 = call double @llvm.fmuladd.f64(double %1541, double %1540, double %1530)
  %1543 = load double, ptr %228, align 8, !tbaa !27
  %1544 = fmul double %1543, 3.000000e+00
  %1545 = call double @llvm.fmuladd.f64(double %1544, double %1345, double %1542)
  %1546 = load double, ptr %77, align 8, !tbaa !11
  %1547 = load double, ptr %988, align 8, !tbaa !35
  %1548 = fneg double %1523
  %1549 = fmul double %1548, %6
  %1550 = call double @llvm.fmuladd.f64(double %1549, double %1499, double %1547)
  %1551 = load double, ptr %225, align 8, !tbaa !13
  %1552 = call double @llvm.fmuladd.f64(double %6, double %1551, double %1511)
  %1553 = fmul double %1503, -4.000000e+00
  %1554 = fmul double %1553, %6
  %1555 = call double @llvm.fmuladd.f64(double %1554, double %1552, double %1550)
  %1556 = fmul double %1505, 1.200000e+01
  %1557 = load double, ptr %315, align 8, !tbaa !22
  %1558 = fneg double %1498
  %1559 = fmul double %1351, %1558
  %1560 = call double @llvm.fmuladd.f64(double %1527, double %1557, double %1559)
  %1561 = call double @llvm.fmuladd.f64(double %6, double %1309, double %1560)
  %1562 = call double @llvm.fmuladd.f64(double %1556, double %1561, double %1555)
  %1563 = fmul double %1546, -6.000000e+00
  %1564 = call double @llvm.fmuladd.f64(double %1563, double %1562, double %1545)
  %1565 = fneg double %1564
  %1566 = fmul double %1354, %1539
  %1567 = fdiv double %1565, %1566
  %1568 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %16, i64 noundef 3) #8
  store double %1567, ptr %1568, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #8
  call void @_ZN6ruckig5roots17solve_quart_monicERKSt5arrayIdLm4EE(ptr dead_on_unwind nonnull writable sret(%"class.ruckig::roots::PositiveSet") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %16)
  %1569 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %17)
  %1570 = call noundef ptr @_ZN6ruckig5roots3SetIdLm4EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %17)
  %.not657731 = icmp eq ptr %1569, %1570
  br i1 %.not657731, label %._crit_edge735, label %.lr.ph734

.lr.ph734:                                        ; preds = %._crit_edge730, %1617
  %.0648732 = phi ptr [ %1618, %1617 ], [ %1569, %._crit_edge730 ]
  %1571 = load double, ptr %.0648732, align 8, !tbaa !19
  %1572 = load double, ptr %216, align 8, !tbaa !16
  %1573 = fcmp ogt double %1571, %1572
  br i1 %1573, label %1617, label %1574

1574:                                             ; preds = %.lr.ph734
  %1575 = load double, ptr %77, align 8, !tbaa !11
  %1576 = fsub double %4, %1575
  %1577 = fdiv double %1576, %6
  %1578 = fcmp ogt double %1571, %1577
  br i1 %1578, label %1617, label %1579

1579:                                             ; preds = %1574
  %1580 = load <2 x double>, ptr %712, align 8
  %1581 = load double, ptr %206, align 8, !tbaa !23
  %1582 = fmul double %1581, 2.000000e+00
  %1583 = fadd double %1571, %1572
  %1584 = load double, ptr %221, align 8, !tbaa !12
  %1585 = fneg double %1584
  %1586 = fmul double %1571, %1585
  %1587 = call double @llvm.fmuladd.f64(double %1575, double %1583, double %1586)
  %1588 = fmul double %1571, %6
  %1589 = call double @llvm.fmuladd.f64(double %1588, double %1572, double %1587)
  %1590 = load double, ptr %379, align 8, !tbaa !20
  %1591 = fsub double %1589, %1590
  %1592 = insertelement <2 x double> %1580, double %1591, i64 1
  %1593 = insertelement <2 x double> poison, double %1582, i64 0
  %1594 = insertelement <2 x double> %1593, double %6, i64 1
  %1595 = fdiv <2 x double> %1592, %1594
  %shift743 = shufflevector <2 x double> %1595, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %1596 = fadd <2 x double> %1595, %shift743
  %1597 = extractelement <2 x double> %1596, i64 0
  %1598 = call double @sqrt(double noundef %1597) #8
  %1599 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %1571, ptr %1599, align 8, !tbaa !19
  %1600 = load double, ptr %216, align 8, !tbaa !16
  %1601 = load double, ptr %375, align 8, !tbaa !30
  %1602 = fdiv double %1601, %6
  %1603 = fsub double %1600, %1602
  %1604 = call double @llvm.fmuladd.f64(double %1598, double -2.000000e+00, double %1603)
  %1605 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double %1604, ptr %1605, align 8, !tbaa !19
  %1606 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %1598, ptr %1606, align 8, !tbaa !19
  %1607 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double 0.000000e+00, ptr %1607, align 8, !tbaa !19
  %1608 = load double, ptr %375, align 8, !tbaa !30
  %1609 = fdiv double %1608, %6
  %1610 = fadd double %1598, %1609
  %1611 = fsub double %1610, %1571
  %1612 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double %1611, ptr %1612, align 8, !tbaa !19
  %1613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %1613, align 8, !tbaa !19
  %1614 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double 0.000000e+00, ptr %1614, align 8, !tbaa !19
  %1615 = load double, ptr %216, align 8, !tbaa !16
  %1616 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE1ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %1615, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br i1 %1616, label %1619, label %1617

1617:                                             ; preds = %1579, %1574, %.lr.ph734
  %1618 = getelementptr inbounds i8, ptr %.0648732, i64 8
  %.not657 = icmp eq ptr %1618, %1570
  br i1 %.not657, label %._crit_edge735, label %.lr.ph734

1619:                                             ; preds = %1579
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %1791

._crit_edge735:                                   ; preds = %1617, %._crit_edge730
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  %1620 = load double, ptr %712, align 8, !tbaa !32
  %1621 = fneg double %1620
  %1622 = load double, ptr %77, align 8, !tbaa !11
  %1623 = load double, ptr %221, align 8, !tbaa !12
  %1624 = fadd double %1622, %1623
  %1625 = fmul double %1624, 2.000000e+00
  %1626 = load double, ptr %216, align 8, !tbaa !16
  %1627 = load double, ptr %379, align 8, !tbaa !20
  %1628 = fmul double %1627, -4.000000e+00
  %1629 = call double @llvm.fmuladd.f64(double %1625, double %1626, double %1628)
  %1630 = load double, ptr %225, align 8, !tbaa !13
  %1631 = call double @llvm.fmuladd.f64(double %6, double %1630, double %1629)
  %1632 = call double @llvm.fmuladd.f64(double %6, double %1631, double %1621)
  %1633 = call double @sqrt(double noundef %1632) #8
  %1634 = call noundef double @_ZSt3absd(double noundef %6)
  %1635 = fdiv double %1633, %1634
  %1636 = load double, ptr %216, align 8, !tbaa !16
  %1637 = fsub double %1636, %1635
  %1638 = load double, ptr %375, align 8, !tbaa !30
  %1639 = fdiv double %1638, %6
  %1640 = fadd double %1637, %1639
  %1641 = fmul double %1640, 5.000000e-01
  %1642 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %1641, ptr %1642, align 8, !tbaa !19
  %1643 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double %1635, ptr %1643, align 8, !tbaa !19
  %1644 = load double, ptr %216, align 8, !tbaa !16
  %1645 = fsub double %1644, %1635
  %1646 = load double, ptr %375, align 8, !tbaa !30
  %1647 = fdiv double %1646, %6
  %1648 = fsub double %1645, %1647
  %1649 = fmul double %1648, 5.000000e-01
  %1650 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %1649, ptr %1650, align 8, !tbaa !19
  %1651 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double 0.000000e+00, ptr %1651, align 8, !tbaa !19
  %1652 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double 0.000000e+00, ptr %1652, align 8, !tbaa !19
  %1653 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %1653, align 8, !tbaa !19
  %1654 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double 0.000000e+00, ptr %1654, align 8, !tbaa !19
  %1655 = load double, ptr %216, align 8, !tbaa !16
  %1656 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %1655, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br i1 %1656, label %1791, label %1657

1657:                                             ; preds = %._crit_edge735
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  %1658 = load double, ptr %712, align 8, !tbaa !32
  %1659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 0) #8
  store double %1658, ptr %1659, align 8, !tbaa !19
  %1660 = load double, ptr %712, align 8, !tbaa !32
  %1661 = load double, ptr %216, align 8, !tbaa !16
  %1662 = fmul double %1660, %1661
  %1663 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 1) #8
  store double %1662, ptr %1663, align 8, !tbaa !19
  %1664 = load double, ptr %228, align 8, !tbaa !27
  %1665 = load double, ptr %214, align 8, !tbaa !26
  %1666 = fadd double %1664, %1665
  %1667 = load double, ptr %77, align 8, !tbaa !11
  %1668 = fmul double %1667, 1.000000e+01
  %1669 = load double, ptr %221, align 8, !tbaa !12
  %1670 = call double @llvm.fmuladd.f64(double %1668, double %1669, double %1666)
  %1671 = load double, ptr %225, align 8, !tbaa !13
  %1672 = load double, ptr %216, align 8, !tbaa !16
  %1673 = load double, ptr %0, align 8, !tbaa !5
  %1674 = load double, ptr %246, align 8, !tbaa !17
  %1675 = fneg double %1667
  %1676 = fmul double %1674, %1675
  %1677 = call double @llvm.fmuladd.f64(double %1669, double %1673, double %1676)
  %1678 = load double, ptr %239, align 8, !tbaa !15
  %1679 = load double, ptr %375, align 8, !tbaa !30
  %1680 = fneg double %1678
  %1681 = fmul double %1679, %1680
  %1682 = call double @llvm.fmuladd.f64(double %1672, double %1677, double %1681)
  %1683 = fmul double %1682, 2.400000e+01
  %1684 = call double @llvm.fmuladd.f64(double %1670, double %1671, double %1683)
  %1685 = load double, ptr %310, align 8, !tbaa !21
  %1686 = call double @llvm.fmuladd.f64(double %1685, double 1.200000e+01, double %1684)
  %1687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 2) #8
  store double %1686, ptr %1687, align 8, !tbaa !19
  %1688 = load double, ptr %216, align 8, !tbaa !16
  %1689 = fmul double %1688, -3.000000e+00
  %1690 = load double, ptr %228, align 8, !tbaa !27
  %1691 = load double, ptr %214, align 8, !tbaa !26
  %1692 = fadd double %1690, %1691
  %1693 = load double, ptr %77, align 8, !tbaa !11
  %1694 = fmul double %1693, 2.000000e+00
  %1695 = load double, ptr %221, align 8, !tbaa !12
  %1696 = call double @llvm.fmuladd.f64(double %1694, double %1695, double %1692)
  %1697 = load double, ptr %225, align 8, !tbaa !13
  %1698 = load double, ptr %379, align 8, !tbaa !20
  %1699 = fadd double %1693, %1695
  %1700 = fmul double %1698, -4.000000e+00
  %1701 = fmul double %1699, %1700
  %1702 = fmul double %1688, %1701
  %1703 = call double @llvm.fmuladd.f64(double %1696, double %1697, double %1702)
  %1704 = load double, ptr %310, align 8, !tbaa !21
  %1705 = call double @llvm.fmuladd.f64(double %1704, double 4.000000e+00, double %1703)
  %1706 = fmul double %1689, %1705
  %1707 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 3) #8
  store double %1706, ptr %1707, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  %1708 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 0) #8
  %1709 = load double, ptr %1708, align 8, !tbaa !19
  %1710 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 1) #8
  %1711 = load double, ptr %1710, align 8, !tbaa !19
  %1712 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 2) #8
  %1713 = load double, ptr %1712, align 8, !tbaa !19
  %1714 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 3) #8
  %1715 = load double, ptr %1714, align 8, !tbaa !19
  call void @_ZN6ruckig5roots11solve_cubicEdddd(ptr dead_on_unwind nonnull writable sret(%"class.ruckig::roots::PositiveSet.3") align 8 %19, double noundef %1709, double noundef %1711, double noundef %1713, double noundef %1715)
  %1716 = call noundef ptr @_ZN6ruckig5roots3SetIdLm3EE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %19)
  %1717 = call noundef ptr @_ZN6ruckig5roots3SetIdLm3EE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %19)
  %.not658736 = icmp eq ptr %1716, %1717
  br i1 %.not658736, label %._crit_edge740, label %.lr.ph739

.lr.ph739:                                        ; preds = %1657, %1751
  %.0645737 = phi ptr [ %1752, %1751 ], [ %1716, %1657 ]
  %1718 = load double, ptr %.0645737, align 8, !tbaa !19
  %1719 = load double, ptr %216, align 8, !tbaa !16
  %1720 = fcmp ogt double %1718, %1719
  br i1 %1720, label %1751, label %1721

1721:                                             ; preds = %.lr.ph739
  %1722 = load double, ptr %375, align 8, !tbaa !30
  %1723 = fsub double %1719, %1718
  %1724 = fdiv double %1722, %1723
  %1725 = load double, ptr %379, align 8, !tbaa !20
  %1726 = load double, ptr %77, align 8, !tbaa !11
  %1727 = fneg double %1726
  %1728 = call double @llvm.fmuladd.f64(double %1727, double %1719, double %1725)
  %1729 = fsub double %1718, %1719
  %1730 = fmul double %1729, %1722
  %1731 = call double @llvm.fmuladd.f64(double %1728, double 2.000000e+00, double %1730)
  %1732 = fmul double %1724, 2.000000e+00
  %1733 = fmul double %1718, %1732
  %1734 = fdiv double %1731, %1733
  %1735 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %1734, ptr %1735, align 8, !tbaa !19
  %1736 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double %1718, ptr %1736, align 8, !tbaa !19
  %1737 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double 0.000000e+00, ptr %1737, align 8, !tbaa !19
  %1738 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double 0.000000e+00, ptr %1738, align 8, !tbaa !19
  %1739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double 0.000000e+00, ptr %1739, align 8, !tbaa !19
  %1740 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %1740, align 8, !tbaa !19
  %1741 = load double, ptr %216, align 8, !tbaa !16
  %1742 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  %1743 = load double, ptr %1742, align 8, !tbaa !19
  %1744 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  %1745 = load double, ptr %1744, align 8, !tbaa !19
  %1746 = fadd double %1743, %1745
  %1747 = fsub double %1741, %1746
  %1748 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double %1747, ptr %1748, align 8, !tbaa !19
  %1749 = load double, ptr %216, align 8, !tbaa !16
  %1750 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbddddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %1749, double noundef %1724, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6)
  br i1 %1750, label %1753, label %1751

1751:                                             ; preds = %1721, %.lr.ph739
  %1752 = getelementptr inbounds i8, ptr %.0645737, i64 8
  %.not658 = icmp eq ptr %1752, %1717
  br i1 %.not658, label %._crit_edge740, label %.lr.ph739

1753:                                             ; preds = %1721
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br label %1791

._crit_edge740:                                   ; preds = %1751, %1657
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  %1754 = load double, ptr %712, align 8, !tbaa !32
  %1755 = fdiv double %1754, %6
  %1756 = load double, ptr %77, align 8, !tbaa !11
  %1757 = load double, ptr %221, align 8, !tbaa !12
  %1758 = fadd double %1756, %1757
  %1759 = fmul double %1758, 2.000000e+00
  %1760 = load double, ptr %216, align 8, !tbaa !16
  %1761 = call double @llvm.fmuladd.f64(double %1759, double %1760, double %1755)
  %1762 = load double, ptr %225, align 8, !tbaa !13
  %1763 = call double @llvm.fmuladd.f64(double %270, double %1762, double %1761)
  %1764 = load double, ptr %379, align 8, !tbaa !20
  %1765 = call double @llvm.fmuladd.f64(double %1764, double -4.000000e+00, double %1763)
  %1766 = load double, ptr %375, align 8, !tbaa !30
  %1767 = call double @llvm.fmuladd.f64(double %270, double %1760, double %1766)
  %1768 = fmul double %1767, 4.000000e+00
  %1769 = fdiv double %1765, %1768
  %1770 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  store double %1769, ptr %1770, align 8, !tbaa !19
  %1771 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 1) #8
  store double 0.000000e+00, ptr %1771, align 8, !tbaa !19
  %1772 = load double, ptr %375, align 8, !tbaa !30
  %1773 = load double, ptr %216, align 8, !tbaa !16
  %1774 = fmul double %1773, 5.000000e-01
  %1775 = fdiv double %1772, %.pre-phi
  %1776 = fsub double %1774, %1775
  %1777 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  store double %1776, ptr %1777, align 8, !tbaa !19
  %1778 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 3) #8
  store double 0.000000e+00, ptr %1778, align 8, !tbaa !19
  %1779 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 4) #8
  store double 0.000000e+00, ptr %1779, align 8, !tbaa !19
  %1780 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 5) #8
  store double 0.000000e+00, ptr %1780, align 8, !tbaa !19
  %1781 = load double, ptr %216, align 8, !tbaa !16
  %1782 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 0) #8
  %1783 = load double, ptr %1782, align 8, !tbaa !19
  %1784 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 2) #8
  %1785 = load double, ptr %1784, align 8, !tbaa !19
  %1786 = fadd double %1783, %1785
  %1787 = fsub double %1781, %1786
  %1788 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm7EEixEm(ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef 6) #8
  store double %1787, ptr %1788, align 8, !tbaa !19
  %1789 = load double, ptr %216, align 8, !tbaa !16
  %1790 = call noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbdddddd(ptr noundef nonnull align 8 dereferenceable(572) %1, double noundef %1789, double noundef %6, double noundef %2, double noundef %3, double noundef %4, double noundef %5)
  br label %1791

1791:                                             ; preds = %1753, %1619, %1290, %710, %204, %._crit_edge735, %._crit_edge, %205, %33, %._crit_edge740
  %.24 = phi i1 [ true, %33 ], [ true, %204 ], [ true, %205 ], [ true, %710 ], [ true, %._crit_edge ], [ true, %1290 ], [ true, %1619 ], [ true, %._crit_edge735 ], [ true, %1753 ], [ %1790, %._crit_edge740 ]
  ret i1 %.24
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ruckig7Profile17check_with_timingILNS0_12ControlSignsE0ELNS0_13ReachedLimitsE7EEEbddddddd(ptr noundef nonnull align 8 dereferenceable(572), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #5 align 2

; 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>) #7

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nofree nounwind willreturn memory(write) "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 = { 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 #4 = { 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 #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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, !7, i64 0}
!6 = !{!"_ZTSN6ruckig23PositionThirdOrderStep2E", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !7, i64 208, !7, i64 216, !7, i64 224, !7, i64 232, !7, i64 240, !7, i64 248, !7, i64 256, !10, i64 264}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!6, !7, i64 8}
!12 = !{!6, !7, i64 32}
!13 = !{!6, !7, i64 88}
!14 = !{!6, !7, i64 152}
!15 = !{!6, !7, i64 80}
!16 = !{!6, !7, i64 16}
!17 = !{!6, !7, i64 24}
!18 = !{!6, !7, i64 96}
!19 = !{!7, !7, i64 0}
!20 = !{!6, !7, i64 112}
!21 = !{!6, !7, i64 120}
!22 = !{!6, !7, i64 256}
!23 = !{!6, !7, i64 240}
!24 = !{!6, !7, i64 168}
!25 = !{!6, !7, i64 208}
!26 = !{!6, !7, i64 200}
!27 = !{!6, !7, i64 160}
!28 = !{!6, !7, i64 176}
!29 = !{!6, !7, i64 216}
!30 = !{!6, !7, i64 128}
!31 = !{!6, !7, i64 248}
!32 = !{!6, !7, i64 136}
!33 = !{!6, !7, i64 104}
!34 = !{!6, !7, i64 184}
!35 = !{!6, !7, i64 224}
!36 = !{!6, !7, i64 192}
!37 = !{!6, !7, i64 232}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass