; LLVM IR from romerojosh/zefr :: src/faces.ll (ZN5FacesC2EP9GeoStructP11InputStructi)

; 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.Faces = type <{ ptr, ptr, i32, i32, i32, [4 x i8], %class.mdvector, %class.mdview, %class.mdview, %class.mdview, %class.mdview, %class.mdview, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector.14, %class.mdvector.14, %class.mdvector, %class.mdview, %class.mdview, %class.mdview, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, i32, [4 x i8] }>
%class.mdvector.14 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.15", ptr, i8, [7 x i8] }>
%"struct.std::array" = type { [6 x i32] }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.mdview = type { %class.mdvector.0, %class.mdvector.7, i32, [4 x i8] }
%class.mdvector.0 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.1", ptr, i8, [7 x i8] }>
%"class.std::vector.1" = type { %"struct.std::_Vector_base.2" }
%"struct.std::_Vector_base.2" = 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.mdvector.7 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.8", ptr, i8, [7 x i8] }>
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.mdvector = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector", ptr, i8, [7 x 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 }
%struct.GeoStruct = type { %"class.std::set", %class.mdvector.24, %"class.std::set", %class.mdvector.24, %"class.std::map", %class.mdvector.24, %"class.std::map.35", %class.mdvector.7, %class.mdvector.24, %class.mdvector.40, %"class.std::map.35", %class.mdvector.7, %class.mdvector.7, %class.mdvector.40, %class.mdvector.40, %"class.std::map.47", %"class.std::map.47", %"class.std::map.47", %"class.std::map.47", %"class.std::map.47", %"class.std::map.47", %"class.std::map.47", %"class.std::map.52", %"class.std::map.57", %"class.std::map.62", %"class.std::map.67", %"class.std::map.57", %"class.std::map.72", i32, i32, i32, i32, i32, i32, %"class.std::map.47", %"class.std::map.47", i32, i32, i32, i32, i8, %"class.std::map.47", %"class.std::map.57", %class.mdvector.24, %class.mdvector.24, %"class.std::map.57", %"class.std::map.57", %"class.std::vector.77", %"class.std::vector.77", %"class.std::vector.77", %"class.std::vector.25", %"class.std::vector.25", %"class.std::vector.25", %"class.std::vector.25", %"class.std::vector.8", %class.mdvector.14, %"class.std::map.82", %"class.std::map.88", %"class.std::map.93", %"class.std::map.52", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector.24, %class.mdvector.24, %class.mdvector.24, i32, %"class.std::map.57", %"class.std::map.98", %"class.std::map.98", i32, %"class.std::map.103", %"class.std::vector.109", %"class.std::vector.109", %"class.std::vector.8", %"class.std::map.114", %"class.std::vector.119", %"class.std::vector.124", %class.mdvector.24, %class.mdvector.129, %"class.std::vector.136", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::map.141", %"class.std::map.141", i32, [4 x i8], %class.mdvector.14, %class.mdvector, double, %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, %"struct.std::array.146", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, ptr, i32, i32, i32, %"class.std::vector.119", %"class.std::vector.119", %"class.std::map.114", %"class.std::vector.25", %"class.std::map.57", %"class.std::vector.25", %class.mdvector.24, %class.mdvector.24, %"class.std::vector.25", %"class.std::vector.25", %"class.std::set.147", %"class.std::vector.25", %"class.std::vector.25", i32, i32, %"class.std::vector.25", %"class.std::vector.25", %class.mdvector.24, %"class.std::map.57", i32, i32, i32, i32, i32, i32 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<ELE_TYPE, ELE_TYPE, std::_Identity<ELE_TYPE>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, ELE_TYPE, std::_Identity<ELE_TYPE>, std::less<ELE_TYPE>>::_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.std::map" = type { %"class.std::_Rb_tree.31" }
%"class.std::_Rb_tree.31" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, int>, std::_Select1st<std::pair<const ELE_TYPE, int>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, int>, std::_Select1st<std::pair<const ELE_TYPE, int>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.35" = type { %"class.std::_Rb_tree.36" }
%"class.std::_Rb_tree.36" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<unsigned int>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<unsigned int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<unsigned int>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<unsigned int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.mdvector.40 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.41", ptr, i8, [7 x i8] }>
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<ELE_TYPE, std::allocator<ELE_TYPE>>::_Vector_impl" }
%"struct.std::_Vector_base<ELE_TYPE, std::allocator<ELE_TYPE>>::_Vector_impl" = type { %"struct.std::_Vector_base<ELE_TYPE, std::allocator<ELE_TYPE>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ELE_TYPE, std::allocator<ELE_TYPE>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.62" = type { %"class.std::_Rb_tree.63" }
%"class.std::_Rb_tree.63" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<ELE_TYPE>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<ELE_TYPE>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<ELE_TYPE>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<ELE_TYPE>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.67" = type { %"class.std::_Rb_tree.68" }
%"class.std::_Rb_tree.68" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<std::vector<unsigned int>>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<std::vector<unsigned int>>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<std::vector<unsigned int>>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<std::vector<unsigned int>>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.72" = type { %"class.std::_Rb_tree.73" }
%"class.std::_Rb_tree.73" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<char>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<char>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<char>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<char>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.47" = type { %"class.std::_Rb_tree.48" }
%"class.std::_Rb_tree.48" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, unsigned int>, std::_Select1st<std::pair<const ELE_TYPE, unsigned int>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, unsigned int>, std::_Select1st<std::pair<const ELE_TYPE, unsigned int>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = 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.std::map.82" = type { %"class.std::_Rb_tree.83" }
%"class.std::_Rb_tree.83" = type { %"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, int>, std::_Select1st<std::pair<const std::vector<unsigned int>, int>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, int>, std::_Select1st<std::pair<const std::vector<unsigned int>, int>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.88" = type { %"class.std::_Rb_tree.89" }
%"class.std::_Rb_tree.89" = type { %"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, ELE_TYPE>, std::_Select1st<std::pair<const std::vector<unsigned int>, ELE_TYPE>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, ELE_TYPE>, std::_Select1st<std::pair<const std::vector<unsigned int>, ELE_TYPE>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.93" = type { %"class.std::_Rb_tree.94" }
%"class.std::_Rb_tree.94" = type { %"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, std::vector<unsigned int>>, std::_Select1st<std::pair<const std::vector<unsigned int>, std::vector<unsigned int>>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, std::vector<unsigned int>>, std::_Select1st<std::pair<const std::vector<unsigned int>, std::vector<unsigned int>>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.52" = type { %"class.std::_Rb_tree.53" }
%"class.std::_Rb_tree.53" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<double>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<double>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<double>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<double>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.98" = type { %"class.std::_Rb_tree.99" }
%"class.std::_Rb_tree.99" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<unsigned int>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<unsigned int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<unsigned int>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<unsigned int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.103" = type { %"class.std::_Rb_tree.104" }
%"class.std::_Rb_tree.104" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, int>, std::_Select1st<std::pair<const unsigned int, int>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, int>, std::_Select1st<std::pair<const unsigned int, int>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.109" = type { %"struct.std::_Vector_base.110" }
%"struct.std::_Vector_base.110" = 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::vector.124" = type { %"struct.std::_Vector_base.125" }
%"struct.std::_Vector_base.125" = type { %"struct.std::_Vector_base<std::vector<ELE_TYPE>, std::allocator<std::vector<ELE_TYPE>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<ELE_TYPE>, std::allocator<std::vector<ELE_TYPE>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<ELE_TYPE>, std::allocator<std::vector<ELE_TYPE>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<ELE_TYPE>, std::allocator<std::vector<ELE_TYPE>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.mdvector.129 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.130", ptr, i8, [7 x i8] }>
%"class.std::vector.130" = type { %"struct.std::_Vector_base.131" }
%"struct.std::_Vector_base.131" = type { %"struct.std::_Vector_base<face_con, std::allocator<face_con>>::_Vector_impl" }
%"struct.std::_Vector_base<face_con, std::allocator<face_con>>::_Vector_impl" = type { %"struct.std::_Vector_base<face_con, std::allocator<face_con>>::_Vector_impl_data" }
%"struct.std::_Vector_base<face_con, std::allocator<face_con>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.136" = type { %"struct.std::_Vector_base.137" }
%"struct.std::_Vector_base.137" = type { %"struct.std::_Vector_base<std::vector<face_con>, std::allocator<std::vector<face_con>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<face_con>, std::allocator<std::vector<face_con>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<face_con>, std::allocator<std::vector<face_con>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<face_con>, std::allocator<std::vector<face_con>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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::map.141" = type { %"class.std::_Rb_tree.142" }
%"class.std::_Rb_tree.142" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<int>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, std::vector<int>>, std::_Select1st<std::pair<const ELE_TYPE, std::vector<int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::array.146" = type { [3 x double] }
%"class.std::vector.119" = type { %"struct.std::_Vector_base.120" }
%"struct.std::_Vector_base.120" = type { %"struct.std::_Vector_base<std::vector<unsigned int>, std::allocator<std::vector<unsigned int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<unsigned int>, std::allocator<std::vector<unsigned int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<unsigned int>, std::allocator<std::vector<unsigned int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<unsigned int>, std::allocator<std::vector<unsigned int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.114" = type { %"class.std::_Rb_tree.115" }
%"class.std::_Rb_tree.115" = type { %"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, unsigned int>, std::_Select1st<std::pair<const std::vector<unsigned int>, unsigned int>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<unsigned int>, std::pair<const std::vector<unsigned int>, unsigned int>, std::_Select1st<std::pair<const std::vector<unsigned int>, unsigned int>>, std::less<std::vector<unsigned int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set.147" = type { %"class.std::_Rb_tree.148" }
%"class.std::_Rb_tree.148" = type { %"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = 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.24 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.25", ptr, i8, [7 x i8] }>
%"class.std::map.57" = type { %"class.std::_Rb_tree.58" }
%"class.std::_Rb_tree.58" = type { %"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<int>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ELE_TYPE, std::pair<const ELE_TYPE, mdvector<int>>, std::_Select1st<std::pair<const ELE_TYPE, mdvector<int>>>, std::less<ELE_TYPE>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5FacesC2EP9GeoStructP11InputStructi(ptr noundef nonnull align 8 dereferenceable(4132) %0, ptr noundef %1, ptr noundef %2, i32 noundef %3) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store i32 %3, ptr %8, align 4, !tbaa !9
  %11 = load ptr, ptr %5, align 8
  %12 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 0
  store ptr null, ptr %12, align 8, !tbaa !11
  %13 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 1
  store ptr null, ptr %13, align 8, !tbaa !37
  %14 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 6
  call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %14)
  %15 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 7
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %15)
          to label %16 unwind label %79

16:                                               ; preds = %4
  %17 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 8
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %17)
          to label %18 unwind label %83

18:                                               ; preds = %16
  %19 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 9
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %19)
          to label %20 unwind label %87

20:                                               ; preds = %18
  %21 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 10
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %21)
          to label %22 unwind label %91

22:                                               ; preds = %20
  %23 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 11
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %23)
          to label %24 unwind label %95

24:                                               ; preds = %22
  %25 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 12
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %25)
          to label %26 unwind label %99

26:                                               ; preds = %24
  %27 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 13
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %27)
          to label %28 unwind label %103

28:                                               ; preds = %26
  %29 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 14
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %29)
          to label %30 unwind label %107

30:                                               ; preds = %28
  %31 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 15
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %31)
          to label %32 unwind label %111

32:                                               ; preds = %30
  %33 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 16
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %33)
          to label %34 unwind label %115

34:                                               ; preds = %32
  %35 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 17
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %35)
          to label %36 unwind label %119

36:                                               ; preds = %34
  %37 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 18
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %37)
          to label %38 unwind label %123

38:                                               ; preds = %36
  %39 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 19
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %39)
          to label %40 unwind label %127

40:                                               ; preds = %38
  %41 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 20
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %41)
          to label %42 unwind label %131

42:                                               ; preds = %40
  %43 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 21
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %43)
          to label %44 unwind label %135

44:                                               ; preds = %42
  %45 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 22
  invoke void @_ZN8mdvectorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %45)
          to label %46 unwind label %139

46:                                               ; preds = %44
  %47 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 23
  invoke void @_ZN8mdvectorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %47)
          to label %48 unwind label %143

48:                                               ; preds = %46
  %49 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 24
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %49)
          to label %50 unwind label %147

50:                                               ; preds = %48
  %51 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 25
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %51)
          to label %52 unwind label %151

52:                                               ; preds = %50
  %53 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 26
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %53)
          to label %54 unwind label %155

54:                                               ; preds = %52
  %55 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 27
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %55)
          to label %56 unwind label %159

56:                                               ; preds = %54
  %57 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 28
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %57)
          to label %58 unwind label %163

58:                                               ; preds = %56
  %59 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 29
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %59)
          to label %60 unwind label %167

60:                                               ; preds = %58
  %61 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 30
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %61)
          to label %62 unwind label %171

62:                                               ; preds = %60
  %63 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 31
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %63)
          to label %64 unwind label %175

64:                                               ; preds = %62
  %65 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 32
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %65)
          to label %66 unwind label %179

66:                                               ; preds = %64
  %67 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 33
  invoke void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %67)
          to label %68 unwind label %183

68:                                               ; preds = %66
  %69 = load ptr, ptr %7, align 8, !tbaa !5
  %70 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 0
  store ptr %69, ptr %70, align 8, !tbaa !11
  %71 = load ptr, ptr %6, align 8, !tbaa !5
  %72 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 1
  store ptr %71, ptr %72, align 8, !tbaa !37
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.GeoStruct, ptr %73, i32 0, i32 36
  %75 = load i32, ptr %74, align 8, !tbaa !38
  %76 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 2
  store i32 %75, ptr %76, align 8, !tbaa !141
  %77 = load i32, ptr %8, align 4, !tbaa !9
  %78 = getelementptr inbounds %class.Faces, ptr %11, i32 0, i32 34
  store i32 %77, ptr %78, align 8, !tbaa !142
  ret void

79:                                               ; preds = %4
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %9, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %10, align 4
  br label %212

83:                                               ; preds = %16
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %9, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %10, align 4
  br label %211

87:                                               ; preds = %18
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %9, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %10, align 4
  br label %210

91:                                               ; preds = %20
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %9, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %10, align 4
  br label %209

95:                                               ; preds = %22
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %9, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %10, align 4
  br label %208

99:                                               ; preds = %24
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %9, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %10, align 4
  br label %207

103:                                              ; preds = %26
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %9, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %10, align 4
  br label %206

107:                                              ; preds = %28
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %9, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %10, align 4
  br label %205

111:                                              ; preds = %30
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %9, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %10, align 4
  br label %204

115:                                              ; preds = %32
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %9, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %10, align 4
  br label %203

119:                                              ; preds = %34
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %9, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %10, align 4
  br label %202

123:                                              ; preds = %36
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %9, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %10, align 4
  br label %201

127:                                              ; preds = %38
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %9, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %10, align 4
  br label %200

131:                                              ; preds = %40
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %9, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %10, align 4
  br label %199

135:                                              ; preds = %42
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %9, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %10, align 4
  br label %198

139:                                              ; preds = %44
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %9, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %10, align 4
  br label %197

143:                                              ; preds = %46
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %9, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %10, align 4
  br label %196

147:                                              ; preds = %48
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %9, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %10, align 4
  br label %195

151:                                              ; preds = %50
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %9, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %10, align 4
  br label %194

155:                                              ; preds = %52
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %9, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %10, align 4
  br label %193

159:                                              ; preds = %54
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %9, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %10, align 4
  br label %192

163:                                              ; preds = %56
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %9, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %10, align 4
  br label %191

167:                                              ; preds = %58
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %9, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %10, align 4
  br label %190

171:                                              ; preds = %60
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %9, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %10, align 4
  br label %189

175:                                              ; preds = %62
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %9, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %10, align 4
  br label %188

179:                                              ; preds = %64
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %9, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %10, align 4
  br label %187

183:                                              ; preds = %66
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %9, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %10, align 4
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %65) #3
  br label %187

187:                                              ; preds = %183, %179
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %63) #3
  br label %188

188:                                              ; preds = %187, %175
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %61) #3
  br label %189

189:                                              ; preds = %188, %171
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %59) #3
  br label %190

190:                                              ; preds = %189, %167
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %57) #3
  br label %191

191:                                              ; preds = %190, %163
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %55) #3
  br label %192

192:                                              ; preds = %191, %159
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %53) #3
  br label %193

193:                                              ; preds = %192, %155
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %51) #3
  br label %194

194:                                              ; preds = %193, %151
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %49) #3
  br label %195

195:                                              ; preds = %194, %147
  call void @_ZN8mdvectorIcED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %47) #3
  br label %196

196:                                              ; preds = %195, %143
  call void @_ZN8mdvectorIcED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %45) #3
  br label %197

197:                                              ; preds = %196, %139
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %43) #3
  br label %198

198:                                              ; preds = %197, %135
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %41) #3
  br label %199

199:                                              ; preds = %198, %131
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %39) #3
  br label %200

200:                                              ; preds = %199, %127
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %37) #3
  br label %201

201:                                              ; preds = %200, %123
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %35) #3
  br label %202

202:                                              ; preds = %201, %119
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %33) #3
  br label %203

203:                                              ; preds = %202, %115
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %31) #3
  br label %204

204:                                              ; preds = %203, %111
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %29) #3
  br label %205

205:                                              ; preds = %204, %107
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %27) #3
  br label %206

206:                                              ; preds = %205, %103
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %25) #3
  br label %207

207:                                              ; preds = %206, %99
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %23) #3
  br label %208

208:                                              ; preds = %207, %95
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %21) #3
  br label %209

209:                                              ; preds = %208, %91
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %19) #3
  br label %210

210:                                              ; preds = %209, %87
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %17) #3
  br label %211

211:                                              ; preds = %210, %83
  call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %15) #3
  br label %212

212:                                              ; preds = %211, %79
  call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %14) #3
  br label %213

213:                                              ; preds = %212
  %214 = load ptr, ptr %9, align 8
  %215 = load i32, ptr %10, align 4
  %216 = insertvalue { ptr, i32 } poison, ptr %214, 0
  %217 = insertvalue { ptr, i32 } %216, i32 %215, 1
  resume { ptr, i32 } %217
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228)) unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228)) unnamed_addr #2 align 2

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTS5Faces", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !13, i64 32, !21, i64 144, !21, i64 376, !21, i64 608, !21, i64 840, !21, i64 1072, !13, i64 1304, !13, i64 1416, !13, i64 1528, !13, i64 1640, !13, i64 1752, !13, i64 1864, !13, i64 1976, !13, i64 2088, !13, i64 2200, !13, i64 2312, !32, i64 2424, !32, i64 2536, !13, i64 2648, !21, i64 2760, !21, i64 2992, !21, i64 3224, !13, i64 3456, !13, i64 3568, !13, i64 3680, !13, i64 3792, !13, i64 3904, !13, i64 4016, !10, i64 4128}
!13 = !{!"_ZTS8mdvectorIdE", !10, 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 = !{!"_ZTS6mdviewIdE", !22, i64 0, !27, i64 112, !10, i64 224}
!22 = !{!"_ZTS8mdvectorIPdE", !10, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !23, i64 72, !6, i64 96, !20, i64 104}
!23 = !{!"_ZTSSt6vectorIPdSaIS0_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIPdSaIS0_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTS8mdvectorIjE", !10, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !28, i64 72, !6, i64 96, !20, i64 104}
!28 = !{!"_ZTSSt6vectorIjSaIjEE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTS8mdvectorIcE", !10, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !33, i64 72, !6, i64 96, !20, i64 104}
!33 = !{!"_ZTSSt6vectorIcSaIcEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!12, !6, i64 8}
!38 = !{!39, !10, i64 2104}
!39 = !{!"_ZTS9GeoStruct", !40, i64 0, !48, i64 48, !40, i64 160, !48, i64 208, !53, i64 320, !48, i64 368, !56, i64 480, !27, i64 528, !48, i64 640, !59, i64 752, !56, i64 864, !27, i64 912, !27, i64 1024, !59, i64 1136, !59, i64 1248, !64, i64 1360, !64, i64 1408, !64, i64 1456, !64, i64 1504, !64, i64 1552, !64, i64 1600, !64, i64 1648, !67, i64 1696, !70, i64 1744, !73, i64 1792, !76, i64 1840, !70, i64 1888, !79, i64 1936, !10, i64 1984, !10, i64 1988, !10, i64 1992, !10, i64 1996, !10, i64 2000, !10, i64 2004, !64, i64 2008, !64, i64 2056, !10, i64 2104, !10, i64 2108, !10, i64 2112, !10, i64 2116, !20, i64 2120, !64, i64 2128, !70, i64 2176, !48, i64 2224, !48, i64 2336, !70, i64 2448, !70, i64 2496, !82, i64 2544, !82, i64 2568, !82, i64 2592, !49, i64 2616, !49, i64 2640, !49, i64 2664, !49, i64 2688, !28, i64 2712, !32, i64 2736, !86, i64 2848, !91, i64 2896, !94, i64 2944, !67, i64 2992, !13, i64 3040, !13, i64 3152, !13, i64 3264, !48, i64 3376, !48, i64 3488, !48, i64 3600, !10, i64 3712, !70, i64 3720, !97, i64 3768, !97, i64 3816, !10, i64 3864, !100, i64 3872, !105, i64 3920, !105, i64 3944, !28, i64 3968, !109, i64 3992, !112, i64 4040, !116, i64 4064, !48, i64 4088, !120, i64 4200, !125, i64 4312, !129, i64 4336, !129, i64 4368, !129, i64 4400, !131, i64 4432, !131, i64 4480, !10, i64 4528, !32, i64 4536, !13, i64 4648, !134, i64 4760, !13, i64 4768, !13, i64 4880, !13, i64 4992, !13, i64 5104, !13, i64 5216, !13, i64 5328, !13, i64 5440, !13, i64 5552, !13, i64 5664, !13, i64 5776, !13, i64 5888, !13, i64 6000, !13, i64 6112, !13, i64 6224, !135, i64 6336, !13, i64 6360, !13, i64 6472, !13, i64 6584, !13, i64 6696, !6, i64 6808, !10, i64 6816, !10, i64 6820, !10, i64 6824, !112, i64 6832, !112, i64 6856, !109, i64 6880, !49, i64 6928, !70, i64 6952, !49, i64 7000, !48, i64 7024, !48, i64 7136, !49, i64 7248, !49, i64 7272, !136, i64 7296, !49, i64 7344, !49, i64 7368, !10, i64 7392, !10, i64 7396, !49, i64 7400, !49, i64 7424, !48, i64 7448, !70, i64 7560, !10, i64 7608, !10, i64 7612, !10, i64 7616, !10, i64 7620, !10, i64 7624, !10, i64 7628}
!40 = !{!"_ZTSSt3setI8ELE_TYPESt4lessIS0_ESaIS0_EE", !41, i64 0}
!41 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPES0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE", !42, i64 0}
!42 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPES0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEE", !43, i64 0, !45, i64 8}
!43 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8ELE_TYPEEE", !44, i64 0}
!44 = !{!"_ZTSSt4lessI8ELE_TYPEE"}
!45 = !{!"_ZTSSt15_Rb_tree_header", !46, i64 0, !14, i64 32}
!46 = !{!"_ZTSSt18_Rb_tree_node_base", !47, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!47 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!48 = !{!"_ZTS8mdvectorIiE", !10, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !49, i64 72, !6, i64 96, !20, i64 104}
!49 = !{!"_ZTSSt6vectorIiSaIiEE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSSt3mapI8ELE_TYPEiSt4lessIS0_ESaISt4pairIKS0_iEEE", !54, i64 0}
!54 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_iESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE", !55, i64 0}
!55 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_iESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !43, i64 0, !45, i64 8}
!56 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIjESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !57, i64 0}
!57 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIjEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !58, i64 0}
!58 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIjEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !43, i64 0, !45, i64 8}
!59 = !{!"_ZTS8mdvectorI8ELE_TYPEE", !10, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !60, i64 72, !6, i64 96, !20, i64 104}
!60 = !{!"_ZTSSt6vectorI8ELE_TYPESaIS0_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseI8ELE_TYPESaIS0_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseI8ELE_TYPESaIS0_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI8ELE_TYPESaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!64 = !{!"_ZTSSt3mapI8ELE_TYPEjSt4lessIS0_ESaISt4pairIKS0_jEEE", !65, i64 0}
!65 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_jESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE", !66, i64 0}
!66 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_jESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !43, i64 0, !45, i64 8}
!67 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIdESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !68, i64 0}
!68 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIdEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !69, i64 0}
!69 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIdEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !43, i64 0, !45, i64 8}
!70 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIiESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !71, i64 0}
!71 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIiEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !72, i64 0}
!72 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIiEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !43, i64 0, !45, i64 8}
!73 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIS0_SaIS0_EESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !74, i64 0}
!74 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS0_SaIS0_EEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !75, i64 0}
!75 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS0_SaIS0_EEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !43, i64 0, !45, i64 8}
!76 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIS1_IjSaIjEESaIS3_EESt4lessIS0_ESaISt4pairIKS0_S5_EEE", !77, i64 0}
!77 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS3_IjSaIjEESaIS5_EEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE", !78, i64 0}
!78 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS3_IjSaIjEESaIS5_EEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !43, i64 0, !45, i64 8}
!79 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIcESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !80, i64 0}
!80 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIcEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !81, i64 0}
!81 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIcEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !43, i64 0, !45, i64 8}
!82 = !{!"_ZTSSt6vectorIPiSaIS0_EE", !83, i64 0}
!83 = !{!"_ZTSSt12_Vector_baseIPiSaIS0_EE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE12_Vector_implE", !85, i64 0}
!85 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!86 = !{!"_ZTSSt3mapISt6vectorIjSaIjEEiSt4lessIS2_ESaISt4pairIKS2_iEEE", !87, i64 0}
!87 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !88, i64 0}
!88 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !89, i64 0, !45, i64 8}
!89 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt6vectorIjSaIjEEEE", !90, i64 0}
!90 = !{!"_ZTSSt4lessISt6vectorIjSaIjEEE"}
!91 = !{!"_ZTSSt3mapISt6vectorIjSaIjEE8ELE_TYPESt4lessIS2_ESaISt4pairIKS2_S3_EEE", !92, i64 0}
!92 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_8ELE_TYPEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE", !93, i64 0}
!93 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_8ELE_TYPEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !89, i64 0, !45, i64 8}
!94 = !{!"_ZTSSt3mapISt6vectorIjSaIjEES2_St4lessIS2_ESaISt4pairIKS2_S2_EEE", !95, i64 0}
!95 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !96, i64 0}
!96 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !89, i64 0, !45, i64 8}
!97 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIjSaIjEESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !98, i64 0}
!98 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIjSaIjEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !99, i64 0}
!99 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIjSaIjEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !43, i64 0, !45, i64 8}
!100 = !{!"_ZTSSt3mapIjiSt4lessIjESaISt4pairIKjiEEE", !101, i64 0}
!101 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !102, i64 0}
!102 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !103, i64 0, !45, i64 8}
!103 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !104, i64 0}
!104 = !{!"_ZTSSt4lessIjE"}
!105 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !106, i64 0}
!106 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !107, i64 0}
!107 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !108, i64 0}
!108 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!109 = !{!"_ZTSSt3mapISt6vectorIjSaIjEEjSt4lessIS2_ESaISt4pairIKS2_jEEE", !110, i64 0}
!110 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_jESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !111, i64 0}
!111 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_jESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !89, i64 0, !45, i64 8}
!112 = !{!"_ZTSSt6vectorIS_IjSaIjEESaIS1_EE", !113, i64 0}
!113 = !{!"_ZTSSt12_Vector_baseISt6vectorIjSaIjEESaIS2_EE", !114, i64 0}
!114 = !{!"_ZTSNSt12_Vector_baseISt6vectorIjSaIjEESaIS2_EE12_Vector_implE", !115, i64 0}
!115 = !{!"_ZTSNSt12_Vector_baseISt6vectorIjSaIjEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!116 = !{!"_ZTSSt6vectorIS_I8ELE_TYPESaIS0_EESaIS2_EE", !117, i64 0}
!117 = !{!"_ZTSSt12_Vector_baseISt6vectorI8ELE_TYPESaIS1_EESaIS3_EE", !118, i64 0}
!118 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8ELE_TYPESaIS1_EESaIS3_EE12_Vector_implE", !119, i64 0}
!119 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8ELE_TYPESaIS1_EESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!120 = !{!"_ZTS8mdvectorI8face_conE", !10, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !121, i64 72, !6, i64 96, !20, i64 104}
!121 = !{!"_ZTSSt6vectorI8face_conSaIS0_EE", !122, i64 0}
!122 = !{!"_ZTSSt12_Vector_baseI8face_conSaIS0_EE", !123, i64 0}
!123 = !{!"_ZTSNSt12_Vector_baseI8face_conSaIS0_EE12_Vector_implE", !124, i64 0}
!124 = !{!"_ZTSNSt12_Vector_baseI8face_conSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!125 = !{!"_ZTSSt6vectorIS_I8face_conSaIS0_EESaIS2_EE", !126, i64 0}
!126 = !{!"_ZTSSt12_Vector_baseISt6vectorI8face_conSaIS1_EESaIS3_EE", !127, i64 0}
!127 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8face_conSaIS1_EESaIS3_EE12_Vector_implE", !128, i64 0}
!128 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8face_conSaIS1_EESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!129 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !130, i64 0, !14, i64 8, !7, i64 16}
!130 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!131 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIiSaIiEESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !132, i64 0}
!132 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIiSaIiEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !133, i64 0}
!133 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIiSaIiEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !43, i64 0, !45, i64 8}
!134 = !{!"double", !7, i64 0}
!135 = !{!"_ZTSSt5arrayIdLm3EE", !7, i64 0}
!136 = !{!"_ZTSSt3setIiSt4lessIiESaIiEE", !137, i64 0}
!137 = !{!"_ZTSSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE", !138, i64 0}
!138 = !{!"_ZTSNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE13_Rb_tree_implIS3_Lb1EEE", !139, i64 0, !45, i64 8}
!139 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !140, i64 0}
!140 = !{!"_ZTSSt4lessIiE"}
!141 = !{!12, !10, i64 16}
!142 = !{!12, !10, i64 4128}


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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5FacesC2EP9GeoStructP11InputStructi(ptr noundef nonnull align 8 dereferenceable(4132) %0, ptr noundef %1, ptr noundef %2, i32 noundef %3) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = getelementptr inbounds i8, ptr %0, i64 32
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false)
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %5)
  %6 = getelementptr inbounds i8, ptr %0, i64 144
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %6)
          to label %7 unwind label %46

7:                                                ; preds = %4
  %8 = getelementptr inbounds i8, ptr %0, i64 376
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %8)
          to label %9 unwind label %48

9:                                                ; preds = %7
  %10 = getelementptr inbounds i8, ptr %0, i64 608
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %10)
          to label %11 unwind label %50

11:                                               ; preds = %9
  %12 = getelementptr inbounds i8, ptr %0, i64 840
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %12)
          to label %13 unwind label %52

13:                                               ; preds = %11
  %14 = getelementptr inbounds i8, ptr %0, i64 1072
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %14)
          to label %15 unwind label %54

15:                                               ; preds = %13
  %16 = getelementptr inbounds i8, ptr %0, i64 1304
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %16)
  %17 = getelementptr inbounds i8, ptr %0, i64 1416
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %17)
  %18 = getelementptr inbounds i8, ptr %0, i64 1528
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %18)
  %19 = getelementptr inbounds i8, ptr %0, i64 1640
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %19)
  %20 = getelementptr inbounds i8, ptr %0, i64 1752
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %20)
  %21 = getelementptr inbounds i8, ptr %0, i64 1864
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %21)
  %22 = getelementptr inbounds i8, ptr %0, i64 1976
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %22)
  %23 = getelementptr inbounds i8, ptr %0, i64 2088
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %23)
  %24 = getelementptr inbounds i8, ptr %0, i64 2200
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %24)
  %25 = getelementptr inbounds i8, ptr %0, i64 2312
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %25)
  %26 = getelementptr inbounds i8, ptr %0, i64 2424
  tail call void @_ZN8mdvectorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %26)
  %27 = getelementptr inbounds i8, ptr %0, i64 2536
  tail call void @_ZN8mdvectorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %27)
  %28 = getelementptr inbounds i8, ptr %0, i64 2648
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %28)
  %29 = getelementptr inbounds i8, ptr %0, i64 2760
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %29)
          to label %30 unwind label %56

30:                                               ; preds = %15
  %31 = getelementptr inbounds i8, ptr %0, i64 2992
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %31)
          to label %32 unwind label %58

32:                                               ; preds = %30
  %33 = getelementptr inbounds i8, ptr %0, i64 3224
  invoke void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228) %33)
          to label %34 unwind label %60

34:                                               ; preds = %32
  %35 = getelementptr inbounds i8, ptr %0, i64 8
  %36 = getelementptr inbounds i8, ptr %0, i64 3456
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %36)
  %37 = getelementptr inbounds i8, ptr %0, i64 3568
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %37)
  %38 = getelementptr inbounds i8, ptr %0, i64 3680
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %38)
  %39 = getelementptr inbounds i8, ptr %0, i64 3792
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %39)
  %40 = getelementptr inbounds i8, ptr %0, i64 3904
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %40)
  %41 = getelementptr inbounds i8, ptr %0, i64 4016
  tail call void @_ZN8mdvectorIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(105) %41)
  store ptr %2, ptr %0, align 8, !tbaa !5
  store ptr %1, ptr %35, align 8, !tbaa !35
  %42 = getelementptr inbounds i8, ptr %1, i64 2104
  %43 = load i32, ptr %42, align 8, !tbaa !36
  %44 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 %43, ptr %44, align 8, !tbaa !139
  %45 = getelementptr inbounds i8, ptr %0, i64 4128
  store i32 %3, ptr %45, align 8, !tbaa !140
  ret void

46:                                               ; preds = %4
  %47 = landingpad { ptr, i32 }
          cleanup
  br label %68

48:                                               ; preds = %7
  %49 = landingpad { ptr, i32 }
          cleanup
  br label %67

50:                                               ; preds = %9
  %51 = landingpad { ptr, i32 }
          cleanup
  br label %66

52:                                               ; preds = %11
  %53 = landingpad { ptr, i32 }
          cleanup
  br label %65

54:                                               ; preds = %13
  %55 = landingpad { ptr, i32 }
          cleanup
  br label %64

56:                                               ; preds = %15
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %63

58:                                               ; preds = %30
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %62

60:                                               ; preds = %32
  %61 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %31) #4
  br label %62

62:                                               ; preds = %60, %58
  %.pn = phi { ptr, i32 } [ %61, %60 ], [ %59, %58 ]
  tail call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %29) #4
  br label %63

63:                                               ; preds = %62, %56
  %.pn.pn = phi { ptr, i32 } [ %.pn, %62 ], [ %57, %56 ]
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %28) #4
  tail call void @_ZN8mdvectorIcED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %27) #4
  tail call void @_ZN8mdvectorIcED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %26) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %25) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %24) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %23) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %22) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %21) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %20) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %19) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %18) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %17) #4
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %16) #4
  tail call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %14) #4
  br label %64

64:                                               ; preds = %63, %54
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %63 ], [ %55, %54 ]
  tail call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %12) #4
  br label %65

65:                                               ; preds = %64, %52
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %64 ], [ %53, %52 ]
  tail call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %10) #4
  br label %66

66:                                               ; preds = %65, %50
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %65 ], [ %51, %50 ]
  tail call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %8) #4
  br label %67

67:                                               ; preds = %66, %48
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %66 ], [ %49, %48 ]
  tail call void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228) %6) #4
  br label %68

68:                                               ; preds = %67, %46
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %67 ], [ %47, %46 ]
  tail call void @_ZN8mdvectorIdED2Ev(ptr noundef nonnull align 8 dereferenceable(105) %5) #4
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6mdviewIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(228)) unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6mdviewIdED2Ev(ptr noundef nonnull align 8 dereferenceable(228)) unnamed_addr #2 align 2

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTS5Faces", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !11, i64 32, !19, i64 144, !19, i64 376, !19, i64 608, !19, i64 840, !19, i64 1072, !11, i64 1304, !11, i64 1416, !11, i64 1528, !11, i64 1640, !11, i64 1752, !11, i64 1864, !11, i64 1976, !11, i64 2088, !11, i64 2200, !11, i64 2312, !30, i64 2424, !30, i64 2536, !11, i64 2648, !19, i64 2760, !19, i64 2992, !19, i64 3224, !11, i64 3456, !11, i64 3568, !11, i64 3680, !11, i64 3792, !11, i64 3904, !11, i64 4016, !10, i64 4128}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTS8mdvectorIdE", !10, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !14, i64 72, !7, i64 96, !18, i64 104}
!12 = !{!"long", !8, i64 0}
!13 = !{!"_ZTSSt5arrayIjLm6EE", !8, i64 0}
!14 = !{!"_ZTSSt6vectorIdSaIdEE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!18 = !{!"bool", !8, i64 0}
!19 = !{!"_ZTS6mdviewIdE", !20, i64 0, !25, i64 112, !10, i64 224}
!20 = !{!"_ZTS8mdvectorIPdE", !10, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !21, i64 72, !7, i64 96, !18, i64 104}
!21 = !{!"_ZTSSt6vectorIPdSaIS0_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIPdSaIS0_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!25 = !{!"_ZTS8mdvectorIjE", !10, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !26, i64 72, !7, i64 96, !18, i64 104}
!26 = !{!"_ZTSSt6vectorIjSaIjEE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!30 = !{!"_ZTS8mdvectorIcE", !10, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !31, i64 72, !7, i64 96, !18, i64 104}
!31 = !{!"_ZTSSt6vectorIcSaIcEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!35 = !{!6, !7, i64 8}
!36 = !{!37, !10, i64 2104}
!37 = !{!"_ZTS9GeoStruct", !38, i64 0, !46, i64 48, !38, i64 160, !46, i64 208, !51, i64 320, !46, i64 368, !54, i64 480, !25, i64 528, !46, i64 640, !57, i64 752, !54, i64 864, !25, i64 912, !25, i64 1024, !57, i64 1136, !57, i64 1248, !62, i64 1360, !62, i64 1408, !62, i64 1456, !62, i64 1504, !62, i64 1552, !62, i64 1600, !62, i64 1648, !65, i64 1696, !68, i64 1744, !71, i64 1792, !74, i64 1840, !68, i64 1888, !77, i64 1936, !10, i64 1984, !10, i64 1988, !10, i64 1992, !10, i64 1996, !10, i64 2000, !10, i64 2004, !62, i64 2008, !62, i64 2056, !10, i64 2104, !10, i64 2108, !10, i64 2112, !10, i64 2116, !18, i64 2120, !62, i64 2128, !68, i64 2176, !46, i64 2224, !46, i64 2336, !68, i64 2448, !68, i64 2496, !80, i64 2544, !80, i64 2568, !80, i64 2592, !47, i64 2616, !47, i64 2640, !47, i64 2664, !47, i64 2688, !26, i64 2712, !30, i64 2736, !84, i64 2848, !89, i64 2896, !92, i64 2944, !65, i64 2992, !11, i64 3040, !11, i64 3152, !11, i64 3264, !46, i64 3376, !46, i64 3488, !46, i64 3600, !10, i64 3712, !68, i64 3720, !95, i64 3768, !95, i64 3816, !10, i64 3864, !98, i64 3872, !103, i64 3920, !103, i64 3944, !26, i64 3968, !107, i64 3992, !110, i64 4040, !114, i64 4064, !46, i64 4088, !118, i64 4200, !123, i64 4312, !127, i64 4336, !127, i64 4368, !127, i64 4400, !129, i64 4432, !129, i64 4480, !10, i64 4528, !30, i64 4536, !11, i64 4648, !132, i64 4760, !11, i64 4768, !11, i64 4880, !11, i64 4992, !11, i64 5104, !11, i64 5216, !11, i64 5328, !11, i64 5440, !11, i64 5552, !11, i64 5664, !11, i64 5776, !11, i64 5888, !11, i64 6000, !11, i64 6112, !11, i64 6224, !133, i64 6336, !11, i64 6360, !11, i64 6472, !11, i64 6584, !11, i64 6696, !7, i64 6808, !10, i64 6816, !10, i64 6820, !10, i64 6824, !110, i64 6832, !110, i64 6856, !107, i64 6880, !47, i64 6928, !68, i64 6952, !47, i64 7000, !46, i64 7024, !46, i64 7136, !47, i64 7248, !47, i64 7272, !134, i64 7296, !47, i64 7344, !47, i64 7368, !10, i64 7392, !10, i64 7396, !47, i64 7400, !47, i64 7424, !46, i64 7448, !68, i64 7560, !10, i64 7608, !10, i64 7612, !10, i64 7616, !10, i64 7620, !10, i64 7624, !10, i64 7628}
!38 = !{!"_ZTSSt3setI8ELE_TYPESt4lessIS0_ESaIS0_EE", !39, i64 0}
!39 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPES0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE", !40, i64 0}
!40 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPES0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEE", !41, i64 0, !43, i64 8}
!41 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8ELE_TYPEEE", !42, i64 0}
!42 = !{!"_ZTSSt4lessI8ELE_TYPEE"}
!43 = !{!"_ZTSSt15_Rb_tree_header", !44, i64 0, !12, i64 32}
!44 = !{!"_ZTSSt18_Rb_tree_node_base", !45, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!45 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!46 = !{!"_ZTS8mdvectorIiE", !10, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !47, i64 72, !7, i64 96, !18, i64 104}
!47 = !{!"_ZTSSt6vectorIiSaIiEE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!51 = !{!"_ZTSSt3mapI8ELE_TYPEiSt4lessIS0_ESaISt4pairIKS0_iEEE", !52, i64 0}
!52 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_iESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE", !53, i64 0}
!53 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_iESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !41, i64 0, !43, i64 8}
!54 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIjESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !55, i64 0}
!55 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIjEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !56, i64 0}
!56 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIjEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !41, i64 0, !43, i64 8}
!57 = !{!"_ZTS8mdvectorI8ELE_TYPEE", !10, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !58, i64 72, !7, i64 96, !18, i64 104}
!58 = !{!"_ZTSSt6vectorI8ELE_TYPESaIS0_EE", !59, i64 0}
!59 = !{!"_ZTSSt12_Vector_baseI8ELE_TYPESaIS0_EE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseI8ELE_TYPESaIS0_EE12_Vector_implE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseI8ELE_TYPESaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!62 = !{!"_ZTSSt3mapI8ELE_TYPEjSt4lessIS0_ESaISt4pairIKS0_jEEE", !63, i64 0}
!63 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_jESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE", !64, i64 0}
!64 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_jESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !41, i64 0, !43, i64 8}
!65 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIdESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !66, i64 0}
!66 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIdEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !67, i64 0}
!67 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIdEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !41, i64 0, !43, i64 8}
!68 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIiESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !69, i64 0}
!69 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIiEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !70, i64 0}
!70 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIiEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !41, i64 0, !43, i64 8}
!71 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIS0_SaIS0_EESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !72, i64 0}
!72 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS0_SaIS0_EEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !73, i64 0}
!73 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS0_SaIS0_EEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !41, i64 0, !43, i64 8}
!74 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIS1_IjSaIjEESaIS3_EESt4lessIS0_ESaISt4pairIKS0_S5_EEE", !75, i64 0}
!75 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS3_IjSaIjEESaIS5_EEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE", !76, i64 0}
!76 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIS3_IjSaIjEESaIS5_EEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !41, i64 0, !43, i64 8}
!77 = !{!"_ZTSSt3mapI8ELE_TYPE8mdvectorIcESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !78, i64 0}
!78 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIcEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !79, i64 0}
!79 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_8mdvectorIcEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !41, i64 0, !43, i64 8}
!80 = !{!"_ZTSSt6vectorIPiSaIS0_EE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseIPiSaIS0_EE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIPiSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!84 = !{!"_ZTSSt3mapISt6vectorIjSaIjEEiSt4lessIS2_ESaISt4pairIKS2_iEEE", !85, i64 0}
!85 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !86, i64 0}
!86 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !87, i64 0, !43, i64 8}
!87 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt6vectorIjSaIjEEEE", !88, i64 0}
!88 = !{!"_ZTSSt4lessISt6vectorIjSaIjEEE"}
!89 = !{!"_ZTSSt3mapISt6vectorIjSaIjEE8ELE_TYPESt4lessIS2_ESaISt4pairIKS2_S3_EEE", !90, i64 0}
!90 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_8ELE_TYPEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE", !91, i64 0}
!91 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_8ELE_TYPEESt10_Select1stIS6_ESt4lessIS2_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !87, i64 0, !43, i64 8}
!92 = !{!"_ZTSSt3mapISt6vectorIjSaIjEES2_St4lessIS2_ESaISt4pairIKS2_S2_EEE", !93, i64 0}
!93 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !94, i64 0}
!94 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !87, i64 0, !43, i64 8}
!95 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIjSaIjEESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !96, i64 0}
!96 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIjSaIjEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !97, i64 0}
!97 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIjSaIjEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !41, i64 0, !43, i64 8}
!98 = !{!"_ZTSSt3mapIjiSt4lessIjESaISt4pairIKjiEEE", !99, i64 0}
!99 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !100, i64 0}
!100 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !101, i64 0, !43, i64 8}
!101 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !102, i64 0}
!102 = !{!"_ZTSSt4lessIjE"}
!103 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !104, i64 0}
!104 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !105, i64 0}
!105 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !106, i64 0}
!106 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!107 = !{!"_ZTSSt3mapISt6vectorIjSaIjEEjSt4lessIS2_ESaISt4pairIKS2_jEEE", !108, i64 0}
!108 = !{!"_ZTSSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_jESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !109, i64 0}
!109 = !{!"_ZTSNSt8_Rb_treeISt6vectorIjSaIjEESt4pairIKS2_jESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !87, i64 0, !43, i64 8}
!110 = !{!"_ZTSSt6vectorIS_IjSaIjEESaIS1_EE", !111, i64 0}
!111 = !{!"_ZTSSt12_Vector_baseISt6vectorIjSaIjEESaIS2_EE", !112, i64 0}
!112 = !{!"_ZTSNSt12_Vector_baseISt6vectorIjSaIjEESaIS2_EE12_Vector_implE", !113, i64 0}
!113 = !{!"_ZTSNSt12_Vector_baseISt6vectorIjSaIjEESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!114 = !{!"_ZTSSt6vectorIS_I8ELE_TYPESaIS0_EESaIS2_EE", !115, i64 0}
!115 = !{!"_ZTSSt12_Vector_baseISt6vectorI8ELE_TYPESaIS1_EESaIS3_EE", !116, i64 0}
!116 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8ELE_TYPESaIS1_EESaIS3_EE12_Vector_implE", !117, i64 0}
!117 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8ELE_TYPESaIS1_EESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!118 = !{!"_ZTS8mdvectorI8face_conE", !10, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !119, i64 72, !7, i64 96, !18, i64 104}
!119 = !{!"_ZTSSt6vectorI8face_conSaIS0_EE", !120, i64 0}
!120 = !{!"_ZTSSt12_Vector_baseI8face_conSaIS0_EE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseI8face_conSaIS0_EE12_Vector_implE", !122, i64 0}
!122 = !{!"_ZTSNSt12_Vector_baseI8face_conSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!123 = !{!"_ZTSSt6vectorIS_I8face_conSaIS0_EESaIS2_EE", !124, i64 0}
!124 = !{!"_ZTSSt12_Vector_baseISt6vectorI8face_conSaIS1_EESaIS3_EE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8face_conSaIS1_EESaIS3_EE12_Vector_implE", !126, i64 0}
!126 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8face_conSaIS1_EESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!127 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !128, i64 0, !12, i64 8, !8, i64 16}
!128 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!129 = !{!"_ZTSSt3mapI8ELE_TYPESt6vectorIiSaIiEESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !130, i64 0}
!130 = !{!"_ZTSSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIiSaIiEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !131, i64 0}
!131 = !{!"_ZTSNSt8_Rb_treeI8ELE_TYPESt4pairIKS0_St6vectorIiSaIiEEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !41, i64 0, !43, i64 8}
!132 = !{!"double", !8, i64 0}
!133 = !{!"_ZTSSt5arrayIdLm3EE", !8, i64 0}
!134 = !{!"_ZTSSt3setIiSt4lessIiESaIiEE", !135, i64 0}
!135 = !{!"_ZTSSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE", !136, i64 0}
!136 = !{!"_ZTSNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE13_Rb_tree_implIS3_Lb1EEE", !137, i64 0, !43, i64 8}
!137 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !138, i64 0}
!138 = !{!"_ZTSSt4lessIiE"}
!139 = !{!6, !10, i64 16}
!140 = !{!6, !10, i64 4128}


; Effective O3 passes: EarlyCSEPass,InstCombinePass,MemCpyOptPass,SROAPass,SimplifyCFGPass,TailCallElimPass