; LLVM IR from romerojosh/zefr :: src/hexas.ll (ZN5Hexas8set_locsEv)

; 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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.2" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.160" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.Elements = type { ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8], %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %"class.std::vector.0", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector.5, %class.mdvector.5, %class.mdvector.5, %class.mdvector.5, %class.mdvector.5, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.7", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, i64, i64, i64, i64, i64, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdview, %class.mdview, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, i32, [4 x i8], %class.mdvector, %class.mdvector, i32, ptr, %"class.std::vector.7", %class.mdvector.5, %class.mdvector, %class.mdvector, %class.mdvector }
%class.mdview = type { %class.mdvector.12, %class.mdvector.5, i32, [4 x i8] }
%class.mdvector.12 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.13", ptr, i8, [7 x i8] }>
%"struct.std::array" = type { [6 x i32] }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.mdvector.5 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.0", ptr, i8, [7 x i8] }>
%class.mdvector = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector", ptr, i8, [7 x i8] }>
%struct.InputStruct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i8, i8, i8, i8, %"class.std::vector.0", %"class.std::vector.0", i32, i32, double, double, double, double, double, double, double, double, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, 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, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, i32, i32, double, double, i32, double, double, double, double, double, double, double, double, i16, i16, i16, i16, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, %"class.std::vector.22", %"class.std::vector.7", double, double, double, double, double, double, [3 x double], double, [3 x double], [3 x double], [3 x double], [3 x double], double, [3 x double], [3 x double], double, [9 x double], %"class.std::map", i8, i8, i8, i8, i8, i8, i8, i8, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, double, double, %class.Timer }
%"class.std::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%class.Timer = type { %"class.std::chrono::time_point", %"class.std::chrono::time_point", double, %"class.std::__cxx11::basic_string" }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }

@.str = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [6 x i8], align 1
@__func__._ZN5Hexas8set_locsEv = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [26 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #3

declare ptr @__cxa_allocate_exception(i64)

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) #1 align 2

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5 align 2

declare void @__cxa_free_exception(ptr)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Hexas8set_locsEv(ptr noundef nonnull align 8 dereferenceable(13968) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::vector.0", align 8
  %4 = alloca %"class.std::initializer_list", align 8
  %5 = alloca [2 x i32], align 4
  %6 = alloca %"class.std::allocator.2", align 1
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::vector.0", align 8
  %10 = alloca %"class.std::initializer_list", align 8
  %11 = alloca [2 x i32], align 4
  %12 = alloca %"class.std::allocator.2", align 1
  %13 = alloca %"class.std::vector.0", align 8
  %14 = alloca %"class.std::initializer_list", align 8
  %15 = alloca [2 x i32], align 4
  %16 = alloca %"class.std::allocator.2", align 1
  %17 = alloca %"class.std::vector.0", align 8
  %18 = alloca %"class.std::initializer_list", align 8
  %19 = alloca [2 x i32], align 4
  %20 = alloca %"class.std::allocator.2", align 1
  %21 = alloca %"class.std::vector.0", align 8
  %22 = alloca %"class.std::initializer_list", align 8
  %23 = alloca [2 x i32], align 4
  %24 = alloca %"class.std::allocator.2", align 1
  %25 = alloca %"class.std::vector.0", align 8
  %26 = alloca %"class.std::initializer_list", align 8
  %27 = alloca [2 x i32], align 4
  %28 = alloca %"class.std::allocator.2", align 1
  %29 = alloca %"class.std::vector.0", align 8
  %30 = alloca %"class.std::initializer_list", align 8
  %31 = alloca [2 x i32], align 4
  %32 = alloca %"class.std::allocator.2", align 1
  %33 = alloca %"class.std::vector.0", align 8
  %34 = alloca %"class.std::initializer_list", align 8
  %35 = alloca [2 x i32], align 4
  %36 = alloca %"class.std::allocator.2", align 1
  %37 = alloca %"class.std::vector", align 8
  %38 = alloca %"class.std::vector", align 8
  %39 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::vector", align 8
  %44 = alloca %"class.std::vector.0", align 8
  %45 = alloca %"class.std::initializer_list", align 8
  %46 = alloca [2 x i32], align 4
  %47 = alloca %"class.std::allocator.2", align 1
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca double, align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %57 = alloca double, align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %59 = alloca %"class.std::vector.0", align 8
  %60 = alloca %"class.std::initializer_list", align 8
  %61 = alloca [1 x i32], align 4
  %62 = alloca %"class.std::allocator.2", align 1
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca %"class.std::vector", align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca %"class.std::vector", align 8
  %77 = alloca %"class.std::vector", align 8
  %78 = alloca %"class.std::vector.0", align 8
  %79 = alloca %"class.std::initializer_list", align 8
  %80 = alloca [1 x i32], align 4
  %81 = alloca %"class.std::allocator.2", align 1
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %86 = load ptr, ptr %2, align 8
  %87 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 28
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %88 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 12
  %89 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %89, ptr %5, align 4, !tbaa !36
  %90 = getelementptr inbounds i32, ptr %5, i64 1
  %91 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %92 = load i32, ptr %91, align 4, !tbaa !37
  store i32 %92, ptr %90, align 4, !tbaa !36
  %93 = getelementptr inbounds %"class.std::initializer_list", ptr %4, i32 0, i32 0
  store ptr %5, ptr %93, align 8, !tbaa !38
  %94 = getelementptr inbounds %"class.std::initializer_list", ptr %4, i32 0, i32 1
  store i64 2, ptr %94, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %95 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
  %96 = load ptr, ptr %95, align 8
  %97 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
  %98 = load i64, ptr %97, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr %96, i64 %98, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %99 unwind label %209

99:                                               ; preds = %1
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %87, ptr noundef %3, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %100 unwind label %213

100:                                              ; preds = %99
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  %101 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 33
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %102 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 12
  %103 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %103, ptr %11, align 4, !tbaa !36
  %104 = getelementptr inbounds i32, ptr %11, i64 1
  %105 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %106 = load i32, ptr %105, align 4, !tbaa !37
  store i32 %106, ptr %104, align 4, !tbaa !36
  %107 = getelementptr inbounds %"class.std::initializer_list", ptr %10, i32 0, i32 0
  store ptr %11, ptr %107, align 8, !tbaa !38
  %108 = getelementptr inbounds %"class.std::initializer_list", ptr %10, i32 0, i32 1
  store i64 2, ptr %108, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  %109 = getelementptr inbounds { ptr, i64 }, ptr %10, i32 0, i32 0
  %110 = load ptr, ptr %109, align 8
  %111 = getelementptr inbounds { ptr, i64 }, ptr %10, i32 0, i32 1
  %112 = load i64, ptr %111, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr %110, i64 %112, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %113 unwind label %218

113:                                              ; preds = %100
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %101, ptr noundef %9, i32 noundef 0, i1 noundef zeroext false)
          to label %114 unwind label %222

114:                                              ; preds = %113
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  %115 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %116 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 13
  %117 = load i32, ptr %116, align 8, !tbaa !41
  store i32 %117, ptr %15, align 4, !tbaa !36
  %118 = getelementptr inbounds i32, ptr %15, i64 1
  %119 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %120 = load i32, ptr %119, align 4, !tbaa !37
  store i32 %120, ptr %118, align 4, !tbaa !36
  %121 = getelementptr inbounds %"class.std::initializer_list", ptr %14, i32 0, i32 0
  store ptr %15, ptr %121, align 8, !tbaa !38
  %122 = getelementptr inbounds %"class.std::initializer_list", ptr %14, i32 0, i32 1
  store i64 2, ptr %122, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  %123 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
  %124 = load ptr, ptr %123, align 8
  %125 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
  %126 = load i64, ptr %125, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr %124, i64 %126, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %127 unwind label %227

127:                                              ; preds = %114
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %115, ptr noundef %13, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %128 unwind label %231

128:                                              ; preds = %127
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  %129 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %130 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 13
  %131 = load i32, ptr %130, align 8, !tbaa !41
  store i32 %131, ptr %19, align 4, !tbaa !36
  %132 = getelementptr inbounds i32, ptr %19, i64 1
  %133 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %134 = load i32, ptr %133, align 4, !tbaa !37
  store i32 %134, ptr %132, align 4, !tbaa !36
  %135 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 0
  store ptr %19, ptr %135, align 8, !tbaa !38
  %136 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 1
  store i64 2, ptr %136, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  %137 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 0
  %138 = load ptr, ptr %137, align 8
  %139 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 1
  %140 = load i64, ptr %139, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr %138, i64 %140, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %141 unwind label %236

141:                                              ; preds = %128
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %129, ptr noundef %17, i32 noundef 0, i1 noundef zeroext false)
          to label %142 unwind label %240

142:                                              ; preds = %141
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  %143 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 30
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %144 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 15
  %145 = load i32, ptr %144, align 8, !tbaa !42
  store i32 %145, ptr %23, align 4, !tbaa !36
  %146 = getelementptr inbounds i32, ptr %23, i64 1
  %147 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %148 = load i32, ptr %147, align 4, !tbaa !37
  store i32 %148, ptr %146, align 4, !tbaa !36
  %149 = getelementptr inbounds %"class.std::initializer_list", ptr %22, i32 0, i32 0
  store ptr %23, ptr %149, align 8, !tbaa !38
  %150 = getelementptr inbounds %"class.std::initializer_list", ptr %22, i32 0, i32 1
  store i64 2, ptr %150, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  %151 = getelementptr inbounds { ptr, i64 }, ptr %22, i32 0, i32 0
  %152 = load ptr, ptr %151, align 8
  %153 = getelementptr inbounds { ptr, i64 }, ptr %22, i32 0, i32 1
  %154 = load i64, ptr %153, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr %152, i64 %154, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %155 unwind label %245

155:                                              ; preds = %142
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %143, ptr noundef %21, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %156 unwind label %249

156:                                              ; preds = %155
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  %157 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 35
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %158 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 15
  %159 = load i32, ptr %158, align 8, !tbaa !42
  store i32 %159, ptr %27, align 4, !tbaa !36
  %160 = getelementptr inbounds i32, ptr %27, i64 1
  %161 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %162 = load i32, ptr %161, align 4, !tbaa !37
  store i32 %162, ptr %160, align 4, !tbaa !36
  %163 = getelementptr inbounds %"class.std::initializer_list", ptr %26, i32 0, i32 0
  store ptr %27, ptr %163, align 8, !tbaa !38
  %164 = getelementptr inbounds %"class.std::initializer_list", ptr %26, i32 0, i32 1
  store i64 2, ptr %164, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  %165 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 0
  %166 = load ptr, ptr %165, align 8
  %167 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 1
  %168 = load i64, ptr %167, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr %166, i64 %168, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %169 unwind label %254

169:                                              ; preds = %156
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %157, ptr noundef %25, i32 noundef 0, i1 noundef zeroext false)
          to label %170 unwind label %258

170:                                              ; preds = %169
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  %171 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 32
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %172 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 16
  %173 = load i32, ptr %172, align 4, !tbaa !43
  store i32 %173, ptr %31, align 4, !tbaa !36
  %174 = getelementptr inbounds i32, ptr %31, i64 1
  %175 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %176 = load i32, ptr %175, align 4, !tbaa !37
  store i32 %176, ptr %174, align 4, !tbaa !36
  %177 = getelementptr inbounds %"class.std::initializer_list", ptr %30, i32 0, i32 0
  store ptr %31, ptr %177, align 8, !tbaa !38
  %178 = getelementptr inbounds %"class.std::initializer_list", ptr %30, i32 0, i32 1
  store i64 2, ptr %178, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  %179 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 0
  %180 = load ptr, ptr %179, align 8
  %181 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 1
  %182 = load i64, ptr %181, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr %180, i64 %182, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %183 unwind label %263

183:                                              ; preds = %170
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %171, ptr noundef %29, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %184 unwind label %267

184:                                              ; preds = %183
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  %185 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 37
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %186 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 16
  %187 = load i32, ptr %186, align 4, !tbaa !43
  store i32 %187, ptr %35, align 4, !tbaa !36
  %188 = getelementptr inbounds i32, ptr %35, i64 1
  %189 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 10
  %190 = load i32, ptr %189, align 4, !tbaa !37
  store i32 %190, ptr %188, align 4, !tbaa !36
  %191 = getelementptr inbounds %"class.std::initializer_list", ptr %34, i32 0, i32 0
  store ptr %35, ptr %191, align 8, !tbaa !38
  %192 = getelementptr inbounds %"class.std::initializer_list", ptr %34, i32 0, i32 1
  store i64 2, ptr %192, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  %193 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 0
  %194 = load ptr, ptr %193, align 8
  %195 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 1
  %196 = load i64, ptr %195, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr %194, i64 %196, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %197 unwind label %272

197:                                              ; preds = %184
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %185, ptr noundef %33, i32 noundef 0, i1 noundef zeroext false)
          to label %198 unwind label %276

198:                                              ; preds = %197
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  %199 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %200 = load ptr, ptr %199, align 8, !tbaa !44
  %201 = getelementptr inbounds %struct.InputStruct, ptr %200, i32 0, i32 20
  %202 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef @.str.4)
  br i1 %202, label %203, label %281

203:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #7
  %204 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 5
  %205 = load i32, ptr %204, align 8, !tbaa !45
  %206 = add i32 %205, 1
  call void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %37, i32 noundef %206)
  %207 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %208 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %207, ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #7
  br label %342

209:                                              ; preds = %1
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %7, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %8, align 4
  br label %217

213:                                              ; preds = %99
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %7, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  br label %217

217:                                              ; preds = %213, %209
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  br label %1103

218:                                              ; preds = %100
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %7, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %8, align 4
  br label %226

222:                                              ; preds = %113
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %7, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %226

226:                                              ; preds = %222, %218
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %1103

227:                                              ; preds = %114
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %7, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %8, align 4
  br label %235

231:                                              ; preds = %127
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %7, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  br label %235

235:                                              ; preds = %231, %227
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %1103

236:                                              ; preds = %128
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %7, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %8, align 4
  br label %244

240:                                              ; preds = %141
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %7, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  br label %244

244:                                              ; preds = %240, %236
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %1103

245:                                              ; preds = %142
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %7, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %8, align 4
  br label %253

249:                                              ; preds = %155
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %7, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  br label %253

253:                                              ; preds = %249, %245
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %1103

254:                                              ; preds = %156
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %7, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %8, align 4
  br label %262

258:                                              ; preds = %169
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %7, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  br label %262

262:                                              ; preds = %258, %254
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %1103

263:                                              ; preds = %170
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %7, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %8, align 4
  br label %271

267:                                              ; preds = %183
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %7, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  br label %271

271:                                              ; preds = %267, %263
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %1103

272:                                              ; preds = %184
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %7, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %8, align 4
  br label %280

276:                                              ; preds = %197
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %7, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  br label %280

280:                                              ; preds = %276, %272
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %1103

281:                                              ; preds = %198
  %282 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %283 = load ptr, ptr %282, align 8, !tbaa !44
  %284 = getelementptr inbounds %struct.InputStruct, ptr %283, i32 0, i32 20
  %285 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef @.str.5)
  br i1 %285, label %286, label %292

286:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #7
  %287 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 5
  %288 = load i32, ptr %287, align 8, !tbaa !45
  %289 = add i32 %288, 1
  call void @_Z9DFRsp_ptsjd(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %38, i32 noundef %289, double noundef 0x3FD5BFFB2237A15D)
  %290 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %291 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %290, ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #7
  br label %341

292:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 392, ptr %39) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %39)
  %293 = getelementptr inbounds i8, ptr %39, i64 16
  %294 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %293, ptr noundef @.str)
          to label %295 unwind label %315

295:                                              ; preds = %292
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef @.str.1)
          to label %297 unwind label %315

297:                                              ; preds = %295
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %296, i32 noundef 65)
          to label %299 unwind label %315

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef @.str.1)
          to label %301 unwind label %315

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef @__func__._ZN5Hexas8set_locsEv)
          to label %303 unwind label %315

303:                                              ; preds = %301
  %304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef @.str.2)
          to label %305 unwind label %315

305:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  %306 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %307 = load ptr, ptr %306, align 8, !tbaa !44
  %308 = getelementptr inbounds %struct.InputStruct, ptr %307, i32 0, i32 20
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef @.str.6, ptr noundef nonnull align 8 dereferenceable(32) %308)
          to label %309 unwind label %319

309:                                              ; preds = %305
  %310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %311 unwind label %323

311:                                              ; preds = %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  store i1 true, ptr %42, align 1
  %312 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %313 unwind label %328

313:                                              ; preds = %311
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %312, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %314 unwind label %332

314:                                              ; preds = %313
  store i1 false, ptr %42, align 1
  invoke void @__cxa_throw(ptr %312, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #8
          to label %1108 unwind label %332

315:                                              ; preds = %303, %301, %299, %297, %295, %292
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %7, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %8, align 4
  br label %340

319:                                              ; preds = %305
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %7, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %8, align 4
  br label %327

323:                                              ; preds = %309
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %7, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %327

327:                                              ; preds = %323, %319
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  br label %340

328:                                              ; preds = %311
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %7, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %8, align 4
  br label %336

332:                                              ; preds = %314, %313
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %7, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %336

336:                                              ; preds = %332, %328
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  %337 = load i1, ptr %42, align 1
  br i1 %337, label %338, label %339

338:                                              ; preds = %336
  call void @__cxa_free_exception(ptr %312) #7
  br label %339

339:                                              ; preds = %338, %336
  br label %340

340:                                              ; preds = %339, %327, %315
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %39) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %39) #7
  br label %1103

341:                                              ; preds = %286
  br label %342

342:                                              ; preds = %341, %203
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #7
  %343 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %344 = load i32, ptr %343, align 4, !tbaa !46
  call void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %43, i32 noundef %344)
  %345 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 64
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %346 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %347 = load i32, ptr %346, align 4, !tbaa !46
  store i32 %347, ptr %46, align 4, !tbaa !36
  %348 = getelementptr inbounds i32, ptr %46, i64 1
  %349 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %350 = load i32, ptr %349, align 4, !tbaa !46
  store i32 %350, ptr %348, align 4, !tbaa !36
  %351 = getelementptr inbounds %"class.std::initializer_list", ptr %45, i32 0, i32 0
  store ptr %46, ptr %351, align 8, !tbaa !38
  %352 = getelementptr inbounds %"class.std::initializer_list", ptr %45, i32 0, i32 1
  store i64 2, ptr %352, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  %353 = getelementptr inbounds { ptr, i64 }, ptr %45, i32 0, i32 0
  %354 = load ptr, ptr %353, align 8
  %355 = getelementptr inbounds { ptr, i64 }, ptr %45, i32 0, i32 1
  %356 = load i64, ptr %355, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr %354, i64 %356, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %357 unwind label %365

357:                                              ; preds = %342
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %345, ptr noundef %44, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %358 unwind label %369

358:                                              ; preds = %357
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  store i32 0, ptr %48, align 4, !tbaa !36
  br label %359

359:                                              ; preds = %404, %358
  %360 = load i32, ptr %48, align 4, !tbaa !36
  %361 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %362 = load i32, ptr %361, align 4, !tbaa !46
  %363 = icmp ult i32 %360, %362
  br i1 %363, label %374, label %364

364:                                              ; preds = %359
  store i32 2, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %407

365:                                              ; preds = %342
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %7, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %8, align 4
  br label %373

369:                                              ; preds = %357
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %7, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  br label %373

373:                                              ; preds = %369, %365
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %1102

374:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 0, ptr %50, align 4, !tbaa !36
  br label %375

375:                                              ; preds = %396, %374
  %376 = load i32, ptr %50, align 4, !tbaa !36
  %377 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %378 = load i32, ptr %377, align 4, !tbaa !46
  %379 = icmp ult i32 %376, %378
  br i1 %379, label %381, label %380

380:                                              ; preds = %375
  store i32 5, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %403

381:                                              ; preds = %375
  %382 = load i32, ptr %48, align 4, !tbaa !36
  %383 = zext i32 %382 to i64
  %384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %383) #7
  %385 = load double, ptr %384, align 8, !tbaa !47
  %386 = load i32, ptr %50, align 4, !tbaa !36
  %387 = zext i32 %386 to i64
  %388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %387) #7
  %389 = load double, ptr %388, align 8, !tbaa !47
  %390 = fmul double %385, %389
  %391 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 64
  %392 = load i32, ptr %48, align 4, !tbaa !36
  %393 = load i32, ptr %50, align 4, !tbaa !36
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %391, i32 noundef %392, i32 noundef %393)
          to label %395 unwind label %399

395:                                              ; preds = %381
  store double %390, ptr %394, align 8, !tbaa !47
  br label %396

396:                                              ; preds = %395
  %397 = load i32, ptr %50, align 4, !tbaa !36
  %398 = add i32 %397, 1
  store i32 %398, ptr %50, align 4, !tbaa !36
  br label %375, !llvm.loop !49

399:                                              ; preds = %381
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %7, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %1102

403:                                              ; preds = %380
  br label %404

404:                                              ; preds = %403
  %405 = load i32, ptr %48, align 4, !tbaa !36
  %406 = add i32 %405, 1
  store i32 %406, ptr %48, align 4, !tbaa !36
  br label %359, !llvm.loop !51

407:                                              ; preds = %364
  %408 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %409 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 41
  %410 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %409, ptr noundef nonnull align 8 dereferenceable(24) %408)
          to label %411 unwind label %447

411:                                              ; preds = %407
  %412 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 41
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  %413 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 41
  %414 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %413) #7
  %415 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %52, i32 0, i32 0
  store ptr %414, ptr %415, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  store double -1.000000e+00, ptr %53, align 8, !tbaa !47
  %416 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.160", ptr %51, i32 0, i32 0
  %417 = load ptr, ptr %416, align 8
  %418 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %412, ptr %417, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %419 unwind label %451

419:                                              ; preds = %411
  %420 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  store ptr %418, ptr %420, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  %421 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 41
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %422 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 41
  %423 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %422) #7
  %424 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %56, i32 0, i32 0
  store ptr %423, ptr %424, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  store double 1.000000e+00, ptr %57, align 8, !tbaa !47
  %425 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.160", ptr %55, i32 0, i32 0
  %426 = load ptr, ptr %425, align 8
  %427 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %421, ptr %426, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %428 unwind label %455

428:                                              ; preds = %419
  %429 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %58, i32 0, i32 0
  store ptr %427, ptr %429, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  %430 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 63
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  %431 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 12
  %432 = load i32, ptr %431, align 4, !tbaa !9
  store i32 %432, ptr %61, align 4, !tbaa !36
  %433 = getelementptr inbounds %"class.std::initializer_list", ptr %60, i32 0, i32 0
  store ptr %61, ptr %433, align 8, !tbaa !38
  %434 = getelementptr inbounds %"class.std::initializer_list", ptr %60, i32 0, i32 1
  store i64 1, ptr %434, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  %435 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 0
  %436 = load ptr, ptr %435, align 8
  %437 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 1
  %438 = load i64, ptr %437, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr %436, i64 %438, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %439 unwind label %459

439:                                              ; preds = %428
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %430, ptr noundef %59, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %440 unwind label %463

440:                                              ; preds = %439
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #7
  store i32 0, ptr %63, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  store i32 0, ptr %64, align 4, !tbaa !36
  br label %441

441:                                              ; preds = %557, %440
  %442 = load i32, ptr %64, align 4, !tbaa !36
  %443 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %444 = load i32, ptr %443, align 4, !tbaa !46
  %445 = icmp ult i32 %442, %444
  br i1 %445, label %468, label %446

446:                                              ; preds = %441
  store i32 8, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  br label %560

447:                                              ; preds = %407
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %7, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %8, align 4
  br label %1102

451:                                              ; preds = %411
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %7, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  br label %1102

455:                                              ; preds = %419
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %7, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %1102

459:                                              ; preds = %428
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %7, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %8, align 4
  br label %467

463:                                              ; preds = %439
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %7, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #7
  br label %467

467:                                              ; preds = %463, %459
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %1102

468:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  store i32 0, ptr %65, align 4, !tbaa !36
  br label %469

469:                                              ; preds = %553, %468
  %470 = load i32, ptr %65, align 4, !tbaa !36
  %471 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %472 = load i32, ptr %471, align 4, !tbaa !46
  %473 = icmp ult i32 %470, %472
  br i1 %473, label %475, label %474

474:                                              ; preds = %469
  store i32 11, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br label %556

475:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #7
  store i32 0, ptr %66, align 4, !tbaa !36
  br label %476

476:                                              ; preds = %545, %475
  %477 = load i32, ptr %66, align 4, !tbaa !36
  %478 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %479 = load i32, ptr %478, align 4, !tbaa !46
  %480 = icmp ult i32 %477, %479
  br i1 %480, label %482, label %481

481:                                              ; preds = %476
  store i32 14, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  br label %552

482:                                              ; preds = %476
  %483 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %484 = load i32, ptr %66, align 4, !tbaa !36
  %485 = zext i32 %484 to i64
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef %485) #7
  %487 = load double, ptr %486, align 8, !tbaa !47
  %488 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 28
  %489 = load i32, ptr %63, align 4, !tbaa !36
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %488, i32 noundef %489, i32 noundef 0)
          to label %491 unwind label %548

491:                                              ; preds = %482
  store double %487, ptr %490, align 8, !tbaa !47
  %492 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %493 = load i32, ptr %65, align 4, !tbaa !36
  %494 = zext i32 %493 to i64
  %495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %492, i64 noundef %494) #7
  %496 = load double, ptr %495, align 8, !tbaa !47
  %497 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 28
  %498 = load i32, ptr %63, align 4, !tbaa !36
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %497, i32 noundef %498, i32 noundef 1)
          to label %500 unwind label %548

500:                                              ; preds = %491
  store double %496, ptr %499, align 8, !tbaa !47
  %501 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %502 = load i32, ptr %64, align 4, !tbaa !36
  %503 = zext i32 %502 to i64
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %501, i64 noundef %503) #7
  %505 = load double, ptr %504, align 8, !tbaa !47
  %506 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 28
  %507 = load i32, ptr %63, align 4, !tbaa !36
  %508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %506, i32 noundef %507, i32 noundef 2)
          to label %509 unwind label %548

509:                                              ; preds = %500
  store double %505, ptr %508, align 8, !tbaa !47
  %510 = load i32, ptr %66, align 4, !tbaa !36
  %511 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 33
  %512 = load i32, ptr %63, align 4, !tbaa !36
  %513 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %511, i32 noundef %512, i32 noundef 0)
          to label %514 unwind label %548

514:                                              ; preds = %509
  store i32 %510, ptr %513, align 4, !tbaa !36
  %515 = load i32, ptr %65, align 4, !tbaa !36
  %516 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 33
  %517 = load i32, ptr %63, align 4, !tbaa !36
  %518 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %516, i32 noundef %517, i32 noundef 1)
          to label %519 unwind label %548

519:                                              ; preds = %514
  store i32 %515, ptr %518, align 4, !tbaa !36
  %520 = load i32, ptr %64, align 4, !tbaa !36
  %521 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 33
  %522 = load i32, ptr %63, align 4, !tbaa !36
  %523 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %521, i32 noundef %522, i32 noundef 2)
          to label %524 unwind label %548

524:                                              ; preds = %519
  store i32 %520, ptr %523, align 4, !tbaa !36
  %525 = load i32, ptr %64, align 4, !tbaa !36
  %526 = zext i32 %525 to i64
  %527 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %526) #7
  %528 = load double, ptr %527, align 8, !tbaa !47
  %529 = load i32, ptr %65, align 4, !tbaa !36
  %530 = zext i32 %529 to i64
  %531 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %530) #7
  %532 = load double, ptr %531, align 8, !tbaa !47
  %533 = fmul double %528, %532
  %534 = load i32, ptr %66, align 4, !tbaa !36
  %535 = zext i32 %534 to i64
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %535) #7
  %537 = load double, ptr %536, align 8, !tbaa !47
  %538 = fmul double %533, %537
  %539 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 63
  %540 = load i32, ptr %63, align 4, !tbaa !36
  %541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %539, i32 noundef %540)
          to label %542 unwind label %548

542:                                              ; preds = %524
  store double %538, ptr %541, align 8, !tbaa !47
  %543 = load i32, ptr %63, align 4, !tbaa !36
  %544 = add i32 %543, 1
  store i32 %544, ptr %63, align 4, !tbaa !36
  br label %545

545:                                              ; preds = %542
  %546 = load i32, ptr %66, align 4, !tbaa !36
  %547 = add i32 %546, 1
  store i32 %547, ptr %66, align 4, !tbaa !36
  br label %476, !llvm.loop !52

548:                                              ; preds = %524, %519, %514, %509, %500, %491, %482
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %7, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  br label %1101

552:                                              ; preds = %481
  br label %553

553:                                              ; preds = %552
  %554 = load i32, ptr %65, align 4, !tbaa !36
  %555 = add i32 %554, 1
  store i32 %555, ptr %65, align 4, !tbaa !36
  br label %469, !llvm.loop !53

556:                                              ; preds = %474
  br label %557

557:                                              ; preds = %556
  %558 = load i32, ptr %64, align 4, !tbaa !36
  %559 = add i32 %558, 1
  store i32 %559, ptr %64, align 4, !tbaa !36
  br label %441, !llvm.loop !54

560:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #7
  store i32 0, ptr %67, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #7
  store i32 0, ptr %68, align 4, !tbaa !36
  br label %561

561:                                              ; preds = %850, %560
  %562 = load i32, ptr %68, align 4, !tbaa !36
  %563 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 18
  %564 = load i32, ptr %563, align 4, !tbaa !55
  %565 = icmp ult i32 %562, %564
  br i1 %565, label %567, label %566

566:                                              ; preds = %561
  store i32 17, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  br label %853

567:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  store i32 0, ptr %69, align 4, !tbaa !36
  br label %568

568:                                              ; preds = %846, %567
  %569 = load i32, ptr %69, align 4, !tbaa !36
  %570 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %571 = load i32, ptr %570, align 4, !tbaa !46
  %572 = icmp ult i32 %569, %571
  br i1 %572, label %574, label %573

573:                                              ; preds = %568
  store i32 20, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  br label %849

574:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #7
  store i32 0, ptr %70, align 4, !tbaa !36
  br label %575

575:                                              ; preds = %842, %574
  %576 = load i32, ptr %70, align 4, !tbaa !36
  %577 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %578 = load i32, ptr %577, align 4, !tbaa !46
  %579 = icmp ult i32 %576, %578
  br i1 %579, label %581, label %580

580:                                              ; preds = %575
  store i32 23, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  br label %845

581:                                              ; preds = %575
  %582 = load i32, ptr %68, align 4, !tbaa !36
  switch i32 %582, label %839 [
    i32 0, label %583
    i32 1, label %624
    i32 2, label %671
    i32 3, label %708
    i32 4, label %755
    i32 5, label %800
  ]

583:                                              ; preds = %581
  %584 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %585 = load i32, ptr %70, align 4, !tbaa !36
  %586 = zext i32 %585 to i64
  %587 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %584, i64 noundef %586) #7
  %588 = load double, ptr %587, align 8, !tbaa !47
  %589 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %590 = load i32, ptr %67, align 4, !tbaa !36
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %589, i32 noundef %590, i32 noundef 0)
          to label %592 unwind label %620

592:                                              ; preds = %583
  store double %588, ptr %591, align 8, !tbaa !47
  %593 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %594 = load i32, ptr %69, align 4, !tbaa !36
  %595 = zext i32 %594 to i64
  %596 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %593, i64 noundef %595) #7
  %597 = load double, ptr %596, align 8, !tbaa !47
  %598 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %599 = load i32, ptr %67, align 4, !tbaa !36
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %598, i32 noundef %599, i32 noundef 1)
          to label %601 unwind label %620

601:                                              ; preds = %592
  store double %597, ptr %600, align 8, !tbaa !47
  %602 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %603 = load i32, ptr %67, align 4, !tbaa !36
  %604 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %602, i32 noundef %603, i32 noundef 2)
          to label %605 unwind label %620

605:                                              ; preds = %601
  store double -1.000000e+00, ptr %604, align 8, !tbaa !47
  %606 = load i32, ptr %70, align 4, !tbaa !36
  %607 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %608 = load i32, ptr %67, align 4, !tbaa !36
  %609 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %607, i32 noundef %608, i32 noundef 0)
          to label %610 unwind label %620

610:                                              ; preds = %605
  store i32 %606, ptr %609, align 4, !tbaa !36
  %611 = load i32, ptr %69, align 4, !tbaa !36
  %612 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %613 = load i32, ptr %67, align 4, !tbaa !36
  %614 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %612, i32 noundef %613, i32 noundef 1)
          to label %615 unwind label %620

615:                                              ; preds = %610
  store i32 %611, ptr %614, align 4, !tbaa !36
  %616 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %617 = load i32, ptr %67, align 4, !tbaa !36
  %618 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %616, i32 noundef %617, i32 noundef 2)
          to label %619 unwind label %620

619:                                              ; preds = %615
  store i32 -1, ptr %618, align 4, !tbaa !36
  br label %839

620:                                              ; preds = %833, %827, %822, %813, %809, %800, %794, %790, %781, %772, %768, %755, %749, %740, %734, %725, %712, %708, %702, %697, %693, %684, %675, %671, %664, %659, %650, %646, %637, %624, %615, %610, %605, %601, %592, %583
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %7, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  br label %1100

624:                                              ; preds = %581
  %625 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %626 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %627 = load i32, ptr %626, align 4, !tbaa !46
  %628 = load i32, ptr %70, align 4, !tbaa !36
  %629 = sub i32 %627, %628
  %630 = sub i32 %629, 1
  %631 = zext i32 %630 to i64
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %625, i64 noundef %631) #7
  %633 = load double, ptr %632, align 8, !tbaa !47
  %634 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %635 = load i32, ptr %67, align 4, !tbaa !36
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %634, i32 noundef %635, i32 noundef 0)
          to label %637 unwind label %620

637:                                              ; preds = %624
  store double %633, ptr %636, align 8, !tbaa !47
  %638 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %639 = load i32, ptr %69, align 4, !tbaa !36
  %640 = zext i32 %639 to i64
  %641 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %638, i64 noundef %640) #7
  %642 = load double, ptr %641, align 8, !tbaa !47
  %643 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %644 = load i32, ptr %67, align 4, !tbaa !36
  %645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %643, i32 noundef %644, i32 noundef 1)
          to label %646 unwind label %620

646:                                              ; preds = %637
  store double %642, ptr %645, align 8, !tbaa !47
  %647 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %648 = load i32, ptr %67, align 4, !tbaa !36
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %647, i32 noundef %648, i32 noundef 2)
          to label %650 unwind label %620

650:                                              ; preds = %646
  store double 1.000000e+00, ptr %649, align 8, !tbaa !47
  %651 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %652 = load i32, ptr %651, align 4, !tbaa !46
  %653 = load i32, ptr %70, align 4, !tbaa !36
  %654 = sub i32 %652, %653
  %655 = sub i32 %654, 1
  %656 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %657 = load i32, ptr %67, align 4, !tbaa !36
  %658 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %656, i32 noundef %657, i32 noundef 0)
          to label %659 unwind label %620

659:                                              ; preds = %650
  store i32 %655, ptr %658, align 4, !tbaa !36
  %660 = load i32, ptr %69, align 4, !tbaa !36
  %661 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %662 = load i32, ptr %67, align 4, !tbaa !36
  %663 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %661, i32 noundef %662, i32 noundef 1)
          to label %664 unwind label %620

664:                                              ; preds = %659
  store i32 %660, ptr %663, align 4, !tbaa !36
  %665 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %666 = load i32, ptr %665, align 4, !tbaa !46
  %667 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %668 = load i32, ptr %67, align 4, !tbaa !36
  %669 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %667, i32 noundef %668, i32 noundef 2)
          to label %670 unwind label %620

670:                                              ; preds = %664
  store i32 %666, ptr %669, align 4, !tbaa !36
  br label %839

671:                                              ; preds = %581
  %672 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %673 = load i32, ptr %67, align 4, !tbaa !36
  %674 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %672, i32 noundef %673, i32 noundef 0)
          to label %675 unwind label %620

675:                                              ; preds = %671
  store double -1.000000e+00, ptr %674, align 8, !tbaa !47
  %676 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %677 = load i32, ptr %70, align 4, !tbaa !36
  %678 = zext i32 %677 to i64
  %679 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %676, i64 noundef %678) #7
  %680 = load double, ptr %679, align 8, !tbaa !47
  %681 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %682 = load i32, ptr %67, align 4, !tbaa !36
  %683 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %681, i32 noundef %682, i32 noundef 1)
          to label %684 unwind label %620

684:                                              ; preds = %675
  store double %680, ptr %683, align 8, !tbaa !47
  %685 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %686 = load i32, ptr %69, align 4, !tbaa !36
  %687 = zext i32 %686 to i64
  %688 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %685, i64 noundef %687) #7
  %689 = load double, ptr %688, align 8, !tbaa !47
  %690 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %691 = load i32, ptr %67, align 4, !tbaa !36
  %692 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %690, i32 noundef %691, i32 noundef 2)
          to label %693 unwind label %620

693:                                              ; preds = %684
  store double %689, ptr %692, align 8, !tbaa !47
  %694 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %695 = load i32, ptr %67, align 4, !tbaa !36
  %696 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %694, i32 noundef %695, i32 noundef 0)
          to label %697 unwind label %620

697:                                              ; preds = %693
  store i32 -1, ptr %696, align 4, !tbaa !36
  %698 = load i32, ptr %70, align 4, !tbaa !36
  %699 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %700 = load i32, ptr %67, align 4, !tbaa !36
  %701 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %699, i32 noundef %700, i32 noundef 1)
          to label %702 unwind label %620

702:                                              ; preds = %697
  store i32 %698, ptr %701, align 4, !tbaa !36
  %703 = load i32, ptr %69, align 4, !tbaa !36
  %704 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %705 = load i32, ptr %67, align 4, !tbaa !36
  %706 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %704, i32 noundef %705, i32 noundef 2)
          to label %707 unwind label %620

707:                                              ; preds = %702
  store i32 %703, ptr %706, align 4, !tbaa !36
  br label %839

708:                                              ; preds = %581
  %709 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %710 = load i32, ptr %67, align 4, !tbaa !36
  %711 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %709, i32 noundef %710, i32 noundef 0)
          to label %712 unwind label %620

712:                                              ; preds = %708
  store double 1.000000e+00, ptr %711, align 8, !tbaa !47
  %713 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %714 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %715 = load i32, ptr %714, align 4, !tbaa !46
  %716 = load i32, ptr %70, align 4, !tbaa !36
  %717 = sub i32 %715, %716
  %718 = sub i32 %717, 1
  %719 = zext i32 %718 to i64
  %720 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %713, i64 noundef %719) #7
  %721 = load double, ptr %720, align 8, !tbaa !47
  %722 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %723 = load i32, ptr %67, align 4, !tbaa !36
  %724 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %722, i32 noundef %723, i32 noundef 1)
          to label %725 unwind label %620

725:                                              ; preds = %712
  store double %721, ptr %724, align 8, !tbaa !47
  %726 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %727 = load i32, ptr %69, align 4, !tbaa !36
  %728 = zext i32 %727 to i64
  %729 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %726, i64 noundef %728) #7
  %730 = load double, ptr %729, align 8, !tbaa !47
  %731 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %732 = load i32, ptr %67, align 4, !tbaa !36
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %731, i32 noundef %732, i32 noundef 2)
          to label %734 unwind label %620

734:                                              ; preds = %725
  store double %730, ptr %733, align 8, !tbaa !47
  %735 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %736 = load i32, ptr %735, align 4, !tbaa !46
  %737 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %738 = load i32, ptr %67, align 4, !tbaa !36
  %739 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %737, i32 noundef %738, i32 noundef 0)
          to label %740 unwind label %620

740:                                              ; preds = %734
  store i32 %736, ptr %739, align 4, !tbaa !36
  %741 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %742 = load i32, ptr %741, align 4, !tbaa !46
  %743 = load i32, ptr %70, align 4, !tbaa !36
  %744 = sub i32 %742, %743
  %745 = sub i32 %744, 1
  %746 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %747 = load i32, ptr %67, align 4, !tbaa !36
  %748 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %746, i32 noundef %747, i32 noundef 1)
          to label %749 unwind label %620

749:                                              ; preds = %740
  store i32 %745, ptr %748, align 4, !tbaa !36
  %750 = load i32, ptr %69, align 4, !tbaa !36
  %751 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %752 = load i32, ptr %67, align 4, !tbaa !36
  %753 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %751, i32 noundef %752, i32 noundef 2)
          to label %754 unwind label %620

754:                                              ; preds = %749
  store i32 %750, ptr %753, align 4, !tbaa !36
  br label %839

755:                                              ; preds = %581
  %756 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %757 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %758 = load i32, ptr %757, align 4, !tbaa !46
  %759 = load i32, ptr %70, align 4, !tbaa !36
  %760 = sub i32 %758, %759
  %761 = sub i32 %760, 1
  %762 = zext i32 %761 to i64
  %763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %756, i64 noundef %762) #7
  %764 = load double, ptr %763, align 8, !tbaa !47
  %765 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %766 = load i32, ptr %67, align 4, !tbaa !36
  %767 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %765, i32 noundef %766, i32 noundef 0)
          to label %768 unwind label %620

768:                                              ; preds = %755
  store double %764, ptr %767, align 8, !tbaa !47
  %769 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %770 = load i32, ptr %67, align 4, !tbaa !36
  %771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %769, i32 noundef %770, i32 noundef 1)
          to label %772 unwind label %620

772:                                              ; preds = %768
  store double -1.000000e+00, ptr %771, align 8, !tbaa !47
  %773 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %774 = load i32, ptr %69, align 4, !tbaa !36
  %775 = zext i32 %774 to i64
  %776 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %773, i64 noundef %775) #7
  %777 = load double, ptr %776, align 8, !tbaa !47
  %778 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %779 = load i32, ptr %67, align 4, !tbaa !36
  %780 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %778, i32 noundef %779, i32 noundef 2)
          to label %781 unwind label %620

781:                                              ; preds = %772
  store double %777, ptr %780, align 8, !tbaa !47
  %782 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %783 = load i32, ptr %782, align 4, !tbaa !46
  %784 = load i32, ptr %70, align 4, !tbaa !36
  %785 = sub i32 %783, %784
  %786 = sub i32 %785, 1
  %787 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %788 = load i32, ptr %67, align 4, !tbaa !36
  %789 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %787, i32 noundef %788, i32 noundef 0)
          to label %790 unwind label %620

790:                                              ; preds = %781
  store i32 %786, ptr %789, align 4, !tbaa !36
  %791 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %792 = load i32, ptr %67, align 4, !tbaa !36
  %793 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %791, i32 noundef %792, i32 noundef 1)
          to label %794 unwind label %620

794:                                              ; preds = %790
  store i32 -1, ptr %793, align 4, !tbaa !36
  %795 = load i32, ptr %69, align 4, !tbaa !36
  %796 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %797 = load i32, ptr %67, align 4, !tbaa !36
  %798 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %796, i32 noundef %797, i32 noundef 2)
          to label %799 unwind label %620

799:                                              ; preds = %794
  store i32 %795, ptr %798, align 4, !tbaa !36
  br label %839

800:                                              ; preds = %581
  %801 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %802 = load i32, ptr %70, align 4, !tbaa !36
  %803 = zext i32 %802 to i64
  %804 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %801, i64 noundef %803) #7
  %805 = load double, ptr %804, align 8, !tbaa !47
  %806 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %807 = load i32, ptr %67, align 4, !tbaa !36
  %808 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %806, i32 noundef %807, i32 noundef 0)
          to label %809 unwind label %620

809:                                              ; preds = %800
  store double %805, ptr %808, align 8, !tbaa !47
  %810 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %811 = load i32, ptr %67, align 4, !tbaa !36
  %812 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %810, i32 noundef %811, i32 noundef 1)
          to label %813 unwind label %620

813:                                              ; preds = %809
  store double 1.000000e+00, ptr %812, align 8, !tbaa !47
  %814 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 38
  %815 = load i32, ptr %69, align 4, !tbaa !36
  %816 = zext i32 %815 to i64
  %817 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %814, i64 noundef %816) #7
  %818 = load double, ptr %817, align 8, !tbaa !47
  %819 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 29
  %820 = load i32, ptr %67, align 4, !tbaa !36
  %821 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %819, i32 noundef %820, i32 noundef 2)
          to label %822 unwind label %620

822:                                              ; preds = %813
  store double %818, ptr %821, align 8, !tbaa !47
  %823 = load i32, ptr %70, align 4, !tbaa !36
  %824 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %825 = load i32, ptr %67, align 4, !tbaa !36
  %826 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %824, i32 noundef %825, i32 noundef 0)
          to label %827 unwind label %620

827:                                              ; preds = %822
  store i32 %823, ptr %826, align 4, !tbaa !36
  %828 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %829 = load i32, ptr %828, align 4, !tbaa !46
  %830 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %831 = load i32, ptr %67, align 4, !tbaa !36
  %832 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %830, i32 noundef %831, i32 noundef 1)
          to label %833 unwind label %620

833:                                              ; preds = %827
  store i32 %829, ptr %832, align 4, !tbaa !36
  %834 = load i32, ptr %69, align 4, !tbaa !36
  %835 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 34
  %836 = load i32, ptr %67, align 4, !tbaa !36
  %837 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %835, i32 noundef %836, i32 noundef 2)
          to label %838 unwind label %620

838:                                              ; preds = %833
  store i32 %834, ptr %837, align 4, !tbaa !36
  br label %839

839:                                              ; preds = %838, %799, %754, %707, %670, %619, %581
  %840 = load i32, ptr %67, align 4, !tbaa !36
  %841 = add i32 %840, 1
  store i32 %841, ptr %67, align 4, !tbaa !36
  br label %842

842:                                              ; preds = %839
  %843 = load i32, ptr %70, align 4, !tbaa !36
  %844 = add i32 %843, 1
  store i32 %844, ptr %70, align 4, !tbaa !36
  br label %575, !llvm.loop !56

845:                                              ; preds = %580
  br label %846

846:                                              ; preds = %845
  %847 = load i32, ptr %69, align 4, !tbaa !36
  %848 = add i32 %847, 1
  store i32 %848, ptr %69, align 4, !tbaa !36
  br label %568, !llvm.loop !57

849:                                              ; preds = %573
  br label %850

850:                                              ; preds = %849
  %851 = load i32, ptr %68, align 4, !tbaa !36
  %852 = add i32 %851, 1
  store i32 %852, ptr %68, align 4, !tbaa !36
  br label %561, !llvm.loop !58

853:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 24, ptr %71) #7
  %854 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 5
  %855 = load i32, ptr %854, align 8, !tbaa !45
  invoke void @_Z9Shape_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %71, i32 noundef %855)
          to label %856 unwind label %863

856:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  store i32 0, ptr %72, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  store i32 0, ptr %73, align 4, !tbaa !36
  br label %857

857:                                              ; preds = %935, %856
  %858 = load i32, ptr %73, align 4, !tbaa !36
  %859 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %860 = load i32, ptr %859, align 4, !tbaa !46
  %861 = icmp ult i32 %858, %860
  br i1 %861, label %867, label %862

862:                                              ; preds = %857
  store i32 27, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  br label %938

863:                                              ; preds = %853
  %864 = landingpad { ptr, i32 }
          cleanup
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %7, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %8, align 4
  br label %1099

867:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  store i32 0, ptr %74, align 4, !tbaa !36
  br label %868

868:                                              ; preds = %931, %867
  %869 = load i32, ptr %74, align 4, !tbaa !36
  %870 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %871 = load i32, ptr %870, align 4, !tbaa !46
  %872 = icmp ult i32 %869, %871
  br i1 %872, label %874, label %873

873:                                              ; preds = %868
  store i32 30, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  br label %934

874:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #7
  store i32 0, ptr %75, align 4, !tbaa !36
  br label %875

875:                                              ; preds = %923, %874
  %876 = load i32, ptr %75, align 4, !tbaa !36
  %877 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 14
  %878 = load i32, ptr %877, align 4, !tbaa !46
  %879 = icmp ult i32 %876, %878
  br i1 %879, label %881, label %880

880:                                              ; preds = %875
  store i32 33, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  br label %930

881:                                              ; preds = %875
  %882 = load i32, ptr %75, align 4, !tbaa !36
  %883 = zext i32 %882 to i64
  %884 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %883) #7
  %885 = load double, ptr %884, align 8, !tbaa !47
  %886 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 30
  %887 = load i32, ptr %72, align 4, !tbaa !36
  %888 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %886, i32 noundef %887, i32 noundef 0)
          to label %889 unwind label %926

889:                                              ; preds = %881
  store double %885, ptr %888, align 8, !tbaa !47
  %890 = load i32, ptr %74, align 4, !tbaa !36
  %891 = zext i32 %890 to i64
  %892 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %891) #7
  %893 = load double, ptr %892, align 8, !tbaa !47
  %894 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 30
  %895 = load i32, ptr %72, align 4, !tbaa !36
  %896 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %894, i32 noundef %895, i32 noundef 1)
          to label %897 unwind label %926

897:                                              ; preds = %889
  store double %893, ptr %896, align 8, !tbaa !47
  %898 = load i32, ptr %73, align 4, !tbaa !36
  %899 = zext i32 %898 to i64
  %900 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %899) #7
  %901 = load double, ptr %900, align 8, !tbaa !47
  %902 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 30
  %903 = load i32, ptr %72, align 4, !tbaa !36
  %904 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %902, i32 noundef %903, i32 noundef 2)
          to label %905 unwind label %926

905:                                              ; preds = %897
  store double %901, ptr %904, align 8, !tbaa !47
  %906 = load i32, ptr %75, align 4, !tbaa !36
  %907 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 35
  %908 = load i32, ptr %72, align 4, !tbaa !36
  %909 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %907, i32 noundef %908, i32 noundef 0)
          to label %910 unwind label %926

910:                                              ; preds = %905
  store i32 %906, ptr %909, align 4, !tbaa !36
  %911 = load i32, ptr %74, align 4, !tbaa !36
  %912 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 35
  %913 = load i32, ptr %72, align 4, !tbaa !36
  %914 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %912, i32 noundef %913, i32 noundef 1)
          to label %915 unwind label %926

915:                                              ; preds = %910
  store i32 %911, ptr %914, align 4, !tbaa !36
  %916 = load i32, ptr %73, align 4, !tbaa !36
  %917 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 35
  %918 = load i32, ptr %72, align 4, !tbaa !36
  %919 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %917, i32 noundef %918, i32 noundef 2)
          to label %920 unwind label %926

920:                                              ; preds = %915
  store i32 %916, ptr %919, align 4, !tbaa !36
  %921 = load i32, ptr %72, align 4, !tbaa !36
  %922 = add i32 %921, 1
  store i32 %922, ptr %72, align 4, !tbaa !36
  br label %923

923:                                              ; preds = %920
  %924 = load i32, ptr %75, align 4, !tbaa !36
  %925 = add i32 %924, 1
  store i32 %925, ptr %75, align 4, !tbaa !36
  br label %875, !llvm.loop !59

926:                                              ; preds = %915, %910, %905, %897, %889, %881
  %927 = landingpad { ptr, i32 }
          cleanup
  %928 = extractvalue { ptr, i32 } %927, 0
  store ptr %928, ptr %7, align 8
  %929 = extractvalue { ptr, i32 } %927, 1
  store i32 %929, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  br label %1098

930:                                              ; preds = %880
  br label %931

931:                                              ; preds = %930
  %932 = load i32, ptr %74, align 4, !tbaa !36
  %933 = add i32 %932, 1
  store i32 %933, ptr %74, align 4, !tbaa !36
  br label %868, !llvm.loop !60

934:                                              ; preds = %873
  br label %935

935:                                              ; preds = %934
  %936 = load i32, ptr %73, align 4, !tbaa !36
  %937 = add i32 %936, 1
  store i32 %937, ptr %73, align 4, !tbaa !36
  br label %857, !llvm.loop !61

938:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #7
  %939 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %940 = load ptr, ptr %939, align 8, !tbaa !44
  %941 = getelementptr inbounds %struct.InputStruct, ptr %940, i32 0, i32 5
  %942 = load i32, ptr %941, align 4, !tbaa !62
  invoke void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %76, i32 noundef %942)
          to label %943 unwind label %982

943:                                              ; preds = %938
  %944 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 40
  %945 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %944, ptr noundef nonnull align 8 dereferenceable(24) %76) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %76) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #7
  %946 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %947 = load ptr, ptr %946, align 8, !tbaa !44
  %948 = getelementptr inbounds %struct.InputStruct, ptr %947, i32 0, i32 5
  %949 = load i32, ptr %948, align 4, !tbaa !62
  invoke void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %77, i32 noundef %949)
          to label %950 unwind label %986

950:                                              ; preds = %943
  %951 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 65
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #7
  %952 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %953 = load ptr, ptr %952, align 8, !tbaa !44
  %954 = getelementptr inbounds %struct.InputStruct, ptr %953, i32 0, i32 5
  %955 = load i32, ptr %954, align 4, !tbaa !62
  %956 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %957 = load ptr, ptr %956, align 8, !tbaa !44
  %958 = getelementptr inbounds %struct.InputStruct, ptr %957, i32 0, i32 5
  %959 = load i32, ptr %958, align 4, !tbaa !62
  %960 = mul i32 %955, %959
  %961 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %962 = load ptr, ptr %961, align 8, !tbaa !44
  %963 = getelementptr inbounds %struct.InputStruct, ptr %962, i32 0, i32 5
  %964 = load i32, ptr %963, align 4, !tbaa !62
  %965 = mul i32 %960, %964
  store i32 %965, ptr %80, align 4, !tbaa !36
  %966 = getelementptr inbounds %"class.std::initializer_list", ptr %79, i32 0, i32 0
  store ptr %80, ptr %966, align 8, !tbaa !38
  %967 = getelementptr inbounds %"class.std::initializer_list", ptr %79, i32 0, i32 1
  store i64 1, ptr %967, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  %968 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 0
  %969 = load ptr, ptr %968, align 8
  %970 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 1
  %971 = load i64, ptr %970, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %78, ptr %969, i64 %971, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %972 unwind label %990

972:                                              ; preds = %950
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %951, ptr noundef %78, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %973 unwind label %994

973:                                              ; preds = %972
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #7
  store i32 0, ptr %82, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #7
  store i32 0, ptr %83, align 4, !tbaa !36
  br label %974

974:                                              ; preds = %1092, %973
  %975 = load i32, ptr %83, align 4, !tbaa !36
  %976 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %977 = load ptr, ptr %976, align 8, !tbaa !44
  %978 = getelementptr inbounds %struct.InputStruct, ptr %977, i32 0, i32 5
  %979 = load i32, ptr %978, align 4, !tbaa !62
  %980 = icmp ult i32 %975, %979
  br i1 %980, label %999, label %981

981:                                              ; preds = %974
  store i32 36, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  br label %1095

982:                                              ; preds = %938
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %7, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #7
  br label %1098

986:                                              ; preds = %943
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %7, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %8, align 4
  br label %1097

990:                                              ; preds = %950
  %991 = landingpad { ptr, i32 }
          cleanup
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %7, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %8, align 4
  br label %998

994:                                              ; preds = %972
  %995 = landingpad { ptr, i32 }
          cleanup
  %996 = extractvalue { ptr, i32 } %995, 0
  store ptr %996, ptr %7, align 8
  %997 = extractvalue { ptr, i32 } %995, 1
  store i32 %997, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  br label %998

998:                                              ; preds = %994, %990
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  br label %1096

999:                                              ; preds = %974
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #7
  store i32 0, ptr %84, align 4, !tbaa !36
  br label %1000

1000:                                             ; preds = %1088, %999
  %1001 = load i32, ptr %84, align 4, !tbaa !36
  %1002 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %1003 = load ptr, ptr %1002, align 8, !tbaa !44
  %1004 = getelementptr inbounds %struct.InputStruct, ptr %1003, i32 0, i32 5
  %1005 = load i32, ptr %1004, align 4, !tbaa !62
  %1006 = icmp ult i32 %1001, %1005
  br i1 %1006, label %1008, label %1007

1007:                                             ; preds = %1000
  store i32 39, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #7
  br label %1091

1008:                                             ; preds = %1000
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #7
  store i32 0, ptr %85, align 4, !tbaa !36
  br label %1009

1009:                                             ; preds = %1080, %1008
  %1010 = load i32, ptr %85, align 4, !tbaa !36
  %1011 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 1
  %1012 = load ptr, ptr %1011, align 8, !tbaa !44
  %1013 = getelementptr inbounds %struct.InputStruct, ptr %1012, i32 0, i32 5
  %1014 = load i32, ptr %1013, align 4, !tbaa !62
  %1015 = icmp ult i32 %1010, %1014
  br i1 %1015, label %1017, label %1016

1016:                                             ; preds = %1009
  store i32 42, ptr %49, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  br label %1087

1017:                                             ; preds = %1009
  %1018 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 40
  %1019 = load i32, ptr %85, align 4, !tbaa !36
  %1020 = zext i32 %1019 to i64
  %1021 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1018, i64 noundef %1020) #7
  %1022 = load double, ptr %1021, align 8, !tbaa !47
  %1023 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 32
  %1024 = load i32, ptr %82, align 4, !tbaa !36
  %1025 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %1023, i32 noundef %1024, i32 noundef 0)
          to label %1026 unwind label %1083

1026:                                             ; preds = %1017
  store double %1022, ptr %1025, align 8, !tbaa !47
  %1027 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 40
  %1028 = load i32, ptr %84, align 4, !tbaa !36
  %1029 = zext i32 %1028 to i64
  %1030 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1027, i64 noundef %1029) #7
  %1031 = load double, ptr %1030, align 8, !tbaa !47
  %1032 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 32
  %1033 = load i32, ptr %82, align 4, !tbaa !36
  %1034 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %1032, i32 noundef %1033, i32 noundef 1)
          to label %1035 unwind label %1083

1035:                                             ; preds = %1026
  store double %1031, ptr %1034, align 8, !tbaa !47
  %1036 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 40
  %1037 = load i32, ptr %83, align 4, !tbaa !36
  %1038 = zext i32 %1037 to i64
  %1039 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1036, i64 noundef %1038) #7
  %1040 = load double, ptr %1039, align 8, !tbaa !47
  %1041 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 32
  %1042 = load i32, ptr %82, align 4, !tbaa !36
  %1043 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %1041, i32 noundef %1042, i32 noundef 2)
          to label %1044 unwind label %1083

1044:                                             ; preds = %1035
  store double %1040, ptr %1043, align 8, !tbaa !47
  %1045 = load i32, ptr %85, align 4, !tbaa !36
  %1046 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 37
  %1047 = load i32, ptr %82, align 4, !tbaa !36
  %1048 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %1046, i32 noundef %1047, i32 noundef 0)
          to label %1049 unwind label %1083

1049:                                             ; preds = %1044
  store i32 %1045, ptr %1048, align 4, !tbaa !36
  %1050 = load i32, ptr %84, align 4, !tbaa !36
  %1051 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 37
  %1052 = load i32, ptr %82, align 4, !tbaa !36
  %1053 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %1051, i32 noundef %1052, i32 noundef 1)
          to label %1054 unwind label %1083

1054:                                             ; preds = %1049
  store i32 %1050, ptr %1053, align 4, !tbaa !36
  %1055 = load i32, ptr %83, align 4, !tbaa !36
  %1056 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 37
  %1057 = load i32, ptr %82, align 4, !tbaa !36
  %1058 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %1056, i32 noundef %1057, i32 noundef 2)
          to label %1059 unwind label %1083

1059:                                             ; preds = %1054
  store i32 %1055, ptr %1058, align 4, !tbaa !36
  %1060 = load i32, ptr %83, align 4, !tbaa !36
  %1061 = zext i32 %1060 to i64
  %1062 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %1061) #7
  %1063 = load double, ptr %1062, align 8, !tbaa !47
  %1064 = load i32, ptr %84, align 4, !tbaa !36
  %1065 = zext i32 %1064 to i64
  %1066 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %1065) #7
  %1067 = load double, ptr %1066, align 8, !tbaa !47
  %1068 = fmul double %1063, %1067
  %1069 = load i32, ptr %85, align 4, !tbaa !36
  %1070 = zext i32 %1069 to i64
  %1071 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %1070) #7
  %1072 = load double, ptr %1071, align 8, !tbaa !47
  %1073 = fmul double %1068, %1072
  %1074 = getelementptr inbounds %class.Elements, ptr %86, i32 0, i32 65
  %1075 = load i32, ptr %82, align 4, !tbaa !36
  %1076 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %1074, i32 noundef %1075)
          to label %1077 unwind label %1083

1077:                                             ; preds = %1059
  store double %1073, ptr %1076, align 8, !tbaa !47
  %1078 = load i32, ptr %82, align 4, !tbaa !36
  %1079 = add i32 %1078, 1
  store i32 %1079, ptr %82, align 4, !tbaa !36
  br label %1080

1080:                                             ; preds = %1077
  %1081 = load i32, ptr %85, align 4, !tbaa !36
  %1082 = add i32 %1081, 1
  store i32 %1082, ptr %85, align 4, !tbaa !36
  br label %1009, !llvm.loop !82

1083:                                             ; preds = %1059, %1054, %1049, %1044, %1035, %1026, %1017
  %1084 = landingpad { ptr, i32 }
          cleanup
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %7, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  br label %1096

1087:                                             ; preds = %1016
  br label %1088

1088:                                             ; preds = %1087
  %1089 = load i32, ptr %84, align 4, !tbaa !36
  %1090 = add i32 %1089, 1
  store i32 %1090, ptr %84, align 4, !tbaa !36
  br label %1000, !llvm.loop !83

1091:                                             ; preds = %1007
  br label %1092

1092:                                             ; preds = %1091
  %1093 = load i32, ptr %83, align 4, !tbaa !36
  %1094 = add i32 %1093, 1
  store i32 %1094, ptr %83, align 4, !tbaa !36
  br label %974, !llvm.loop !84

1095:                                             ; preds = %981
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  ret void

1096:                                             ; preds = %1083, %998
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  br label %1097

1097:                                             ; preds = %1096, %986
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #7
  br label %1098

1098:                                             ; preds = %1097, %982, %926
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #7
  br label %1099

1099:                                             ; preds = %1098, %863
  call void @llvm.lifetime.end.p0(i64 24, ptr %71) #7
  br label %1100

1100:                                             ; preds = %1099, %620
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  br label %1101

1101:                                             ; preds = %1100, %548
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  br label %1102

1102:                                             ; preds = %1101, %467, %455, %451, %447, %399, %373
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  br label %1103

1103:                                             ; preds = %1102, %340, %280, %271, %262, %253, %244, %235, %226, %217
  %1104 = load ptr, ptr %7, align 8
  %1105 = load i32, ptr %8, align 4
  %1106 = insertvalue { ptr, i32 } poison, ptr %1104, 0
  %1107 = insertvalue { ptr, i32 } %1106, i32 %1105, 1
  resume { ptr, i32 } %1107

1108:                                             ; preds = %314
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, double noundef, i1 noundef zeroext) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, i32 noundef, i1 noundef zeroext) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6

declare void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

declare void @_Z9DFRsp_ptsjd(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef, double noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #1

declare void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef) #5 align 2

declare void @_Z9Shape_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

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

!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, !12, i64 60}
!10 = !{!"_ZTS8Elements", !6, i64 8, !6, i64 16, !11, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !12, i64 64, !12, i64 68, !12, i64 72, !12, i64 76, !12, i64 80, !12, i64 84, !12, i64 88, !12, i64 92, !12, i64 96, !13, i64 104, !13, i64 216, !13, i64 328, !13, i64 440, !21, i64 552, !13, i64 576, !13, i64 688, !13, i64 800, !13, i64 912, !13, i64 1024, !25, i64 1136, !25, i64 1248, !25, i64 1360, !25, i64 1472, !25, i64 1584, !16, i64 1696, !16, i64 1720, !16, i64 1744, !16, i64 1768, !13, i64 1792, !13, i64 1904, !13, i64 2016, !13, i64 2128, !13, i64 2240, !13, i64 2352, !13, i64 2464, !13, i64 2576, !13, i64 2688, !13, i64 2800, !13, i64 2912, !13, i64 3024, !13, i64 3136, !13, i64 3248, !13, i64 3360, !13, i64 3472, !13, i64 3584, !13, i64 3696, !13, i64 3808, !13, i64 3920, !13, i64 4032, !13, i64 4144, !13, i64 4256, !13, i64 4368, !13, i64 4480, !13, i64 4592, !13, i64 4704, !13, i64 4816, !13, i64 4928, !13, i64 5040, !13, i64 5152, !13, i64 5264, !13, i64 5376, !13, i64 5488, !13, i64 5600, !13, i64 5712, !13, i64 5824, !13, i64 5936, !12, i64 6048, !16, i64 6056, !16, i64 6080, !16, i64 6104, !16, i64 6128, !16, i64 6152, !16, i64 6176, !16, i64 6200, !26, i64 6224, !13, i64 6248, !13, i64 6360, !13, i64 6472, !13, i64 6584, !13, i64 6696, !13, i64 6808, !13, i64 6920, !13, i64 7032, !13, i64 7144, !14, i64 7256, !14, i64 7264, !14, i64 7272, !14, i64 7280, !14, i64 7288, !13, i64 7296, !13, i64 7408, !13, i64 7520, !13, i64 7632, !13, i64 7744, !13, i64 7856, !13, i64 7968, !13, i64 8080, !13, i64 8192, !13, i64 8304, !13, i64 8416, !13, i64 8528, !13, i64 8640, !13, i64 8752, !13, i64 8864, !13, i64 8976, !13, i64 9088, !13, i64 9200, !13, i64 9312, !13, i64 9424, !13, i64 9536, !13, i64 9648, !13, i64 9760, !13, i64 9872, !13, i64 9984, !13, i64 10096, !13, i64 10208, !13, i64 10320, !13, i64 10432, !13, i64 10544, !13, i64 10656, !13, i64 10768, !13, i64 10880, !13, i64 10992, !13, i64 11104, !13, i64 11216, !13, i64 11328, !13, i64 11440, !13, i64 11552, !13, i64 11664, !13, i64 11776, !13, i64 11888, !13, i64 12000, !30, i64 12112, !30, i64 12344, !13, i64 12576, !13, i64 12688, !13, i64 12800, !13, i64 12912, !13, i64 13024, !13, i64 13136, !12, i64 13248, !13, i64 13256, !13, i64 13368, !12, i64 13480, !6, i64 13488, !26, i64 13496, !25, i64 13520, !13, i64 13632, !13, i64 13744, !13, i64 13856}
!11 = !{!"_ZTS8ELE_TYPE", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"_ZTS8mdvectorIdE", !12, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !16, i64 72, !6, i64 96, !20, i64 104}
!14 = !{!"long", !7, i64 0}
!15 = !{!"_ZTSSt5arrayIjLm6EE", !7, i64 0}
!16 = !{!"_ZTSSt6vectorIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"bool", !7, i64 0}
!21 = !{!"_ZTSSt6vectorIjSaIjEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"_ZTS8mdvectorIjE", !12, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !21, i64 72, !6, i64 96, !20, i64 104}
!26 = !{!"_ZTSSt6vectorIiSaIiEE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!"_ZTS6mdviewIdE", !31, i64 0, !25, i64 112, !12, i64 224}
!31 = !{!"_ZTS8mdvectorIPdE", !12, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !32, i64 72, !6, i64 96, !20, i64 104}
!32 = !{!"_ZTSSt6vectorIPdSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIPdSaIS0_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!12, !12, i64 0}
!37 = !{!10, !12, i64 52}
!38 = !{!39, !6, i64 0}
!39 = !{!"_ZTSSt16initializer_listIjE", !6, i64 0, !14, i64 8}
!40 = !{!39, !14, i64 8}
!41 = !{!10, !12, i64 64}
!42 = !{!10, !12, i64 72}
!43 = !{!10, !12, i64 76}
!44 = !{!10, !6, i64 8}
!45 = !{!10, !12, i64 32}
!46 = !{!10, !12, i64 68}
!47 = !{!48, !48, i64 0}
!48 = !{!"double", !7, i64 0}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = distinct !{!51, !50}
!52 = distinct !{!52, !50}
!53 = distinct !{!53, !50}
!54 = distinct !{!54, !50}
!55 = !{!10, !12, i64 84}
!56 = distinct !{!56, !50}
!57 = distinct !{!57, !50}
!58 = distinct !{!58, !50}
!59 = distinct !{!59, !50}
!60 = distinct !{!60, !50}
!61 = distinct !{!61, !50}
!62 = !{!63, !12, i64 20}
!63 = !{!"_ZTS11InputStruct", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !12, i64 64, !12, i64 68, !64, i64 72, !64, i64 104, !64, i64 136, !64, i64 168, !64, i64 200, !64, i64 232, !20, i64 264, !20, i64 265, !20, i64 266, !20, i64 267, !20, i64 268, !20, i64 269, !20, i64 270, !20, i64 271, !21, i64 272, !21, i64 296, !12, i64 320, !12, i64 324, !48, i64 328, !48, i64 336, !48, i64 344, !48, i64 352, !48, i64 360, !48, i64 368, !48, i64 376, !48, i64 384, !13, i64 392, !13, i64 504, !13, i64 616, !13, i64 728, !13, i64 840, !48, i64 952, !48, i64 960, !48, i64 968, !48, i64 976, !48, i64 984, !48, i64 992, !48, i64 1000, !48, i64 1008, !48, i64 1016, !48, i64 1024, !48, i64 1032, !48, i64 1040, !48, i64 1048, !48, i64 1056, !48, i64 1064, !48, i64 1072, !48, i64 1080, !48, i64 1088, !48, i64 1096, !48, i64 1104, !48, i64 1112, !48, i64 1120, !48, i64 1128, !48, i64 1136, !48, i64 1144, !48, i64 1152, !48, i64 1160, !48, i64 1168, !48, i64 1176, !48, i64 1184, !48, i64 1192, !48, i64 1200, !48, i64 1208, !48, i64 1216, !12, i64 1224, !12, i64 1228, !12, i64 1232, !12, i64 1236, !12, i64 1240, !12, i64 1244, !12, i64 1248, !12, i64 1252, !12, i64 1256, !12, i64 1260, !48, i64 1264, !48, i64 1272, !48, i64 1280, !48, i64 1288, !48, i64 1296, !48, i64 1304, !48, i64 1312, !12, i64 1320, !12, i64 1324, !48, i64 1328, !48, i64 1336, !12, i64 1344, !48, i64 1352, !48, i64 1360, !48, i64 1368, !48, i64 1376, !48, i64 1384, !48, i64 1392, !48, i64 1400, !48, i64 1408, !66, i64 1416, !66, i64 1418, !66, i64 1420, !66, i64 1422, !12, i64 1424, !12, i64 1428, !12, i64 1432, !64, i64 1440, !20, i64 1472, !20, i64 1473, !20, i64 1474, !20, i64 1475, !12, i64 1476, !12, i64 1480, !20, i64 1484, !20, i64 1485, !20, i64 1486, !20, i64 1487, !12, i64 1488, !12, i64 1492, !12, i64 1496, !12, i64 1500, !67, i64 1504, !26, i64 1528, !48, i64 1552, !48, i64 1560, !48, i64 1568, !48, i64 1576, !48, i64 1584, !48, i64 1592, !7, i64 1600, !48, i64 1624, !7, i64 1632, !7, i64 1656, !7, i64 1680, !7, i64 1704, !48, i64 1728, !7, i64 1736, !7, i64 1760, !48, i64 1784, !7, i64 1792, !71, i64 1864, !20, i64 1912, !20, i64 1913, !20, i64 1914, !20, i64 1915, !20, i64 1916, !20, i64 1917, !20, i64 1918, !20, i64 1919, !48, i64 1920, !48, i64 1928, !48, i64 1936, !48, i64 1944, !12, i64 1952, !12, i64 1956, !12, i64 1960, !12, i64 1964, !12, i64 1968, !12, i64 1972, !12, i64 1976, !12, i64 1980, !12, i64 1984, !20, i64 1988, !48, i64 1992, !48, i64 2000, !79, i64 2008}
!64 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !65, i64 0, !14, i64 8, !7, i64 16}
!65 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!66 = !{!"short", !7, i64 0}
!67 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !68, i64 0}
!68 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!71 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !72, i64 0}
!72 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !73, i64 0}
!73 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !74, i64 0, !76, i64 8}
!74 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !75, i64 0}
!75 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!76 = !{!"_ZTSSt15_Rb_tree_header", !77, i64 0, !14, i64 32}
!77 = !{!"_ZTSSt18_Rb_tree_node_base", !78, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!78 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!79 = !{!"_ZTS5Timer", !80, i64 0, !80, i64 8, !48, i64 16, !64, i64 24}
!80 = !{!"_ZTSNSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEEE", !81, i64 0}
!81 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !14, i64 0}
!82 = distinct !{!82, !50}
!83 = distinct !{!83, !50}
!84 = distinct !{!84, !50}


; 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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.2" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.160" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [6 x i8], align 1
@__func__._ZN5Hexas8set_locsEv = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [26 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #3

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #1 align 2

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5 align 2

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Hexas8set_locsEv(ptr noundef nonnull align 8 dereferenceable(13968) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::vector.0", align 8
  %3 = alloca [2 x i32], align 4
  %4 = alloca %"class.std::allocator.2", align 1
  %5 = alloca %"class.std::vector.0", align 8
  %6 = alloca [2 x i32], align 4
  %7 = alloca %"class.std::allocator.2", align 1
  %8 = alloca %"class.std::vector.0", align 8
  %9 = alloca [2 x i32], align 4
  %10 = alloca %"class.std::allocator.2", align 1
  %11 = alloca %"class.std::vector.0", align 8
  %12 = alloca [2 x i32], align 4
  %13 = alloca %"class.std::allocator.2", align 1
  %14 = alloca %"class.std::vector.0", align 8
  %15 = alloca [2 x i32], align 4
  %16 = alloca %"class.std::allocator.2", align 1
  %17 = alloca %"class.std::vector.0", align 8
  %18 = alloca [2 x i32], align 4
  %19 = alloca %"class.std::allocator.2", align 1
  %20 = alloca %"class.std::vector.0", align 8
  %21 = alloca [2 x i32], align 4
  %22 = alloca %"class.std::allocator.2", align 1
  %23 = alloca %"class.std::vector.0", align 8
  %24 = alloca [2 x i32], align 4
  %25 = alloca %"class.std::allocator.2", align 1
  %26 = alloca %"class.std::vector", align 8
  %27 = alloca %"class.std::vector", align 8
  %28 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::vector", align 8
  %32 = alloca %"class.std::vector.0", align 8
  %33 = alloca [2 x i32], align 4
  %34 = alloca %"class.std::allocator.2", align 1
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca double, align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %40 = alloca double, align 8
  %41 = alloca %"class.std::vector.0", align 8
  %42 = alloca [1 x i32], align 4
  %43 = alloca %"class.std::allocator.2", align 1
  %44 = alloca %"class.std::vector", align 8
  %45 = alloca %"class.std::vector", align 8
  %46 = alloca %"class.std::vector", align 8
  %47 = alloca %"class.std::vector.0", align 8
  %48 = alloca [1 x i32], align 4
  %49 = alloca %"class.std::allocator.2", align 1
  %50 = getelementptr inbounds i8, ptr %0, i64 576
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #7
  %51 = getelementptr inbounds i8, ptr %0, i64 60
  %52 = load i32, ptr %51, align 4, !tbaa !5
  store i32 %52, ptr %3, align 4, !tbaa !35
  %53 = getelementptr inbounds i8, ptr %3, i64 4
  %54 = getelementptr inbounds i8, ptr %0, i64 52
  %55 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %55, ptr %53, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr nonnull %3, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %56 unwind label %113

56:                                               ; preds = %1
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %50, ptr noundef nonnull %2, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %57 unwind label %115

57:                                               ; preds = %56
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  %58 = getelementptr inbounds i8, ptr %0, i64 1136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %59 = load i32, ptr %51, align 4, !tbaa !5
  store i32 %59, ptr %6, align 4, !tbaa !35
  %60 = getelementptr inbounds i8, ptr %6, i64 4
  %61 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %61, ptr %60, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr nonnull %6, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %62 unwind label %118

62:                                               ; preds = %57
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %58, ptr noundef nonnull %5, i32 noundef 0, i1 noundef zeroext false)
          to label %63 unwind label %120

63:                                               ; preds = %62
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  %64 = getelementptr inbounds i8, ptr %0, i64 688
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %65 = getelementptr inbounds i8, ptr %0, i64 64
  %66 = load i32, ptr %65, align 8, !tbaa !37
  store i32 %66, ptr %9, align 4, !tbaa !35
  %67 = getelementptr inbounds i8, ptr %9, i64 4
  %68 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %68, ptr %67, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr nonnull %9, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %69 unwind label %123

69:                                               ; preds = %63
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %64, ptr noundef nonnull %8, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %70 unwind label %125

70:                                               ; preds = %69
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  %71 = getelementptr inbounds i8, ptr %0, i64 1248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %72 = load i32, ptr %65, align 8, !tbaa !37
  store i32 %72, ptr %12, align 4, !tbaa !35
  %73 = getelementptr inbounds i8, ptr %12, i64 4
  %74 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %74, ptr %73, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr nonnull %12, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %75 unwind label %128

75:                                               ; preds = %70
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %71, ptr noundef nonnull %11, i32 noundef 0, i1 noundef zeroext false)
          to label %76 unwind label %130

76:                                               ; preds = %75
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  %77 = getelementptr inbounds i8, ptr %0, i64 800
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  %78 = getelementptr inbounds i8, ptr %0, i64 72
  %79 = load i32, ptr %78, align 8, !tbaa !38
  store i32 %79, ptr %15, align 4, !tbaa !35
  %80 = getelementptr inbounds i8, ptr %15, i64 4
  %81 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %81, ptr %80, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr nonnull %15, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %82 unwind label %133

82:                                               ; preds = %76
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %77, ptr noundef nonnull %14, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %83 unwind label %135

83:                                               ; preds = %82
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  %84 = getelementptr inbounds i8, ptr %0, i64 1360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  %85 = load i32, ptr %78, align 8, !tbaa !38
  store i32 %85, ptr %18, align 4, !tbaa !35
  %86 = getelementptr inbounds i8, ptr %18, i64 4
  %87 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %87, ptr %86, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr nonnull %18, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %88 unwind label %138

88:                                               ; preds = %83
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %84, ptr noundef nonnull %17, i32 noundef 0, i1 noundef zeroext false)
          to label %89 unwind label %140

89:                                               ; preds = %88
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  %90 = getelementptr inbounds i8, ptr %0, i64 1024
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %91 = getelementptr inbounds i8, ptr %0, i64 76
  %92 = load i32, ptr %91, align 4, !tbaa !39
  store i32 %92, ptr %21, align 4, !tbaa !35
  %93 = getelementptr inbounds i8, ptr %21, i64 4
  %94 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %94, ptr %93, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr nonnull %21, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %95 unwind label %143

95:                                               ; preds = %89
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %90, ptr noundef nonnull %20, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %96 unwind label %145

96:                                               ; preds = %95
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  %97 = getelementptr inbounds i8, ptr %0, i64 1584
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  %98 = load i32, ptr %91, align 4, !tbaa !39
  store i32 %98, ptr %24, align 4, !tbaa !35
  %99 = getelementptr inbounds i8, ptr %24, i64 4
  %100 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %100, ptr %99, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr nonnull %24, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %101 unwind label %148

101:                                              ; preds = %96
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %97, ptr noundef nonnull %23, i32 noundef 0, i1 noundef zeroext false)
          to label %102 unwind label %150

102:                                              ; preds = %101
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  %103 = getelementptr inbounds i8, ptr %0, i64 8
  %104 = load ptr, ptr %103, align 8, !tbaa !40
  %105 = getelementptr inbounds i8, ptr %104, i64 136
  %106 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull @.str.4)
  br i1 %106, label %107, label %153

107:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #7
  %108 = getelementptr inbounds i8, ptr %0, i64 32
  %109 = load i32, ptr %108, align 8, !tbaa !41
  %110 = add i32 %109, 1
  call void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %26, i32 noundef %110)
  %111 = getelementptr inbounds i8, ptr %0, i64 1696
  %112 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %111, ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  br label %198

113:                                              ; preds = %1
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %117

115:                                              ; preds = %56
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #7
  br label %117

117:                                              ; preds = %115, %113
  %.pn = phi { ptr, i32 } [ %116, %115 ], [ %114, %113 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  br label %539

118:                                              ; preds = %57
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %122

120:                                              ; preds = %62
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  br label %122

122:                                              ; preds = %120, %118
  %.pn215 = phi { ptr, i32 } [ %121, %120 ], [ %119, %118 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %539

123:                                              ; preds = %63
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %127

125:                                              ; preds = %69
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  br label %127

127:                                              ; preds = %125, %123
  %.pn217 = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %539

128:                                              ; preds = %70
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %132

130:                                              ; preds = %75
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br label %132

132:                                              ; preds = %130, %128
  %.pn219 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %539

133:                                              ; preds = %76
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %82
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  br label %137

137:                                              ; preds = %135, %133
  %.pn221 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %539

138:                                              ; preds = %83
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %88
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  br label %142

142:                                              ; preds = %140, %138
  %.pn223 = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br label %539

143:                                              ; preds = %89
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %147

145:                                              ; preds = %95
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  br label %147

147:                                              ; preds = %145, %143
  %.pn225 = phi { ptr, i32 } [ %146, %145 ], [ %144, %143 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br label %539

148:                                              ; preds = %96
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %152

150:                                              ; preds = %101
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  br label %152

152:                                              ; preds = %150, %148
  %.pn227 = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  br label %539

153:                                              ; preds = %102
  %154 = load ptr, ptr %103, align 8, !tbaa !40
  %155 = getelementptr inbounds i8, ptr %154, i64 136
  %156 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull @.str.5)
  br i1 %156, label %157, label %163

157:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #7
  %158 = getelementptr inbounds i8, ptr %0, i64 32
  %159 = load i32, ptr %158, align 8, !tbaa !41
  %160 = add i32 %159, 1
  call void @_Z9DFRsp_ptsjd(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %27, i32 noundef %160, double noundef 0x3FD5BFFB2237A15D)
  %161 = getelementptr inbounds i8, ptr %0, i64 1696
  %162 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %161, ptr noundef nonnull align 8 dereferenceable(24) %27) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #7
  br label %198

163:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %28) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28)
  %164 = getelementptr inbounds i8, ptr %28, i64 16
  %165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull @.str)
          to label %166 unwind label %186

166:                                              ; preds = %163
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull @.str.1)
          to label %168 unwind label %186

168:                                              ; preds = %166
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %167, i32 noundef 65)
          to label %170 unwind label %186

170:                                              ; preds = %168
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %169, ptr noundef nonnull @.str.1)
          to label %172 unwind label %186

172:                                              ; preds = %170
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef nonnull @__func__._ZN5Hexas8set_locsEv)
          to label %174 unwind label %186

174:                                              ; preds = %172
  %175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull @.str.2)
          to label %176 unwind label %186

176:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  %177 = load ptr, ptr %103, align 8, !tbaa !40
  %178 = getelementptr inbounds i8, ptr %177, i64 136
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull @.str.6, ptr noundef nonnull align 8 dereferenceable(32) %178)
          to label %179 unwind label %188

179:                                              ; preds = %176
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %181 unwind label %190

181:                                              ; preds = %179
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  %182 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(128) %28)
          to label %183 unwind label %.thread

183:                                              ; preds = %181
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %185 unwind label %.thread248

.thread248:                                       ; preds = %183
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %196

185:                                              ; preds = %183
  invoke void @__cxa_throw(ptr nonnull %182, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %540 unwind label %194

186:                                              ; preds = %174, %172, %170, %168, %166, %163
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %197

188:                                              ; preds = %176
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %192

190:                                              ; preds = %179
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %192

192:                                              ; preds = %190, %188
  %.pn229 = phi { ptr, i32 } [ %191, %190 ], [ %189, %188 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  br label %197

.thread:                                          ; preds = %181
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %196

194:                                              ; preds = %185
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %197

196:                                              ; preds = %.thread248, %.thread
  %.pn231247 = phi { ptr, i32 } [ %193, %.thread ], [ %184, %.thread248 ]
  call void @__cxa_free_exception(ptr %182) #7
  br label %197

197:                                              ; preds = %194, %196, %192, %186
  %.pn231.pn = phi { ptr, i32 } [ %.pn231247, %196 ], [ %195, %194 ], [ %.pn229, %192 ], [ %187, %186 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %28) #7
  br label %539

198:                                              ; preds = %157, %107
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #7
  %199 = getelementptr inbounds i8, ptr %0, i64 68
  %200 = load i32, ptr %199, align 4, !tbaa !42
  call void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %31, i32 noundef %200)
  %201 = getelementptr inbounds i8, ptr %0, i64 4256
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  %202 = load i32, ptr %199, align 4, !tbaa !42
  store i32 %202, ptr %33, align 4, !tbaa !35
  %203 = getelementptr inbounds i8, ptr %33, i64 4
  store i32 %202, ptr %203, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr nonnull %33, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %204 unwind label %212

204:                                              ; preds = %198
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %201, ptr noundef nonnull %32, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %205 unwind label %214

205:                                              ; preds = %204
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  %206 = load i32, ptr %199, align 4, !tbaa !42
  %.not = icmp eq i32 %206, 0
  br i1 %.not, label %._crit_edge262, label %.preheader259

.preheader259:                                    ; preds = %205, %._crit_edge
  %207 = phi i32 [ %217, %._crit_edge ], [ 1, %205 ]
  %indvars.iv395 = phi i64 [ %indvars.iv.next396, %._crit_edge ], [ 0, %205 ]
  %.not349 = icmp eq i32 %207, 0
  br i1 %.not349, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader259
  %208 = trunc nuw i64 %indvars.iv395 to i32
  br label %220

._crit_edge262:                                   ; preds = %._crit_edge, %205
  %209 = getelementptr inbounds i8, ptr %0, i64 1696
  %210 = getelementptr inbounds i8, ptr %0, i64 1768
  %211 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %210, ptr noundef nonnull align 8 dereferenceable(24) %209)
          to label %231 unwind label %249

212:                                              ; preds = %198
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %216

214:                                              ; preds = %204
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  br label %216

216:                                              ; preds = %214, %212
  %.pn234 = phi { ptr, i32 } [ %215, %214 ], [ %213, %212 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  br label %538

._crit_edge:                                      ; preds = %220, %.preheader259
  %217 = phi i32 [ 0, %.preheader259 ], [ %228, %220 ]
  %indvars.iv.next396 = add nuw nsw i64 %indvars.iv395, 1
  %218 = zext i32 %217 to i64
  %219 = icmp ult i64 %indvars.iv.next396, %218
  br i1 %219, label %.preheader259, label %._crit_edge262, !llvm.loop !43

220:                                              ; preds = %.lr.ph, %220
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %220 ]
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv395) #7
  %222 = load double, ptr %221, align 8, !tbaa !46
  %223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv) #7
  %224 = load double, ptr %223, align 8, !tbaa !46
  %225 = fmul double %222, %224
  %226 = trunc nuw i64 %indvars.iv to i32
  %227 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %201, i32 noundef %208, i32 noundef %226)
  store double %225, ptr %227, align 8, !tbaa !46
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %228 = load i32, ptr %199, align 4, !tbaa !42
  %229 = zext i32 %228 to i64
  %230 = icmp ult i64 %indvars.iv.next, %229
  br i1 %230, label %220, label %._crit_edge, !llvm.loop !48

231:                                              ; preds = %._crit_edge262
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  %232 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %210) #7
  store ptr %232, ptr %36, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  store double -1.000000e+00, ptr %37, align 8, !tbaa !46
  %233 = load ptr, ptr %35, align 8
  %234 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %210, ptr %233, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %235 unwind label %251

235:                                              ; preds = %231
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  %236 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %210) #7
  store ptr %236, ptr %39, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  store double 1.000000e+00, ptr %40, align 8, !tbaa !46
  %237 = load ptr, ptr %38, align 8
  %238 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %210, ptr %237, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %239 unwind label %253

239:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  %240 = getelementptr inbounds i8, ptr %0, i64 4144
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  %241 = load i32, ptr %51, align 4, !tbaa !5
  store i32 %241, ptr %42, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr nonnull %42, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %242 unwind label %255

242:                                              ; preds = %239
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %240, ptr noundef nonnull %41, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %243 unwind label %257

243:                                              ; preds = %242
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  %244 = load i32, ptr %199, align 4, !tbaa !42
  %.not350 = icmp eq i32 %244, 0
  br i1 %.not350, label %._crit_edge319, label %.preheader258

.preheader258:                                    ; preds = %243, %._crit_edge269
  %245 = phi i32 [ %263, %._crit_edge269 ], [ %244, %243 ]
  %indvars.iv404 = phi i64 [ %indvars.iv.next405, %._crit_edge269 ], [ 0, %243 ]
  %.0206271 = phi i32 [ %.1207.lcssa, %._crit_edge269 ], [ 0, %243 ]
  %.not352 = icmp eq i32 %245, 0
  br i1 %.not352, label %._crit_edge269, label %.preheader257.preheader

.preheader257.preheader:                          ; preds = %.preheader258
  %246 = trunc nuw i64 %indvars.iv404 to i32
  br label %.preheader257

.preheader256:                                    ; preds = %._crit_edge269
  %247 = getelementptr inbounds i8, ptr %0, i64 84
  %248 = load i32, ptr %247, align 4, !tbaa !49
  %.not355 = icmp eq i32 %248, 0
  %.not356 = icmp eq i32 %263, 0
  %or.cond = or i1 %.not355, %.not356
  br i1 %or.cond, label %._crit_edge319, label %.preheader255

249:                                              ; preds = %._crit_edge262
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %538

251:                                              ; preds = %231
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  br label %538

253:                                              ; preds = %235
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  br label %538

255:                                              ; preds = %239
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %259

257:                                              ; preds = %242
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  br label %259

259:                                              ; preds = %257, %255
  %.pn236 = phi { ptr, i32 } [ %258, %257 ], [ %256, %255 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  br label %538

.preheader257:                                    ; preds = %.preheader257.preheader, %._crit_edge266
  %260 = phi i32 [ %245, %.preheader257.preheader ], [ %266, %._crit_edge266 ]
  %261 = phi i32 [ 1, %.preheader257.preheader ], [ %267, %._crit_edge266 ]
  %indvars.iv401 = phi i64 [ 0, %.preheader257.preheader ], [ %indvars.iv.next402, %._crit_edge266 ]
  %.1207267 = phi i32 [ %.0206271, %.preheader257.preheader ], [ %.2208.lcssa, %._crit_edge266 ]
  %.not354 = icmp eq i32 %261, 0
  br i1 %.not354, label %._crit_edge266, label %.lr.ph265

.lr.ph265:                                        ; preds = %.preheader257
  %262 = trunc nuw i64 %indvars.iv401 to i32
  br label %270

._crit_edge269:                                   ; preds = %._crit_edge266, %.preheader258
  %263 = phi i32 [ 0, %.preheader258 ], [ %266, %._crit_edge266 ]
  %.1207.lcssa = phi i32 [ %.0206271, %.preheader258 ], [ %.2208.lcssa, %._crit_edge266 ]
  %indvars.iv.next405 = add nuw nsw i64 %indvars.iv404, 1
  %264 = zext i32 %263 to i64
  %265 = icmp ult i64 %indvars.iv.next405, %264
  br i1 %265, label %.preheader258, label %.preheader256, !llvm.loop !50

._crit_edge266:                                   ; preds = %270, %.preheader257
  %266 = phi i32 [ %260, %.preheader257 ], [ %294, %270 ]
  %267 = phi i32 [ 0, %.preheader257 ], [ %294, %270 ]
  %.2208.lcssa = phi i32 [ %.1207267, %.preheader257 ], [ %293, %270 ]
  %indvars.iv.next402 = add nuw nsw i64 %indvars.iv401, 1
  %268 = zext i32 %267 to i64
  %269 = icmp ult i64 %indvars.iv.next402, %268
  br i1 %269, label %.preheader257, label %._crit_edge269, !llvm.loop !51

270:                                              ; preds = %.lr.ph265, %270
  %indvars.iv398 = phi i64 [ 0, %.lr.ph265 ], [ %indvars.iv.next399, %270 ]
  %.2208263 = phi i32 [ %.1207267, %.lr.ph265 ], [ %293, %270 ]
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv398) #7
  %272 = load double, ptr %271, align 8, !tbaa !46
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %50, i32 noundef %.2208263, i32 noundef 0)
  store double %272, ptr %273, align 8, !tbaa !46
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv401) #7
  %275 = load double, ptr %274, align 8, !tbaa !46
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %50, i32 noundef %.2208263, i32 noundef 1)
  store double %275, ptr %276, align 8, !tbaa !46
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv404) #7
  %278 = load double, ptr %277, align 8, !tbaa !46
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %50, i32 noundef %.2208263, i32 noundef 2)
  store double %278, ptr %279, align 8, !tbaa !46
  %280 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %58, i32 noundef %.2208263, i32 noundef 0)
  %281 = trunc nuw i64 %indvars.iv398 to i32
  store i32 %281, ptr %280, align 4, !tbaa !35
  %282 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %58, i32 noundef %.2208263, i32 noundef 1)
  store i32 %262, ptr %282, align 4, !tbaa !35
  %283 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %58, i32 noundef %.2208263, i32 noundef 2)
  store i32 %246, ptr %283, align 4, !tbaa !35
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv404) #7
  %285 = load double, ptr %284, align 8, !tbaa !46
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv401) #7
  %287 = load double, ptr %286, align 8, !tbaa !46
  %288 = fmul double %285, %287
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv398) #7
  %290 = load double, ptr %289, align 8, !tbaa !46
  %291 = fmul double %288, %290
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %240, i32 noundef %.2208263)
  store double %291, ptr %292, align 8, !tbaa !46
  %293 = add i32 %.2208263, 1
  %indvars.iv.next399 = add nuw nsw i64 %indvars.iv398, 1
  %294 = load i32, ptr %199, align 4, !tbaa !42
  %295 = zext i32 %294 to i64
  %296 = icmp ult i64 %indvars.iv.next399, %295
  br i1 %296, label %270, label %._crit_edge266, !llvm.loop !52

.preheader255:                                    ; preds = %.preheader256, %._crit_edge313
  %297 = phi i32 [ %422, %._crit_edge313 ], [ %248, %.preheader256 ]
  %298 = phi i32 [ %423, %._crit_edge313 ], [ %263, %.preheader256 ]
  %299 = phi i32 [ %424, %._crit_edge313 ], [ %263, %.preheader256 ]
  %300 = phi i32 [ %425, %._crit_edge313 ], [ %263, %.preheader256 ]
  %301 = phi i32 [ %426, %._crit_edge313 ], [ 1, %.preheader256 ]
  %.0199317 = phi i32 [ %427, %._crit_edge313 ], [ 0, %.preheader256 ]
  %.0200316 = phi i32 [ %.1201.lcssa, %._crit_edge313 ], [ 0, %.preheader256 ]
  %.not357 = icmp eq i32 %301, 0
  br i1 %.not357, label %._crit_edge313, label %.preheader254.lr.ph

.preheader254.lr.ph:                              ; preds = %.preheader255
  %.not358 = icmp eq i32 %300, 0
  br i1 %.not358, label %._crit_edge313, label %.preheader254

._crit_edge319:                                   ; preds = %._crit_edge313, %243, %.preheader256
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #7
  %302 = getelementptr inbounds i8, ptr %0, i64 32
  %303 = load i32, ptr %302, align 8, !tbaa !41
  invoke void @_Z9Shape_ptsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %44, i32 noundef %303)
          to label %.preheader253 unwind label %437

.preheader253:                                    ; preds = %._crit_edge319
  %304 = load i32, ptr %199, align 4, !tbaa !42
  %.not360 = icmp eq i32 %304, 0
  br i1 %.not360, label %._crit_edge333, label %.preheader252

.preheader254:                                    ; preds = %.preheader254.lr.ph, %._crit_edge277
  %305 = phi i32 [ %429, %._crit_edge277 ], [ %298, %.preheader254.lr.ph ]
  %306 = phi i32 [ %429, %._crit_edge277 ], [ %299, %.preheader254.lr.ph ]
  %indvars.iv416 = phi i64 [ %indvars.iv.next417, %._crit_edge277 ], [ 0, %.preheader254.lr.ph ]
  %.1201305 = phi i32 [ %.2202.lcssa, %._crit_edge277 ], [ %.0200316, %.preheader254.lr.ph ]
  %.not359 = icmp eq i32 %306, 0
  br i1 %.not359, label %._crit_edge277, label %.lr.ph276

.lr.ph276:                                        ; preds = %.preheader254
  switch i32 %.0199317, label %.lr.ph276.split [
    i32 0, label %.lr.ph276.split.us.preheader
    i32 1, label %.lr.ph276.split.us280.preheader
    i32 2, label %.lr.ph276.split.us285.preheader
    i32 3, label %.lr.ph276.split.us290.preheader
    i32 4, label %.lr.ph276.split.us295.preheader
    i32 5, label %.lr.ph276.split.us300.preheader
  ]

.lr.ph276.split.us300.preheader:                  ; preds = %.lr.ph276
  %307 = trunc nuw i64 %indvars.iv416 to i32
  br label %.lr.ph276.split.us300

.lr.ph276.split.us295.preheader:                  ; preds = %.lr.ph276
  %308 = trunc nuw i64 %indvars.iv416 to i32
  br label %.lr.ph276.split.us295

.lr.ph276.split.us290.preheader:                  ; preds = %.lr.ph276
  %309 = trunc nuw i64 %indvars.iv416 to i32
  br label %.lr.ph276.split.us290

.lr.ph276.split.us285.preheader:                  ; preds = %.lr.ph276
  %310 = trunc nuw i64 %indvars.iv416 to i32
  br label %.lr.ph276.split.us285

.lr.ph276.split.us280.preheader:                  ; preds = %.lr.ph276
  %311 = trunc nuw i64 %indvars.iv416 to i32
  br label %.lr.ph276.split.us280

.lr.ph276.split.us.preheader:                     ; preds = %.lr.ph276
  %312 = trunc nuw i64 %indvars.iv416 to i32
  br label %.lr.ph276.split.us

.lr.ph276.split.us:                               ; preds = %.lr.ph276.split.us.preheader, %.lr.ph276.split.us
  %indvars.iv413 = phi i64 [ 0, %.lr.ph276.split.us.preheader ], [ %indvars.iv.next414, %.lr.ph276.split.us ]
  %.2202274.us = phi i32 [ %.1201305, %.lr.ph276.split.us.preheader ], [ %324, %.lr.ph276.split.us ]
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv413) #7
  %314 = load double, ptr %313, align 8, !tbaa !46
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us, i32 noundef 0)
  store double %314, ptr %315, align 8, !tbaa !46
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv416) #7
  %317 = load double, ptr %316, align 8, !tbaa !46
  %318 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us, i32 noundef 1)
  store double %317, ptr %318, align 8, !tbaa !46
  %319 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us, i32 noundef 2)
  store double -1.000000e+00, ptr %319, align 8, !tbaa !46
  %320 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us, i32 noundef 0)
  %321 = trunc nuw i64 %indvars.iv413 to i32
  store i32 %321, ptr %320, align 4, !tbaa !35
  %322 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us, i32 noundef 1)
  store i32 %312, ptr %322, align 4, !tbaa !35
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us, i32 noundef 2)
  store i32 -1, ptr %323, align 4, !tbaa !35
  %324 = add i32 %.2202274.us, 1
  %indvars.iv.next414 = add nuw nsw i64 %indvars.iv413, 1
  %325 = load i32, ptr %199, align 4, !tbaa !42
  %326 = zext i32 %325 to i64
  %327 = icmp ult i64 %indvars.iv.next414, %326
  br i1 %327, label %.lr.ph276.split.us, label %._crit_edge277, !llvm.loop !53

.lr.ph276.split.us280:                            ; preds = %.lr.ph276.split.us280.preheader, %.lr.ph276.split.us280
  %328 = phi i32 [ %347, %.lr.ph276.split.us280 ], [ %306, %.lr.ph276.split.us280.preheader ]
  %.0197275.us281 = phi i32 [ %346, %.lr.ph276.split.us280 ], [ 0, %.lr.ph276.split.us280.preheader ]
  %.2202274.us282 = phi i32 [ %345, %.lr.ph276.split.us280 ], [ %.1201305, %.lr.ph276.split.us280.preheader ]
  %329 = xor i32 %.0197275.us281, -1
  %330 = add i32 %328, %329
  %331 = zext i32 %330 to i64
  %332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %331) #7
  %333 = load double, ptr %332, align 8, !tbaa !46
  %334 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us282, i32 noundef 0)
  store double %333, ptr %334, align 8, !tbaa !46
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv416) #7
  %336 = load double, ptr %335, align 8, !tbaa !46
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us282, i32 noundef 1)
  store double %336, ptr %337, align 8, !tbaa !46
  %338 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us282, i32 noundef 2)
  store double 1.000000e+00, ptr %338, align 8, !tbaa !46
  %339 = load i32, ptr %199, align 4, !tbaa !42
  %340 = add i32 %339, %329
  %341 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us282, i32 noundef 0)
  store i32 %340, ptr %341, align 4, !tbaa !35
  %342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us282, i32 noundef 1)
  store i32 %311, ptr %342, align 4, !tbaa !35
  %343 = load i32, ptr %199, align 4, !tbaa !42
  %344 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us282, i32 noundef 2)
  store i32 %343, ptr %344, align 4, !tbaa !35
  %345 = add i32 %.2202274.us282, 1
  %346 = add nuw i32 %.0197275.us281, 1
  %347 = load i32, ptr %199, align 4, !tbaa !42
  %348 = icmp ult i32 %346, %347
  br i1 %348, label %.lr.ph276.split.us280, label %._crit_edge277, !llvm.loop !53

.lr.ph276.split.us285:                            ; preds = %.lr.ph276.split.us285.preheader, %.lr.ph276.split.us285
  %indvars.iv410 = phi i64 [ 0, %.lr.ph276.split.us285.preheader ], [ %indvars.iv.next411, %.lr.ph276.split.us285 ]
  %.2202274.us287 = phi i32 [ %.1201305, %.lr.ph276.split.us285.preheader ], [ %360, %.lr.ph276.split.us285 ]
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us287, i32 noundef 0)
  store double -1.000000e+00, ptr %349, align 8, !tbaa !46
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv410) #7
  %351 = load double, ptr %350, align 8, !tbaa !46
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us287, i32 noundef 1)
  store double %351, ptr %352, align 8, !tbaa !46
  %353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv416) #7
  %354 = load double, ptr %353, align 8, !tbaa !46
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us287, i32 noundef 2)
  store double %354, ptr %355, align 8, !tbaa !46
  %356 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us287, i32 noundef 0)
  store i32 -1, ptr %356, align 4, !tbaa !35
  %357 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us287, i32 noundef 1)
  %358 = trunc nuw i64 %indvars.iv410 to i32
  store i32 %358, ptr %357, align 4, !tbaa !35
  %359 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us287, i32 noundef 2)
  store i32 %310, ptr %359, align 4, !tbaa !35
  %360 = add i32 %.2202274.us287, 1
  %indvars.iv.next411 = add nuw nsw i64 %indvars.iv410, 1
  %361 = load i32, ptr %199, align 4, !tbaa !42
  %362 = zext i32 %361 to i64
  %363 = icmp ult i64 %indvars.iv.next411, %362
  br i1 %363, label %.lr.ph276.split.us285, label %._crit_edge277, !llvm.loop !53

.lr.ph276.split.us290:                            ; preds = %.lr.ph276.split.us290.preheader, %.lr.ph276.split.us290
  %.0197275.us291 = phi i32 [ %382, %.lr.ph276.split.us290 ], [ 0, %.lr.ph276.split.us290.preheader ]
  %.2202274.us292 = phi i32 [ %381, %.lr.ph276.split.us290 ], [ %.1201305, %.lr.ph276.split.us290.preheader ]
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us292, i32 noundef 0)
  store double 1.000000e+00, ptr %364, align 8, !tbaa !46
  %365 = load i32, ptr %199, align 4, !tbaa !42
  %366 = xor i32 %.0197275.us291, -1
  %367 = add i32 %365, %366
  %368 = zext i32 %367 to i64
  %369 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %368) #7
  %370 = load double, ptr %369, align 8, !tbaa !46
  %371 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us292, i32 noundef 1)
  store double %370, ptr %371, align 8, !tbaa !46
  %372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv416) #7
  %373 = load double, ptr %372, align 8, !tbaa !46
  %374 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us292, i32 noundef 2)
  store double %373, ptr %374, align 8, !tbaa !46
  %375 = load i32, ptr %199, align 4, !tbaa !42
  %376 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us292, i32 noundef 0)
  store i32 %375, ptr %376, align 4, !tbaa !35
  %377 = load i32, ptr %199, align 4, !tbaa !42
  %378 = add i32 %377, %366
  %379 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us292, i32 noundef 1)
  store i32 %378, ptr %379, align 4, !tbaa !35
  %380 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us292, i32 noundef 2)
  store i32 %309, ptr %380, align 4, !tbaa !35
  %381 = add i32 %.2202274.us292, 1
  %382 = add nuw i32 %.0197275.us291, 1
  %383 = load i32, ptr %199, align 4, !tbaa !42
  %384 = icmp ult i32 %382, %383
  br i1 %384, label %.lr.ph276.split.us290, label %._crit_edge277, !llvm.loop !53

.lr.ph276.split.us295:                            ; preds = %.lr.ph276.split.us295.preheader, %.lr.ph276.split.us295
  %385 = phi i32 [ %403, %.lr.ph276.split.us295 ], [ %306, %.lr.ph276.split.us295.preheader ]
  %.0197275.us296 = phi i32 [ %402, %.lr.ph276.split.us295 ], [ 0, %.lr.ph276.split.us295.preheader ]
  %.2202274.us297 = phi i32 [ %401, %.lr.ph276.split.us295 ], [ %.1201305, %.lr.ph276.split.us295.preheader ]
  %386 = xor i32 %.0197275.us296, -1
  %387 = add i32 %385, %386
  %388 = zext i32 %387 to i64
  %389 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %388) #7
  %390 = load double, ptr %389, align 8, !tbaa !46
  %391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us297, i32 noundef 0)
  store double %390, ptr %391, align 8, !tbaa !46
  %392 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us297, i32 noundef 1)
  store double -1.000000e+00, ptr %392, align 8, !tbaa !46
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv416) #7
  %394 = load double, ptr %393, align 8, !tbaa !46
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us297, i32 noundef 2)
  store double %394, ptr %395, align 8, !tbaa !46
  %396 = load i32, ptr %199, align 4, !tbaa !42
  %397 = add i32 %396, %386
  %398 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us297, i32 noundef 0)
  store i32 %397, ptr %398, align 4, !tbaa !35
  %399 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us297, i32 noundef 1)
  store i32 -1, ptr %399, align 4, !tbaa !35
  %400 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us297, i32 noundef 2)
  store i32 %308, ptr %400, align 4, !tbaa !35
  %401 = add i32 %.2202274.us297, 1
  %402 = add nuw i32 %.0197275.us296, 1
  %403 = load i32, ptr %199, align 4, !tbaa !42
  %404 = icmp ult i32 %402, %403
  br i1 %404, label %.lr.ph276.split.us295, label %._crit_edge277, !llvm.loop !53

.lr.ph276.split.us300:                            ; preds = %.lr.ph276.split.us300.preheader, %.lr.ph276.split.us300
  %indvars.iv407 = phi i64 [ 0, %.lr.ph276.split.us300.preheader ], [ %indvars.iv.next408, %.lr.ph276.split.us300 ]
  %.2202274.us302 = phi i32 [ %.1201305, %.lr.ph276.split.us300.preheader ], [ %417, %.lr.ph276.split.us300 ]
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv407) #7
  %406 = load double, ptr %405, align 8, !tbaa !46
  %407 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us302, i32 noundef 0)
  store double %406, ptr %407, align 8, !tbaa !46
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us302, i32 noundef 1)
  store double 1.000000e+00, ptr %408, align 8, !tbaa !46
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %indvars.iv416) #7
  %410 = load double, ptr %409, align 8, !tbaa !46
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.2202274.us302, i32 noundef 2)
  store double %410, ptr %411, align 8, !tbaa !46
  %412 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us302, i32 noundef 0)
  %413 = trunc nuw i64 %indvars.iv407 to i32
  store i32 %413, ptr %412, align 4, !tbaa !35
  %414 = load i32, ptr %199, align 4, !tbaa !42
  %415 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us302, i32 noundef 1)
  store i32 %414, ptr %415, align 4, !tbaa !35
  %416 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.2202274.us302, i32 noundef 2)
  store i32 %307, ptr %416, align 4, !tbaa !35
  %417 = add i32 %.2202274.us302, 1
  %indvars.iv.next408 = add nuw nsw i64 %indvars.iv407, 1
  %418 = load i32, ptr %199, align 4, !tbaa !42
  %419 = zext i32 %418 to i64
  %420 = icmp ult i64 %indvars.iv.next408, %419
  br i1 %420, label %.lr.ph276.split.us300, label %._crit_edge277, !llvm.loop !53

.lr.ph276.split:                                  ; preds = %.lr.ph276
  %421 = add i32 %.1201305, %306
  br label %._crit_edge277

._crit_edge313.loopexit380:                       ; preds = %._crit_edge277
  %.pre = load i32, ptr %247, align 4, !tbaa !49
  br label %._crit_edge313

._crit_edge313:                                   ; preds = %.preheader254.lr.ph, %._crit_edge313.loopexit380, %.preheader255
  %422 = phi i32 [ %297, %.preheader255 ], [ %.pre, %._crit_edge313.loopexit380 ], [ %297, %.preheader254.lr.ph ]
  %423 = phi i32 [ %298, %.preheader255 ], [ %429, %._crit_edge313.loopexit380 ], [ %298, %.preheader254.lr.ph ]
  %424 = phi i32 [ %299, %.preheader255 ], [ %429, %._crit_edge313.loopexit380 ], [ %299, %.preheader254.lr.ph ]
  %425 = phi i32 [ %300, %.preheader255 ], [ %429, %._crit_edge313.loopexit380 ], [ 0, %.preheader254.lr.ph ]
  %426 = phi i32 [ 0, %.preheader255 ], [ %429, %._crit_edge313.loopexit380 ], [ 0, %.preheader254.lr.ph ]
  %.1201.lcssa = phi i32 [ %.0200316, %.preheader255 ], [ %.2202.lcssa, %._crit_edge313.loopexit380 ], [ %.0200316, %.preheader254.lr.ph ]
  %427 = add nuw i32 %.0199317, 1
  %428 = icmp ult i32 %427, %422
  br i1 %428, label %.preheader255, label %._crit_edge319, !llvm.loop !54

._crit_edge277:                                   ; preds = %.lr.ph276.split.us300, %.lr.ph276.split.us295, %.lr.ph276.split.us290, %.lr.ph276.split.us285, %.lr.ph276.split.us280, %.lr.ph276.split.us, %.lr.ph276.split, %.preheader254
  %429 = phi i32 [ %305, %.preheader254 ], [ %305, %.lr.ph276.split ], [ %325, %.lr.ph276.split.us ], [ %347, %.lr.ph276.split.us280 ], [ %361, %.lr.ph276.split.us285 ], [ %383, %.lr.ph276.split.us290 ], [ %403, %.lr.ph276.split.us295 ], [ %418, %.lr.ph276.split.us300 ]
  %.2202.lcssa = phi i32 [ %.1201305, %.preheader254 ], [ %421, %.lr.ph276.split ], [ %324, %.lr.ph276.split.us ], [ %345, %.lr.ph276.split.us280 ], [ %360, %.lr.ph276.split.us285 ], [ %381, %.lr.ph276.split.us290 ], [ %401, %.lr.ph276.split.us295 ], [ %417, %.lr.ph276.split.us300 ]
  %indvars.iv.next417 = add nuw nsw i64 %indvars.iv416, 1
  %430 = zext i32 %429 to i64
  %431 = icmp ult i64 %indvars.iv.next417, %430
  br i1 %431, label %.preheader254, label %._crit_edge313.loopexit380, !llvm.loop !55

.preheader252:                                    ; preds = %.preheader253, %._crit_edge327
  %432 = phi i32 [ %442, %._crit_edge327 ], [ %304, %.preheader253 ]
  %indvars.iv425 = phi i64 [ %indvars.iv.next426, %._crit_edge327 ], [ 0, %.preheader253 ]
  %.0194330 = phi i32 [ %.1195.lcssa, %._crit_edge327 ], [ 0, %.preheader253 ]
  %.not362 = icmp eq i32 %432, 0
  br i1 %.not362, label %._crit_edge327, label %.preheader251.preheader

.preheader251.preheader:                          ; preds = %.preheader252
  %433 = trunc nuw i64 %indvars.iv425 to i32
  br label %.preheader251

._crit_edge333:                                   ; preds = %._crit_edge327, %.preheader253
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #7
  %434 = load ptr, ptr %103, align 8, !tbaa !40
  %435 = getelementptr inbounds i8, ptr %434, i64 20
  %436 = load i32, ptr %435, align 4, !tbaa !56
  invoke void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %45, i32 noundef %436)
          to label %467 unwind label %488

437:                                              ; preds = %._crit_edge319
  %438 = landingpad { ptr, i32 }
          cleanup
  br label %537

.preheader251:                                    ; preds = %.preheader251.preheader, %._crit_edge323
  %439 = phi i32 [ %432, %.preheader251.preheader ], [ %445, %._crit_edge323 ]
  %440 = phi i32 [ 1, %.preheader251.preheader ], [ %446, %._crit_edge323 ]
  %indvars.iv422 = phi i64 [ 0, %.preheader251.preheader ], [ %indvars.iv.next423, %._crit_edge323 ]
  %.1195325 = phi i32 [ %.0194330, %.preheader251.preheader ], [ %.2196.lcssa, %._crit_edge323 ]
  %.not364 = icmp eq i32 %440, 0
  br i1 %.not364, label %._crit_edge323, label %.lr.ph322

.lr.ph322:                                        ; preds = %.preheader251
  %441 = trunc nuw i64 %indvars.iv422 to i32
  br label %449

._crit_edge327:                                   ; preds = %._crit_edge323, %.preheader252
  %442 = phi i32 [ 0, %.preheader252 ], [ %445, %._crit_edge323 ]
  %.1195.lcssa = phi i32 [ %.0194330, %.preheader252 ], [ %.2196.lcssa, %._crit_edge323 ]
  %indvars.iv.next426 = add nuw nsw i64 %indvars.iv425, 1
  %443 = zext i32 %442 to i64
  %444 = icmp ult i64 %indvars.iv.next426, %443
  br i1 %444, label %.preheader252, label %._crit_edge333, !llvm.loop !76

._crit_edge323:                                   ; preds = %449, %.preheader251
  %445 = phi i32 [ %439, %.preheader251 ], [ %464, %449 ]
  %446 = phi i32 [ 0, %.preheader251 ], [ %464, %449 ]
  %.2196.lcssa = phi i32 [ %.1195325, %.preheader251 ], [ %463, %449 ]
  %indvars.iv.next423 = add nuw nsw i64 %indvars.iv422, 1
  %447 = zext i32 %446 to i64
  %448 = icmp ult i64 %indvars.iv.next423, %447
  br i1 %448, label %.preheader251, label %._crit_edge327, !llvm.loop !77

449:                                              ; preds = %.lr.ph322, %449
  %indvars.iv419 = phi i64 [ 0, %.lr.ph322 ], [ %indvars.iv.next420, %449 ]
  %.2196320 = phi i32 [ %.1195325, %.lr.ph322 ], [ %463, %449 ]
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv419) #7
  %451 = load double, ptr %450, align 8, !tbaa !46
  %452 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %77, i32 noundef %.2196320, i32 noundef 0)
  store double %451, ptr %452, align 8, !tbaa !46
  %453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv422) #7
  %454 = load double, ptr %453, align 8, !tbaa !46
  %455 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %77, i32 noundef %.2196320, i32 noundef 1)
  store double %454, ptr %455, align 8, !tbaa !46
  %456 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv425) #7
  %457 = load double, ptr %456, align 8, !tbaa !46
  %458 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %77, i32 noundef %.2196320, i32 noundef 2)
  store double %457, ptr %458, align 8, !tbaa !46
  %459 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %84, i32 noundef %.2196320, i32 noundef 0)
  %460 = trunc nuw i64 %indvars.iv419 to i32
  store i32 %460, ptr %459, align 4, !tbaa !35
  %461 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %84, i32 noundef %.2196320, i32 noundef 1)
  store i32 %441, ptr %461, align 4, !tbaa !35
  %462 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %84, i32 noundef %.2196320, i32 noundef 2)
  store i32 %433, ptr %462, align 4, !tbaa !35
  %463 = add i32 %.2196320, 1
  %indvars.iv.next420 = add nuw nsw i64 %indvars.iv419, 1
  %464 = load i32, ptr %199, align 4, !tbaa !42
  %465 = zext i32 %464 to i64
  %466 = icmp ult i64 %indvars.iv.next420, %465
  br i1 %466, label %449, label %._crit_edge323, !llvm.loop !78

467:                                              ; preds = %._crit_edge333
  %468 = getelementptr inbounds i8, ptr %0, i64 1744
  %469 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %468, ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %46) #7
  %470 = load ptr, ptr %103, align 8, !tbaa !40
  %471 = getelementptr inbounds i8, ptr %470, i64 20
  %472 = load i32, ptr %471, align 4, !tbaa !56
  invoke void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %46, i32 noundef %472)
          to label %473 unwind label %490

473:                                              ; preds = %467
  %474 = getelementptr inbounds i8, ptr %0, i64 4368
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #7
  %475 = load ptr, ptr %103, align 8, !tbaa !40
  %476 = getelementptr inbounds i8, ptr %475, i64 20
  %477 = load i32, ptr %476, align 4, !tbaa !56
  %478 = mul i32 %477, %477
  %479 = mul i32 %478, %477
  store i32 %479, ptr %48, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr nonnull %48, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %480 unwind label %492

480:                                              ; preds = %473
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %474, ptr noundef nonnull %47, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %481 unwind label %494

481:                                              ; preds = %480
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  %482 = load ptr, ptr %103, align 8, !tbaa !40
  %483 = getelementptr inbounds i8, ptr %482, i64 20
  %484 = load i32, ptr %483, align 4, !tbaa !56
  %.not365 = icmp eq i32 %484, 0
  br i1 %.not365, label %._crit_edge347, label %.preheader250

.preheader250:                                    ; preds = %481, %._crit_edge341
  %485 = phi i32 [ %499, %._crit_edge341 ], [ 1, %481 ]
  %486 = phi ptr [ %500, %._crit_edge341 ], [ %482, %481 ]
  %indvars.iv434 = phi i64 [ %indvars.iv.next435, %._crit_edge341 ], [ 0, %481 ]
  %.0168344 = phi i32 [ %.1.lcssa, %._crit_edge341 ], [ 0, %481 ]
  %.not367 = icmp eq i32 %485, 0
  br i1 %.not367, label %._crit_edge341, label %.preheader.preheader

.preheader.preheader:                             ; preds = %.preheader250
  %487 = trunc nuw i64 %indvars.iv434 to i32
  br label %.preheader

._crit_edge347:                                   ; preds = %._crit_edge341, %481
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #7
  ret void

488:                                              ; preds = %._crit_edge333
  %489 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  br label %536

490:                                              ; preds = %467
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %535

492:                                              ; preds = %473
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %496

494:                                              ; preds = %480
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  br label %496

496:                                              ; preds = %494, %492
  %.pn238 = phi { ptr, i32 } [ %495, %494 ], [ %493, %492 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #7
  br label %535

.preheader:                                       ; preds = %.preheader.preheader, %._crit_edge337
  %.pre437 = phi i32 [ 1, %.preheader.preheader ], [ %.pre437439, %._crit_edge337 ]
  %497 = phi ptr [ %486, %.preheader.preheader ], [ %503, %._crit_edge337 ]
  %indvars.iv431 = phi i64 [ 0, %.preheader.preheader ], [ %indvars.iv.next432, %._crit_edge337 ]
  %.1339 = phi i32 [ %.0168344, %.preheader.preheader ], [ %.2.lcssa, %._crit_edge337 ]
  %.not369 = icmp eq i32 %.pre437, 0
  br i1 %.not369, label %._crit_edge337, label %.lr.ph336

.lr.ph336:                                        ; preds = %.preheader
  %498 = trunc nuw i64 %indvars.iv431 to i32
  br label %506

._crit_edge341.loopexit370:                       ; preds = %._crit_edge337
  %.phi.trans.insert = getelementptr inbounds i8, ptr %503, i64 20
  %.pre440 = load i32, ptr %.phi.trans.insert, align 4, !tbaa !56
  br label %._crit_edge341

._crit_edge341:                                   ; preds = %._crit_edge341.loopexit370, %.preheader250
  %499 = phi i32 [ 0, %.preheader250 ], [ %.pre440, %._crit_edge341.loopexit370 ]
  %500 = phi ptr [ %486, %.preheader250 ], [ %503, %._crit_edge341.loopexit370 ]
  %.1.lcssa = phi i32 [ %.0168344, %.preheader250 ], [ %.2.lcssa, %._crit_edge341.loopexit370 ]
  %indvars.iv.next435 = add nuw nsw i64 %indvars.iv434, 1
  %501 = zext i32 %499 to i64
  %502 = icmp ult i64 %indvars.iv.next435, %501
  br i1 %502, label %.preheader250, label %._crit_edge347, !llvm.loop !79

._crit_edge337:                                   ; preds = %506, %.preheader
  %.pre437439 = phi i32 [ 0, %.preheader ], [ %532, %506 ]
  %503 = phi ptr [ %497, %.preheader ], [ %530, %506 ]
  %.2.lcssa = phi i32 [ %.1339, %.preheader ], [ %529, %506 ]
  %indvars.iv.next432 = add nuw nsw i64 %indvars.iv431, 1
  %504 = zext i32 %.pre437439 to i64
  %505 = icmp ult i64 %indvars.iv.next432, %504
  br i1 %505, label %.preheader, label %._crit_edge341.loopexit370, !llvm.loop !80

506:                                              ; preds = %.lr.ph336, %506
  %indvars.iv428 = phi i64 [ 0, %.lr.ph336 ], [ %indvars.iv.next429, %506 ]
  %.2334 = phi i32 [ %.1339, %.lr.ph336 ], [ %529, %506 ]
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %indvars.iv428) #7
  %508 = load double, ptr %507, align 8, !tbaa !46
  %509 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %90, i32 noundef %.2334, i32 noundef 0)
  store double %508, ptr %509, align 8, !tbaa !46
  %510 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %indvars.iv431) #7
  %511 = load double, ptr %510, align 8, !tbaa !46
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %90, i32 noundef %.2334, i32 noundef 1)
  store double %511, ptr %512, align 8, !tbaa !46
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %indvars.iv434) #7
  %514 = load double, ptr %513, align 8, !tbaa !46
  %515 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %90, i32 noundef %.2334, i32 noundef 2)
  store double %514, ptr %515, align 8, !tbaa !46
  %516 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %97, i32 noundef %.2334, i32 noundef 0)
  %517 = trunc nuw i64 %indvars.iv428 to i32
  store i32 %517, ptr %516, align 4, !tbaa !35
  %518 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %97, i32 noundef %.2334, i32 noundef 1)
  store i32 %498, ptr %518, align 4, !tbaa !35
  %519 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %97, i32 noundef %.2334, i32 noundef 2)
  store i32 %487, ptr %519, align 4, !tbaa !35
  %520 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %indvars.iv434) #7
  %521 = load double, ptr %520, align 8, !tbaa !46
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %indvars.iv431) #7
  %523 = load double, ptr %522, align 8, !tbaa !46
  %524 = fmul double %521, %523
  %525 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %indvars.iv428) #7
  %526 = load double, ptr %525, align 8, !tbaa !46
  %527 = fmul double %524, %526
  %528 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %474, i32 noundef %.2334)
  store double %527, ptr %528, align 8, !tbaa !46
  %529 = add i32 %.2334, 1
  %indvars.iv.next429 = add nuw nsw i64 %indvars.iv428, 1
  %530 = load ptr, ptr %103, align 8, !tbaa !40
  %531 = getelementptr inbounds i8, ptr %530, i64 20
  %532 = load i32, ptr %531, align 4, !tbaa !56
  %533 = zext i32 %532 to i64
  %534 = icmp ult i64 %indvars.iv.next429, %533
  br i1 %534, label %506, label %._crit_edge337, !llvm.loop !81

535:                                              ; preds = %496, %490
  %.pn238.pn = phi { ptr, i32 } [ %.pn238, %496 ], [ %491, %490 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #7
  br label %536

536:                                              ; preds = %535, %488
  %.pn238.pn.pn = phi { ptr, i32 } [ %.pn238.pn, %535 ], [ %489, %488 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  br label %537

537:                                              ; preds = %536, %437
  %.pn238.pn.pn.pn = phi { ptr, i32 } [ %.pn238.pn.pn, %536 ], [ %438, %437 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  br label %538

538:                                              ; preds = %537, %259, %253, %251, %249, %216
  %.pn238.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn238.pn.pn.pn, %537 ], [ %.pn236, %259 ], [ %254, %253 ], [ %252, %251 ], [ %250, %249 ], [ %.pn234, %216 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #7
  br label %539

539:                                              ; preds = %538, %197, %152, %147, %142, %137, %132, %127, %122, %117
  %.pn238.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn238.pn.pn.pn.pn, %538 ], [ %.pn231.pn, %197 ], [ %.pn227, %152 ], [ %.pn225, %147 ], [ %.pn223, %142 ], [ %.pn221, %137 ], [ %.pn219, %132 ], [ %.pn217, %127 ], [ %.pn215, %122 ], [ %.pn, %117 ]
  resume { ptr, i32 } %.pn238.pn.pn.pn.pn.pn

540:                                              ; preds = %185
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6

declare void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

declare void @_Z9DFRsp_ptsjd(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef, double noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

declare void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef) local_unnamed_addr #5 align 2

declare void @_Z9Shape_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

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

!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, !11, i64 60}
!6 = !{!"_ZTS8Elements", !7, i64 8, !7, i64 16, !10, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !11, i64 72, !11, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !11, i64 92, !11, i64 96, !12, i64 104, !12, i64 216, !12, i64 328, !12, i64 440, !20, i64 552, !12, i64 576, !12, i64 688, !12, i64 800, !12, i64 912, !12, i64 1024, !24, i64 1136, !24, i64 1248, !24, i64 1360, !24, i64 1472, !24, i64 1584, !15, i64 1696, !15, i64 1720, !15, i64 1744, !15, i64 1768, !12, i64 1792, !12, i64 1904, !12, i64 2016, !12, i64 2128, !12, i64 2240, !12, i64 2352, !12, i64 2464, !12, i64 2576, !12, i64 2688, !12, i64 2800, !12, i64 2912, !12, i64 3024, !12, i64 3136, !12, i64 3248, !12, i64 3360, !12, i64 3472, !12, i64 3584, !12, i64 3696, !12, i64 3808, !12, i64 3920, !12, i64 4032, !12, i64 4144, !12, i64 4256, !12, i64 4368, !12, i64 4480, !12, i64 4592, !12, i64 4704, !12, i64 4816, !12, i64 4928, !12, i64 5040, !12, i64 5152, !12, i64 5264, !12, i64 5376, !12, i64 5488, !12, i64 5600, !12, i64 5712, !12, i64 5824, !12, i64 5936, !11, i64 6048, !15, i64 6056, !15, i64 6080, !15, i64 6104, !15, i64 6128, !15, i64 6152, !15, i64 6176, !15, i64 6200, !25, i64 6224, !12, i64 6248, !12, i64 6360, !12, i64 6472, !12, i64 6584, !12, i64 6696, !12, i64 6808, !12, i64 6920, !12, i64 7032, !12, i64 7144, !13, i64 7256, !13, i64 7264, !13, i64 7272, !13, i64 7280, !13, i64 7288, !12, i64 7296, !12, i64 7408, !12, i64 7520, !12, i64 7632, !12, i64 7744, !12, i64 7856, !12, i64 7968, !12, i64 8080, !12, i64 8192, !12, i64 8304, !12, i64 8416, !12, i64 8528, !12, i64 8640, !12, i64 8752, !12, i64 8864, !12, i64 8976, !12, i64 9088, !12, i64 9200, !12, i64 9312, !12, i64 9424, !12, i64 9536, !12, i64 9648, !12, i64 9760, !12, i64 9872, !12, i64 9984, !12, i64 10096, !12, i64 10208, !12, i64 10320, !12, i64 10432, !12, i64 10544, !12, i64 10656, !12, i64 10768, !12, i64 10880, !12, i64 10992, !12, i64 11104, !12, i64 11216, !12, i64 11328, !12, i64 11440, !12, i64 11552, !12, i64 11664, !12, i64 11776, !12, i64 11888, !12, i64 12000, !29, i64 12112, !29, i64 12344, !12, i64 12576, !12, i64 12688, !12, i64 12800, !12, i64 12912, !12, i64 13024, !12, i64 13136, !11, i64 13248, !12, i64 13256, !12, i64 13368, !11, i64 13480, !7, i64 13488, !25, i64 13496, !24, i64 13520, !12, i64 13632, !12, i64 13744, !12, i64 13856}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS8ELE_TYPE", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"_ZTS8mdvectorIdE", !11, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 48, !15, i64 72, !7, i64 96, !19, i64 104}
!13 = !{!"long", !8, i64 0}
!14 = !{!"_ZTSSt5arrayIjLm6EE", !8, i64 0}
!15 = !{!"_ZTSSt6vectorIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!19 = !{!"bool", !8, i64 0}
!20 = !{!"_ZTSSt6vectorIjSaIjEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!24 = !{!"_ZTS8mdvectorIjE", !11, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 48, !20, i64 72, !7, i64 96, !19, i64 104}
!25 = !{!"_ZTSSt6vectorIiSaIiEE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!29 = !{!"_ZTS6mdviewIdE", !30, i64 0, !24, i64 112, !11, i64 224}
!30 = !{!"_ZTS8mdvectorIPdE", !11, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 48, !31, i64 72, !7, i64 96, !19, i64 104}
!31 = !{!"_ZTSSt6vectorIPdSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIPdSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!35 = !{!11, !11, i64 0}
!36 = !{!6, !11, i64 52}
!37 = !{!6, !11, i64 64}
!38 = !{!6, !11, i64 72}
!39 = !{!6, !11, i64 76}
!40 = !{!6, !7, i64 8}
!41 = !{!6, !11, i64 32}
!42 = !{!6, !11, i64 68}
!43 = distinct !{!43, !44, !45}
!44 = !{!"llvm.loop.mustprogress"}
!45 = !{!"llvm.loop.unswitch.partial.disable"}
!46 = !{!47, !47, i64 0}
!47 = !{!"double", !8, i64 0}
!48 = distinct !{!48, !44}
!49 = !{!6, !11, i64 84}
!50 = distinct !{!50, !44, !45}
!51 = distinct !{!51, !44, !45}
!52 = distinct !{!52, !44}
!53 = distinct !{!53, !44}
!54 = distinct !{!54, !44, !45}
!55 = distinct !{!55, !44, !45}
!56 = !{!57, !11, i64 20}
!57 = !{!"_ZTS11InputStruct", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !58, i64 72, !58, i64 104, !58, i64 136, !58, i64 168, !58, i64 200, !58, i64 232, !19, i64 264, !19, i64 265, !19, i64 266, !19, i64 267, !19, i64 268, !19, i64 269, !19, i64 270, !19, i64 271, !20, i64 272, !20, i64 296, !11, i64 320, !11, i64 324, !47, i64 328, !47, i64 336, !47, i64 344, !47, i64 352, !47, i64 360, !47, i64 368, !47, i64 376, !47, i64 384, !12, i64 392, !12, i64 504, !12, i64 616, !12, i64 728, !12, i64 840, !47, i64 952, !47, i64 960, !47, i64 968, !47, i64 976, !47, i64 984, !47, i64 992, !47, i64 1000, !47, i64 1008, !47, i64 1016, !47, i64 1024, !47, i64 1032, !47, i64 1040, !47, i64 1048, !47, i64 1056, !47, i64 1064, !47, i64 1072, !47, i64 1080, !47, i64 1088, !47, i64 1096, !47, i64 1104, !47, i64 1112, !47, i64 1120, !47, i64 1128, !47, i64 1136, !47, i64 1144, !47, i64 1152, !47, i64 1160, !47, i64 1168, !47, i64 1176, !47, i64 1184, !47, i64 1192, !47, i64 1200, !47, i64 1208, !47, i64 1216, !11, i64 1224, !11, i64 1228, !11, i64 1232, !11, i64 1236, !11, i64 1240, !11, i64 1244, !11, i64 1248, !11, i64 1252, !11, i64 1256, !11, i64 1260, !47, i64 1264, !47, i64 1272, !47, i64 1280, !47, i64 1288, !47, i64 1296, !47, i64 1304, !47, i64 1312, !11, i64 1320, !11, i64 1324, !47, i64 1328, !47, i64 1336, !11, i64 1344, !47, i64 1352, !47, i64 1360, !47, i64 1368, !47, i64 1376, !47, i64 1384, !47, i64 1392, !47, i64 1400, !47, i64 1408, !60, i64 1416, !60, i64 1418, !60, i64 1420, !60, i64 1422, !11, i64 1424, !11, i64 1428, !11, i64 1432, !58, i64 1440, !19, i64 1472, !19, i64 1473, !19, i64 1474, !19, i64 1475, !11, i64 1476, !11, i64 1480, !19, i64 1484, !19, i64 1485, !19, i64 1486, !19, i64 1487, !11, i64 1488, !11, i64 1492, !11, i64 1496, !11, i64 1500, !61, i64 1504, !25, i64 1528, !47, i64 1552, !47, i64 1560, !47, i64 1568, !47, i64 1576, !47, i64 1584, !47, i64 1592, !8, i64 1600, !47, i64 1624, !8, i64 1632, !8, i64 1656, !8, i64 1680, !8, i64 1704, !47, i64 1728, !8, i64 1736, !8, i64 1760, !47, i64 1784, !8, i64 1792, !65, i64 1864, !19, i64 1912, !19, i64 1913, !19, i64 1914, !19, i64 1915, !19, i64 1916, !19, i64 1917, !19, i64 1918, !19, i64 1919, !47, i64 1920, !47, i64 1928, !47, i64 1936, !47, i64 1944, !11, i64 1952, !11, i64 1956, !11, i64 1960, !11, i64 1964, !11, i64 1968, !11, i64 1972, !11, i64 1976, !11, i64 1980, !11, i64 1984, !19, i64 1988, !47, i64 1992, !47, i64 2000, !73, i64 2008}
!58 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !59, i64 0, !13, i64 8, !8, i64 16}
!59 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!60 = !{!"short", !8, i64 0}
!61 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!65 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !66, i64 0}
!66 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !67, i64 0}
!67 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !68, i64 0, !70, i64 8}
!68 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !69, i64 0}
!69 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!70 = !{!"_ZTSSt15_Rb_tree_header", !71, i64 0, !13, i64 32}
!71 = !{!"_ZTSSt18_Rb_tree_node_base", !72, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!72 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!73 = !{!"_ZTS5Timer", !74, i64 0, !74, i64 8, !47, i64 16, !58, i64 24}
!74 = !{!"_ZTSNSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEEE", !75, i64 0}
!75 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !13, i64 0}
!76 = distinct !{!76, !44, !45}
!77 = distinct !{!77, !44, !45}
!78 = distinct !{!78, !44}
!79 = distinct !{!79, !44, !45}
!80 = distinct !{!80, !44, !45}
!81 = distinct !{!81, !44}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,SCCPPass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass