; LLVM IR from drohmer/cgp :: library/cgp/02_numarray/numarray/test/test_numarray.ll (ZN8cgp_test13test_numarrayEv)

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

%"struct.cgp::numarray" = type { %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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::initializer_list" = type { ptr, i64 }
%"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::allocator.0" = type { i8 }
%"struct.cgp::numarray.3" = type { %"class.std::vector.4" }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.9" = type { ptr, i64 }
%"struct.cgp::numarray.10" = type { %"class.std::vector.11" }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.16" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@__func__._ZN8cgp_test13test_numarrayEv = external hidden unnamed_addr constant [14 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [26 x i8], align 1
@constinit = external hidden constant [5 x i32], align 4
@.str.11 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8cgp_test13test_numarrayEv() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"struct.cgp::numarray", align 8
  %2 = alloca %"class.std::initializer_list", align 8
  %3 = alloca [3 x i32], align 4
  %4 = alloca %"struct.cgp::numarray", align 8
  %5 = alloca %"class.std::initializer_list", align 8
  %6 = alloca [3 x i32], align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator.0", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.0", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.0", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca %"struct.cgp::numarray", align 8
  %18 = alloca %"class.std::initializer_list", align 8
  %19 = alloca [4 x i32], align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.0", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator.0", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator.0", align 1
  %28 = alloca %"struct.cgp::numarray", align 8
  %29 = alloca %"class.std::initializer_list", align 8
  %30 = alloca [2 x i32], align 4
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.0", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.0", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.0", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.0", align 1
  %39 = alloca %"struct.cgp::numarray.3", align 8
  %40 = alloca %"class.std::initializer_list.9", align 8
  %41 = alloca [3 x float], align 4
  %42 = alloca %"struct.cgp::numarray.3", align 8
  %43 = alloca %"class.std::initializer_list.9", align 8
  %44 = alloca [3 x float], align 4
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.0", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.0", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.0", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.0", align 1
  %53 = alloca %"struct.cgp::numarray.3", align 8
  %54 = alloca %"class.std::initializer_list.9", align 8
  %55 = alloca [4 x float], align 4
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator.0", align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator.0", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator.0", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator.0", align 1
  %64 = alloca %"struct.cgp::numarray.3", align 8
  %65 = alloca %"class.std::initializer_list.9", align 8
  %66 = alloca [2 x float], align 4
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator.0", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator.0", align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator.0", align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator.0", align 1
  %75 = alloca %"struct.cgp::numarray.3", align 8
  %76 = alloca %"class.std::initializer_list.9", align 8
  %77 = alloca [3 x float], align 4
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator.0", align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::allocator.0", align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator.0", align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator.0", align 1
  %86 = alloca %"struct.cgp::numarray", align 8
  %87 = alloca %"class.std::initializer_list", align 8
  %88 = alloca [3 x i32], align 4
  %89 = alloca %"struct.cgp::numarray", align 8
  %90 = alloca %"class.std::initializer_list", align 8
  %91 = alloca [3 x i32], align 4
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator.0", align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator.0", align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator.0", align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator.0", align 1
  %100 = alloca %"struct.cgp::numarray", align 8
  %101 = alloca %"class.std::initializer_list", align 8
  %102 = alloca [4 x i32], align 4
  %103 = alloca %"struct.cgp::numarray", align 8
  %104 = alloca %"class.std::initializer_list", align 8
  %105 = alloca [4 x i32], align 4
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator.0", align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator.0", align 1
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator.0", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator.0", align 1
  %114 = alloca i32, align 4
  %115 = alloca %"struct.cgp::numarray", align 8
  %116 = alloca %"class.std::initializer_list", align 8
  %117 = alloca [5 x i32], align 4
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator.0", align 1
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator.0", align 1
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator.0", align 1
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::allocator.0", align 1
  %126 = alloca %"struct.cgp::numarray", align 8
  %127 = alloca %"class.std::initializer_list", align 8
  %128 = alloca [2 x i32], align 4
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::allocator.0", align 1
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::allocator.0", align 1
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::allocator.0", align 1
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::allocator.0", align 1
  %137 = alloca %"struct.cgp::numarray", align 8
  %138 = alloca %"class.std::initializer_list", align 8
  %139 = alloca [3 x i32], align 4
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::allocator.0", align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator.0", align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator.0", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator.0", align 1
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::allocator.0", align 1
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator.0", align 1
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator.0", align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator.0", align 1
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::allocator.0", align 1
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator.0", align 1
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator.0", align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator.0", align 1
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::allocator.0", align 1
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::allocator.0", align 1
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::allocator.0", align 1
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::allocator.0", align 1
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator.0", align 1
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::allocator.0", align 1
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::allocator.0", align 1
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator.0", align 1
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::allocator.0", align 1
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::allocator.0", align 1
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::allocator.0", align 1
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::allocator.0", align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::allocator.0", align 1
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::allocator.0", align 1
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator.0", align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::allocator.0", align 1
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::allocator.0", align 1
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator.0", align 1
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::allocator.0", align 1
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::allocator.0", align 1
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::allocator.0", align 1
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::allocator.0", align 1
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::allocator.0", align 1
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::allocator.0", align 1
  %212 = alloca %"struct.cgp::numarray", align 8
  %213 = alloca %"class.std::initializer_list", align 8
  %214 = alloca [3 x i32], align 4
  %215 = alloca %"struct.cgp::numarray", align 8
  %216 = alloca %"class.std::initializer_list", align 8
  %217 = alloca [3 x i32], align 4
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.std::allocator.0", align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::allocator.0", align 1
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::allocator.0", align 1
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::allocator.0", align 1
  %226 = alloca %"struct.cgp::numarray", align 8
  %227 = alloca %"class.std::initializer_list", align 8
  %228 = alloca [3 x i32], align 4
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::allocator.0", align 1
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::allocator.0", align 1
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::allocator.0", align 1
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::allocator.0", align 1
  %237 = alloca %"struct.cgp::numarray", align 8
  %238 = alloca %"class.std::initializer_list", align 8
  %239 = alloca [3 x i32], align 4
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.std::allocator.0", align 1
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::allocator.0", align 1
  %244 = alloca %"class.std::__cxx11::basic_string", align 8
  %245 = alloca %"class.std::allocator.0", align 1
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::allocator.0", align 1
  %248 = alloca %"struct.cgp::numarray.10", align 8
  %249 = alloca %"class.std::initializer_list.16", align 8
  %250 = alloca [3 x %"struct.cgp::numarray"], align 8
  %251 = alloca ptr, align 8
  %252 = alloca %"class.std::initializer_list", align 8
  %253 = alloca [2 x i32], align 4
  %254 = alloca %"class.std::initializer_list", align 8
  %255 = alloca [3 x i32], align 4
  %256 = alloca %"class.std::initializer_list", align 8
  %257 = alloca [1 x i32], align 4
  %258 = alloca i1, align 1
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator.0", align 1
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::allocator.0", align 1
  %263 = alloca %"class.std::__cxx11::basic_string", align 8
  %264 = alloca %"class.std::allocator.0", align 1
  %265 = alloca %"class.std::__cxx11::basic_string", align 8
  %266 = alloca %"class.std::allocator.0", align 1
  %267 = alloca %"struct.cgp::numarray", align 8
  %268 = alloca %"class.std::initializer_list", align 8
  %269 = alloca [2 x i32], align 4
  %270 = alloca %"class.std::__cxx11::basic_string", align 8
  %271 = alloca %"class.std::allocator.0", align 1
  %272 = alloca %"class.std::__cxx11::basic_string", align 8
  %273 = alloca %"class.std::allocator.0", align 1
  %274 = alloca %"class.std::__cxx11::basic_string", align 8
  %275 = alloca %"class.std::allocator.0", align 1
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::allocator.0", align 1
  %278 = alloca %"class.std::__cxx11::basic_string", align 8
  %279 = alloca %"class.std::allocator.0", align 1
  %280 = alloca %"class.std::__cxx11::basic_string", align 8
  %281 = alloca %"class.std::allocator.0", align 1
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.std::allocator.0", align 1
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::allocator.0", align 1
  %286 = alloca %"struct.cgp::numarray", align 8
  %287 = alloca %"class.std::initializer_list", align 8
  %288 = alloca [3 x i32], align 4
  %289 = alloca %"class.std::__cxx11::basic_string", align 8
  %290 = alloca %"class.std::allocator.0", align 1
  %291 = alloca %"class.std::__cxx11::basic_string", align 8
  %292 = alloca %"class.std::allocator.0", align 1
  %293 = alloca %"class.std::__cxx11::basic_string", align 8
  %294 = alloca %"class.std::allocator.0", align 1
  %295 = alloca %"class.std::__cxx11::basic_string", align 8
  %296 = alloca %"class.std::allocator.0", align 1
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::allocator.0", align 1
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.std::allocator.0", align 1
  %301 = alloca %"class.std::__cxx11::basic_string", align 8
  %302 = alloca %"class.std::allocator.0", align 1
  %303 = alloca %"class.std::__cxx11::basic_string", align 8
  %304 = alloca %"class.std::allocator.0", align 1
  %305 = alloca %"struct.cgp::numarray", align 8
  %306 = alloca %"class.std::initializer_list", align 8
  %307 = alloca [1 x i32], align 4
  %308 = alloca %"class.std::__cxx11::basic_string", align 8
  %309 = alloca %"class.std::allocator.0", align 1
  %310 = alloca %"class.std::__cxx11::basic_string", align 8
  %311 = alloca %"class.std::allocator.0", align 1
  %312 = alloca %"class.std::__cxx11::basic_string", align 8
  %313 = alloca %"class.std::allocator.0", align 1
  %314 = alloca %"class.std::__cxx11::basic_string", align 8
  %315 = alloca %"class.std::allocator.0", align 1
  %316 = alloca %"struct.cgp::numarray", align 8
  %317 = alloca %"class.std::initializer_list", align 8
  %318 = alloca [3 x i32], align 4
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::allocator.0", align 1
  %321 = alloca %"class.std::__cxx11::basic_string", align 8
  %322 = alloca %"class.std::allocator.0", align 1
  %323 = alloca %"class.std::__cxx11::basic_string", align 8
  %324 = alloca %"class.std::allocator.0", align 1
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.std::allocator.0", align 1
  %327 = alloca %"struct.cgp::numarray", align 8
  %328 = alloca %"class.std::initializer_list", align 8
  %329 = alloca [3 x i32], align 4
  %330 = alloca %"class.std::__cxx11::basic_string", align 8
  %331 = alloca %"class.std::allocator.0", align 1
  %332 = alloca %"class.std::__cxx11::basic_string", align 8
  %333 = alloca %"class.std::allocator.0", align 1
  %334 = alloca %"class.std::__cxx11::basic_string", align 8
  %335 = alloca %"class.std::allocator.0", align 1
  %336 = alloca %"class.std::__cxx11::basic_string", align 8
  %337 = alloca %"class.std::allocator.0", align 1
  %338 = alloca %"struct.cgp::numarray", align 8
  %339 = alloca %"class.std::__cxx11::basic_string", align 8
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::allocator.0", align 1
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator.0", align 1
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca %"class.std::allocator.0", align 1
  %346 = alloca %"class.std::__cxx11::basic_string", align 8
  %347 = alloca %"class.std::allocator.0", align 1
  %348 = alloca %"struct.cgp::numarray.3", align 8
  %349 = alloca %"class.std::__cxx11::basic_string", align 8
  %350 = alloca %"class.std::__cxx11::basic_string", align 8
  %351 = alloca %"class.std::allocator.0", align 1
  %352 = alloca %"class.std::__cxx11::basic_string", align 8
  %353 = alloca %"class.std::allocator.0", align 1
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca %"class.std::allocator.0", align 1
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca %"class.std::allocator.0", align 1
  %358 = alloca %"struct.cgp::numarray.10", align 8
  %359 = alloca %"class.std::__cxx11::basic_string", align 8
  %360 = alloca %"class.std::__cxx11::basic_string", align 8
  %361 = alloca %"class.std::allocator.0", align 1
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca %"class.std::allocator.0", align 1
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::allocator.0", align 1
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::allocator.0", align 1
  %368 = alloca %"struct.cgp::numarray", align 8
  %369 = alloca %"class.std::initializer_list", align 8
  %370 = alloca [3 x i32], align 4
  %371 = alloca %"class.std::__cxx11::basic_string", align 8
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca %"class.std::allocator.0", align 1
  %374 = alloca %"class.std::__cxx11::basic_string", align 8
  %375 = alloca %"class.std::allocator.0", align 1
  %376 = alloca %"class.std::__cxx11::basic_string", align 8
  %377 = alloca %"class.std::allocator.0", align 1
  %378 = alloca %"class.std::__cxx11::basic_string", align 8
  %379 = alloca %"class.std::allocator.0", align 1
  %380 = alloca %"class.std::__cxx11::basic_string", align 8
  %381 = alloca %"class.std::allocator.0", align 1
  %382 = alloca %"class.std::__cxx11::basic_string", align 8
  %383 = alloca %"class.std::allocator.0", align 1
  %384 = alloca %"class.std::__cxx11::basic_string", align 8
  %385 = alloca %"class.std::allocator.0", align 1
  %386 = alloca %"class.std::__cxx11::basic_string", align 8
  %387 = alloca %"class.std::__cxx11::basic_string", align 8
  %388 = alloca %"class.std::allocator.0", align 1
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.std::allocator.0", align 1
  %391 = alloca %"class.std::__cxx11::basic_string", align 8
  %392 = alloca %"class.std::allocator.0", align 1
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::allocator.0", align 1
  %395 = alloca %"class.std::__cxx11::basic_string", align 8
  %396 = alloca %"class.std::allocator.0", align 1
  %397 = alloca %"class.std::__cxx11::basic_string", align 8
  %398 = alloca %"class.std::allocator.0", align 1
  %399 = alloca %"class.std::__cxx11::basic_string", align 8
  %400 = alloca %"class.std::allocator.0", align 1
  %401 = alloca %"class.std::__cxx11::basic_string", align 8
  %402 = alloca %"class.std::__cxx11::basic_string", align 8
  %403 = alloca %"class.std::allocator.0", align 1
  %404 = alloca %"class.std::__cxx11::basic_string", align 8
  %405 = alloca %"class.std::allocator.0", align 1
  %406 = alloca %"class.std::__cxx11::basic_string", align 8
  %407 = alloca %"class.std::allocator.0", align 1
  %408 = alloca %"class.std::__cxx11::basic_string", align 8
  %409 = alloca %"class.std::allocator.0", align 1
  %410 = alloca %"class.std::__cxx11::basic_string", align 8
  %411 = alloca %"class.std::allocator.0", align 1
  %412 = alloca %"class.std::__cxx11::basic_string", align 8
  %413 = alloca %"class.std::allocator.0", align 1
  %414 = alloca %"class.std::__cxx11::basic_string", align 8
  %415 = alloca %"class.std::allocator.0", align 1
  %416 = alloca %"struct.cgp::numarray", align 8
  %417 = alloca %"class.std::initializer_list", align 8
  %418 = alloca [3 x i32], align 4
  %419 = alloca i32, align 4
  %420 = alloca ptr, align 8
  %421 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %422 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %423 = alloca i32, align 4
  %424 = alloca %"class.std::__cxx11::basic_string", align 8
  %425 = alloca %"class.std::allocator.0", align 1
  %426 = alloca %"class.std::__cxx11::basic_string", align 8
  %427 = alloca %"class.std::allocator.0", align 1
  %428 = alloca %"class.std::__cxx11::basic_string", align 8
  %429 = alloca %"class.std::allocator.0", align 1
  %430 = alloca %"class.std::__cxx11::basic_string", align 8
  %431 = alloca %"class.std::allocator.0", align 1
  %432 = alloca %"class.std::__cxx11::basic_string", align 8
  %433 = alloca %"class.std::allocator.0", align 1
  %434 = alloca %"class.std::__cxx11::basic_string", align 8
  %435 = alloca %"class.std::allocator.0", align 1
  %436 = alloca %"class.std::__cxx11::basic_string", align 8
  %437 = alloca %"class.std::allocator.0", align 1
  %438 = alloca %"class.std::__cxx11::basic_string", align 8
  %439 = alloca %"class.std::allocator.0", align 1
  %440 = alloca %"class.std::__cxx11::basic_string", align 8
  %441 = alloca %"class.std::allocator.0", align 1
  %442 = alloca %"class.std::__cxx11::basic_string", align 8
  %443 = alloca %"class.std::allocator.0", align 1
  %444 = alloca %"class.std::__cxx11::basic_string", align 8
  %445 = alloca %"class.std::allocator.0", align 1
  %446 = alloca %"class.std::__cxx11::basic_string", align 8
  %447 = alloca %"class.std::allocator.0", align 1
  %448 = alloca %"class.std::__cxx11::basic_string", align 8
  %449 = alloca %"class.std::allocator.0", align 1
  %450 = alloca %"class.std::__cxx11::basic_string", align 8
  %451 = alloca %"class.std::allocator.0", align 1
  %452 = alloca %"class.std::__cxx11::basic_string", align 8
  %453 = alloca %"class.std::allocator.0", align 1
  %454 = alloca %"class.std::__cxx11::basic_string", align 8
  %455 = alloca %"class.std::allocator.0", align 1
  %456 = alloca %"struct.cgp::numarray", align 8
  %457 = alloca %"class.std::initializer_list", align 8
  %458 = alloca [3 x i32], align 4
  %459 = alloca %"class.std::__cxx11::basic_string", align 8
  %460 = alloca %"class.std::allocator.0", align 1
  %461 = alloca %"class.std::__cxx11::basic_string", align 8
  %462 = alloca %"class.std::allocator.0", align 1
  %463 = alloca %"class.std::__cxx11::basic_string", align 8
  %464 = alloca %"class.std::allocator.0", align 1
  %465 = alloca %"class.std::__cxx11::basic_string", align 8
  %466 = alloca %"class.std::allocator.0", align 1
  %467 = alloca %"struct.cgp::numarray.10", align 8
  %468 = alloca %"class.std::initializer_list.16", align 8
  %469 = alloca [3 x %"struct.cgp::numarray"], align 8
  %470 = alloca ptr, align 8
  %471 = alloca %"class.std::initializer_list", align 8
  %472 = alloca [2 x i32], align 4
  %473 = alloca %"class.std::initializer_list", align 8
  %474 = alloca [3 x i32], align 4
  %475 = alloca %"class.std::initializer_list", align 8
  %476 = alloca [1 x i32], align 4
  %477 = alloca i1, align 1
  %478 = alloca %"class.std::__cxx11::basic_string", align 8
  %479 = alloca %"class.std::allocator.0", align 1
  %480 = alloca %"class.std::__cxx11::basic_string", align 8
  %481 = alloca %"class.std::allocator.0", align 1
  %482 = alloca %"class.std::__cxx11::basic_string", align 8
  %483 = alloca %"class.std::allocator.0", align 1
  %484 = alloca %"class.std::__cxx11::basic_string", align 8
  %485 = alloca %"class.std::allocator.0", align 1
  %486 = alloca %"struct.cgp::numarray.3", align 8
  %487 = alloca float, align 4
  %488 = alloca float, align 4
  %489 = alloca %"class.std::__cxx11::basic_string", align 8
  %490 = alloca %"class.std::allocator.0", align 1
  %491 = alloca %"class.std::__cxx11::basic_string", align 8
  %492 = alloca %"class.std::allocator.0", align 1
  %493 = alloca %"class.std::__cxx11::basic_string", align 8
  %494 = alloca %"class.std::allocator.0", align 1
  %495 = alloca %"class.std::__cxx11::basic_string", align 8
  %496 = alloca %"class.std::allocator.0", align 1
  %497 = alloca %"class.std::__cxx11::basic_string", align 8
  %498 = alloca %"class.std::allocator.0", align 1
  %499 = alloca %"class.std::__cxx11::basic_string", align 8
  %500 = alloca %"class.std::allocator.0", align 1
  %501 = alloca %"class.std::__cxx11::basic_string", align 8
  %502 = alloca %"class.std::allocator.0", align 1
  %503 = alloca %"class.std::__cxx11::basic_string", align 8
  %504 = alloca %"class.std::allocator.0", align 1
  %505 = alloca %"class.std::__cxx11::basic_string", align 8
  %506 = alloca %"class.std::allocator.0", align 1
  %507 = alloca %"class.std::__cxx11::basic_string", align 8
  %508 = alloca %"class.std::allocator.0", align 1
  %509 = alloca %"class.std::__cxx11::basic_string", align 8
  %510 = alloca %"class.std::allocator.0", align 1
  %511 = alloca %"class.std::__cxx11::basic_string", align 8
  %512 = alloca %"class.std::allocator.0", align 1
  %513 = alloca %"struct.cgp::numarray.3", align 8
  %514 = alloca %"class.std::initializer_list.9", align 8
  %515 = alloca [4 x float], align 4
  %516 = alloca %"class.std::__cxx11::basic_string", align 8
  %517 = alloca %"class.std::allocator.0", align 1
  %518 = alloca %"class.std::__cxx11::basic_string", align 8
  %519 = alloca %"class.std::allocator.0", align 1
  %520 = alloca %"class.std::__cxx11::basic_string", align 8
  %521 = alloca %"class.std::allocator.0", align 1
  %522 = alloca %"class.std::__cxx11::basic_string", align 8
  %523 = alloca %"class.std::allocator.0", align 1
  %524 = alloca %"class.std::__cxx11::basic_string", align 8
  %525 = alloca %"class.std::allocator.0", align 1
  %526 = alloca %"class.std::__cxx11::basic_string", align 8
  %527 = alloca %"class.std::allocator.0", align 1
  %528 = alloca %"class.std::__cxx11::basic_string", align 8
  %529 = alloca %"class.std::allocator.0", align 1
  %530 = alloca %"class.std::__cxx11::basic_string", align 8
  %531 = alloca %"class.std::allocator.0", align 1
  %532 = alloca %"class.std::__cxx11::basic_string", align 8
  %533 = alloca %"class.std::allocator.0", align 1
  %534 = alloca %"class.std::__cxx11::basic_string", align 8
  %535 = alloca %"class.std::allocator.0", align 1
  %536 = alloca %"class.std::__cxx11::basic_string", align 8
  %537 = alloca %"class.std::allocator.0", align 1
  %538 = alloca %"class.std::__cxx11::basic_string", align 8
  %539 = alloca %"class.std::allocator.0", align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %1) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %3) #7
  store i32 1, ptr %3, align 4, !tbaa !5
  %540 = getelementptr inbounds i32, ptr %3, i64 1
  store i32 2, ptr %540, align 4, !tbaa !5
  %541 = getelementptr inbounds i32, ptr %3, i64 2
  store i32 3, ptr %541, align 4, !tbaa !5
  %542 = getelementptr inbounds %"class.std::initializer_list", ptr %2, i32 0, i32 0
  store ptr %3, ptr %542, align 8, !tbaa !9
  %543 = getelementptr inbounds %"class.std::initializer_list", ptr %2, i32 0, i32 1
  store i64 3, ptr %543, align 8, !tbaa !13
  %544 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 0
  %545 = load ptr, ptr %544, align 8
  %546 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 1
  %547 = load i64, ptr %546, align 8
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr %545, i64 %547)
  call void @llvm.lifetime.end.p0(i64 12, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %4) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %6) #7
  store i32 1, ptr %6, align 4, !tbaa !5
  %548 = getelementptr inbounds i32, ptr %6, i64 1
  store i32 2, ptr %548, align 4, !tbaa !5
  %549 = getelementptr inbounds i32, ptr %6, i64 2
  store i32 3, ptr %549, align 4, !tbaa !5
  %550 = getelementptr inbounds %"class.std::initializer_list", ptr %5, i32 0, i32 0
  store ptr %6, ptr %550, align 8, !tbaa !9
  %551 = getelementptr inbounds %"class.std::initializer_list", ptr %5, i32 0, i32 1
  store i64 3, ptr %551, align 8, !tbaa !13
  %552 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
  %553 = load ptr, ptr %552, align 8
  %554 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
  %555 = load i64, ptr %554, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr %553, i64 %555)
          to label %556 unwind label %567

556:                                              ; preds = %0
  %557 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %558 unwind label %571

558:                                              ; preds = %556
  %559 = zext i1 %557 to i32
  %560 = icmp eq i32 %559, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #7
  br i1 %560, label %561, label %600

561:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %562 unwind label %576

562:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %563 unwind label %580

563:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %564 unwind label %584

564:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %565 unwind label %588

565:                                              ; preds = %564
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %15, i32 noundef 14) #8
          to label %566 unwind label %592

566:                                              ; preds = %565
  unreachable

567:                                              ; preds = %0
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %7, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %8, align 4
  br label %575

571:                                              ; preds = %556
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %7, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  br label %575

575:                                              ; preds = %571, %567
  call void @llvm.lifetime.end.p0(i64 12, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %4) #7
  br label %736

576:                                              ; preds = %561
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %7, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %8, align 4
  br label %599

580:                                              ; preds = %562
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %7, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %8, align 4
  br label %598

584:                                              ; preds = %563
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %7, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %8, align 4
  br label %597

588:                                              ; preds = %564
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %7, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %8, align 4
  br label %596

592:                                              ; preds = %565
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %7, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %596

596:                                              ; preds = %592, %588
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %15) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %597

597:                                              ; preds = %596, %584
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %598

598:                                              ; preds = %597, %580
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %599

599:                                              ; preds = %598, %576
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #7
  br label %736

600:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #7
  store i32 1, ptr %19, align 4, !tbaa !5
  %601 = getelementptr inbounds i32, ptr %19, i64 1
  store i32 2, ptr %601, align 4, !tbaa !5
  %602 = getelementptr inbounds i32, ptr %19, i64 2
  store i32 3, ptr %602, align 4, !tbaa !5
  %603 = getelementptr inbounds i32, ptr %19, i64 3
  store i32 4, ptr %603, align 4, !tbaa !5
  %604 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 0
  store ptr %19, ptr %604, align 8, !tbaa !9
  %605 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 1
  store i64 4, ptr %605, align 8, !tbaa !13
  %606 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 0
  %607 = load ptr, ptr %606, align 8
  %608 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 1
  %609 = load i64, ptr %608, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr %607, i64 %609)
          to label %610 unwind label %622

610:                                              ; preds = %600
  %611 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %612 unwind label %626

612:                                              ; preds = %610
  %613 = xor i1 %611, true
  %614 = zext i1 %613 to i32
  %615 = icmp eq i32 %614, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #7
  br i1 %615, label %616, label %655

616:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %617 unwind label %631

617:                                              ; preds = %616
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %618 unwind label %635

618:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %619 unwind label %639

619:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %620 unwind label %643

620:                                              ; preds = %619
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %26, i32 noundef 15) #8
          to label %621 unwind label %647

621:                                              ; preds = %620
  unreachable

622:                                              ; preds = %600
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %7, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %8, align 4
  br label %630

626:                                              ; preds = %610
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %7, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  br label %630

630:                                              ; preds = %626, %622
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #7
  br label %736

631:                                              ; preds = %616
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %7, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %8, align 4
  br label %654

635:                                              ; preds = %617
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %7, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %8, align 4
  br label %653

639:                                              ; preds = %618
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %7, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %8, align 4
  br label %652

643:                                              ; preds = %619
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %7, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %8, align 4
  br label %651

647:                                              ; preds = %620
  %648 = landingpad { ptr, i32 }
          cleanup
  %649 = extractvalue { ptr, i32 } %648, 0
  store ptr %649, ptr %7, align 8
  %650 = extractvalue { ptr, i32 } %648, 1
  store i32 %650, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %651

651:                                              ; preds = %647, %643
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %652

652:                                              ; preds = %651, %639
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %653

653:                                              ; preds = %652, %635
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %654

654:                                              ; preds = %653, %631
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  br label %736

655:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  store i32 1, ptr %30, align 4, !tbaa !5
  %656 = getelementptr inbounds i32, ptr %30, i64 1
  store i32 2, ptr %656, align 4, !tbaa !5
  %657 = getelementptr inbounds %"class.std::initializer_list", ptr %29, i32 0, i32 0
  store ptr %30, ptr %657, align 8, !tbaa !9
  %658 = getelementptr inbounds %"class.std::initializer_list", ptr %29, i32 0, i32 1
  store i64 2, ptr %658, align 8, !tbaa !13
  %659 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 0
  %660 = load ptr, ptr %659, align 8
  %661 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 1
  %662 = load i64, ptr %661, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr %660, i64 %662)
          to label %663 unwind label %675

663:                                              ; preds = %655
  %664 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %665 unwind label %679

665:                                              ; preds = %663
  %666 = xor i1 %664, true
  %667 = zext i1 %666 to i32
  %668 = icmp eq i32 %667, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  br i1 %668, label %669, label %708

669:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %670 unwind label %684

670:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %671 unwind label %688

671:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %672 unwind label %692

672:                                              ; preds = %671
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %673 unwind label %696

673:                                              ; preds = %672
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %37, i32 noundef 16) #8
          to label %674 unwind label %700

674:                                              ; preds = %673
  unreachable

675:                                              ; preds = %655
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %7, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %8, align 4
  br label %683

679:                                              ; preds = %663
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %7, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  br label %683

683:                                              ; preds = %679, %675
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  br label %736

684:                                              ; preds = %669
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %7, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %8, align 4
  br label %707

688:                                              ; preds = %670
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %7, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %8, align 4
  br label %706

692:                                              ; preds = %671
  %693 = landingpad { ptr, i32 }
          cleanup
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %7, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %8, align 4
  br label %705

696:                                              ; preds = %672
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %7, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %8, align 4
  br label %704

700:                                              ; preds = %673
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %7, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %704

704:                                              ; preds = %700, %696
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %705

705:                                              ; preds = %704, %692
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %706

706:                                              ; preds = %705, %688
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %707

707:                                              ; preds = %706, %684
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %31) #7
  br label %736

708:                                              ; preds = %665
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %1) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %41) #7
  store float 0x3FF19999A0000000, ptr %41, align 4, !tbaa !14
  %709 = getelementptr inbounds float, ptr %41, i64 1
  store float 0x40019999A0000000, ptr %709, align 4, !tbaa !14
  %710 = getelementptr inbounds float, ptr %41, i64 2
  store float 0x4008CCCCC0000000, ptr %710, align 4, !tbaa !14
  %711 = getelementptr inbounds %"class.std::initializer_list.9", ptr %40, i32 0, i32 0
  store ptr %41, ptr %711, align 8, !tbaa !16
  %712 = getelementptr inbounds %"class.std::initializer_list.9", ptr %40, i32 0, i32 1
  store i64 3, ptr %712, align 8, !tbaa !18
  %713 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 0
  %714 = load ptr, ptr %713, align 8
  %715 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 1
  %716 = load i64, ptr %715, align 8
  call void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr %714, i64 %716)
  call void @llvm.lifetime.end.p0(i64 12, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %44) #7
  store float 0x3FF19999A0000000, ptr %44, align 4, !tbaa !14
  %717 = getelementptr inbounds float, ptr %44, i64 1
  store float 0x40019999A0000000, ptr %717, align 4, !tbaa !14
  %718 = getelementptr inbounds float, ptr %44, i64 2
  store float 0x4008CCCCC0000000, ptr %718, align 4, !tbaa !14
  %719 = getelementptr inbounds %"class.std::initializer_list.9", ptr %43, i32 0, i32 0
  store ptr %44, ptr %719, align 8, !tbaa !16
  %720 = getelementptr inbounds %"class.std::initializer_list.9", ptr %43, i32 0, i32 1
  store i64 3, ptr %720, align 8, !tbaa !18
  %721 = getelementptr inbounds { ptr, i64 }, ptr %43, i32 0, i32 0
  %722 = load ptr, ptr %721, align 8
  %723 = getelementptr inbounds { ptr, i64 }, ptr %43, i32 0, i32 1
  %724 = load i64, ptr %723, align 8
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr %722, i64 %724)
          to label %725 unwind label %737

725:                                              ; preds = %708
  %726 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %727 unwind label %741

727:                                              ; preds = %725
  %728 = zext i1 %726 to i32
  %729 = icmp eq i32 %728, 0
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  br i1 %729, label %730, label %770

730:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %731 unwind label %746

731:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %732 unwind label %750

732:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %733 unwind label %754

733:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %734 unwind label %758

734:                                              ; preds = %733
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %51, i32 noundef 21) #8
          to label %735 unwind label %762

735:                                              ; preds = %734
  unreachable

736:                                              ; preds = %707, %683, %654, %630, %599, %575
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %1) #7
  br label %3147

737:                                              ; preds = %708
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %7, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %8, align 4
  br label %745

741:                                              ; preds = %725
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %7, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %8, align 4
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  br label %745

745:                                              ; preds = %741, %737
  call void @llvm.lifetime.end.p0(i64 12, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  br label %970

746:                                              ; preds = %730
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %7, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %8, align 4
  br label %769

750:                                              ; preds = %731
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %7, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %8, align 4
  br label %768

754:                                              ; preds = %732
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %7, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %8, align 4
  br label %767

758:                                              ; preds = %733
  %759 = landingpad { ptr, i32 }
          cleanup
  %760 = extractvalue { ptr, i32 } %759, 0
  store ptr %760, ptr %7, align 8
  %761 = extractvalue { ptr, i32 } %759, 1
  store i32 %761, ptr %8, align 4
  br label %766

762:                                              ; preds = %734
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %7, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %766

766:                                              ; preds = %762, %758
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %767

767:                                              ; preds = %766, %754
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %768

768:                                              ; preds = %767, %750
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %769

769:                                              ; preds = %768, %746
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  br label %970

770:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #7
  store float 0x3FF19999A0000000, ptr %55, align 4, !tbaa !14
  %771 = getelementptr inbounds float, ptr %55, i64 1
  store float 0x40019999A0000000, ptr %771, align 4, !tbaa !14
  %772 = getelementptr inbounds float, ptr %55, i64 2
  store float 0x4008CCCCC0000000, ptr %772, align 4, !tbaa !14
  %773 = getelementptr inbounds float, ptr %55, i64 3
  store float 4.500000e+00, ptr %773, align 4, !tbaa !14
  %774 = getelementptr inbounds %"class.std::initializer_list.9", ptr %54, i32 0, i32 0
  store ptr %55, ptr %774, align 8, !tbaa !16
  %775 = getelementptr inbounds %"class.std::initializer_list.9", ptr %54, i32 0, i32 1
  store i64 4, ptr %775, align 8, !tbaa !18
  %776 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 0
  %777 = load ptr, ptr %776, align 8
  %778 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 1
  %779 = load i64, ptr %778, align 8
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr %777, i64 %779)
          to label %780 unwind label %792

780:                                              ; preds = %770
  %781 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %782 unwind label %796

782:                                              ; preds = %780
  %783 = xor i1 %781, true
  %784 = zext i1 %783 to i32
  %785 = icmp eq i32 %784, 0
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  br i1 %785, label %786, label %825

786:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %787 unwind label %801

787:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %788 unwind label %805

788:                                              ; preds = %787
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %789 unwind label %809

789:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %790 unwind label %813

790:                                              ; preds = %789
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %62, i32 noundef 22) #8
          to label %791 unwind label %817

791:                                              ; preds = %790
  unreachable

792:                                              ; preds = %770
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %7, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %8, align 4
  br label %800

796:                                              ; preds = %780
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %7, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %8, align 4
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  br label %800

800:                                              ; preds = %796, %792
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  br label %970

801:                                              ; preds = %786
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %7, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %8, align 4
  br label %824

805:                                              ; preds = %787
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %7, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %8, align 4
  br label %823

809:                                              ; preds = %788
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %7, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %8, align 4
  br label %822

813:                                              ; preds = %789
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %7, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %8, align 4
  br label %821

817:                                              ; preds = %790
  %818 = landingpad { ptr, i32 }
          cleanup
  %819 = extractvalue { ptr, i32 } %818, 0
  store ptr %819, ptr %7, align 8
  %820 = extractvalue { ptr, i32 } %818, 1
  store i32 %820, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %821

821:                                              ; preds = %817, %813
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %822

822:                                              ; preds = %821, %809
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %823

823:                                              ; preds = %822, %805
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %824

824:                                              ; preds = %823, %801
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  br label %970

825:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 24, ptr %64) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  store float 0x3FF19999A0000000, ptr %66, align 4, !tbaa !14
  %826 = getelementptr inbounds float, ptr %66, i64 1
  store float 0x40019999A0000000, ptr %826, align 4, !tbaa !14
  %827 = getelementptr inbounds %"class.std::initializer_list.9", ptr %65, i32 0, i32 0
  store ptr %66, ptr %827, align 8, !tbaa !16
  %828 = getelementptr inbounds %"class.std::initializer_list.9", ptr %65, i32 0, i32 1
  store i64 2, ptr %828, align 8, !tbaa !18
  %829 = getelementptr inbounds { ptr, i64 }, ptr %65, i32 0, i32 0
  %830 = load ptr, ptr %829, align 8
  %831 = getelementptr inbounds { ptr, i64 }, ptr %65, i32 0, i32 1
  %832 = load i64, ptr %831, align 8
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %64, ptr %830, i64 %832)
          to label %833 unwind label %845

833:                                              ; preds = %825
  %834 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %64)
          to label %835 unwind label %849

835:                                              ; preds = %833
  %836 = xor i1 %834, true
  %837 = zext i1 %836 to i32
  %838 = icmp eq i32 %837, 0
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  br i1 %838, label %839, label %878

839:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %840 unwind label %854

840:                                              ; preds = %839
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %841 unwind label %858

841:                                              ; preds = %840
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %842 unwind label %862

842:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %843 unwind label %866

843:                                              ; preds = %842
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %73, i32 noundef 23) #8
          to label %844 unwind label %870

844:                                              ; preds = %843
  unreachable

845:                                              ; preds = %825
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %7, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %8, align 4
  br label %853

849:                                              ; preds = %833
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %7, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %8, align 4
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  br label %853

853:                                              ; preds = %849, %845
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  br label %970

854:                                              ; preds = %839
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %7, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %8, align 4
  br label %877

858:                                              ; preds = %840
  %859 = landingpad { ptr, i32 }
          cleanup
  %860 = extractvalue { ptr, i32 } %859, 0
  store ptr %860, ptr %7, align 8
  %861 = extractvalue { ptr, i32 } %859, 1
  store i32 %861, ptr %8, align 4
  br label %876

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

866:                                              ; preds = %842
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %7, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %8, align 4
  br label %874

870:                                              ; preds = %843
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %7, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %874

874:                                              ; preds = %870, %866
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %875

875:                                              ; preds = %874, %862
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %876

876:                                              ; preds = %875, %858
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %877

877:                                              ; preds = %876, %854
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  br label %970

878:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 24, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %77) #7
  store float 0x3FF19999A0000000, ptr %77, align 4, !tbaa !14
  %879 = getelementptr inbounds float, ptr %77, i64 1
  store float 0x4001AE1480000000, ptr %879, align 4, !tbaa !14
  %880 = getelementptr inbounds float, ptr %77, i64 2
  store float 0x4008CCCCC0000000, ptr %880, align 4, !tbaa !14
  %881 = getelementptr inbounds %"class.std::initializer_list.9", ptr %76, i32 0, i32 0
  store ptr %77, ptr %881, align 8, !tbaa !16
  %882 = getelementptr inbounds %"class.std::initializer_list.9", ptr %76, i32 0, i32 1
  store i64 3, ptr %882, align 8, !tbaa !18
  %883 = getelementptr inbounds { ptr, i64 }, ptr %76, i32 0, i32 0
  %884 = load ptr, ptr %883, align 8
  %885 = getelementptr inbounds { ptr, i64 }, ptr %76, i32 0, i32 1
  %886 = load i64, ptr %885, align 8
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr %884, i64 %886)
          to label %887 unwind label %899

887:                                              ; preds = %878
  %888 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %889 unwind label %903

889:                                              ; preds = %887
  %890 = xor i1 %888, true
  %891 = zext i1 %890 to i32
  %892 = icmp eq i32 %891, 0
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #7
  br i1 %892, label %893, label %932

893:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %894 unwind label %908

894:                                              ; preds = %893
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %895 unwind label %912

895:                                              ; preds = %894
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %896 unwind label %916

896:                                              ; preds = %895
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %897 unwind label %920

897:                                              ; preds = %896
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %84, i32 noundef 24) #8
          to label %898 unwind label %924

898:                                              ; preds = %897
  unreachable

899:                                              ; preds = %878
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %7, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %8, align 4
  br label %907

903:                                              ; preds = %887
  %904 = landingpad { ptr, i32 }
          cleanup
  %905 = extractvalue { ptr, i32 } %904, 0
  store ptr %905, ptr %7, align 8
  %906 = extractvalue { ptr, i32 } %904, 1
  store i32 %906, ptr %8, align 4
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #7
  br label %907

907:                                              ; preds = %903, %899
  call void @llvm.lifetime.end.p0(i64 12, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #7
  br label %970

908:                                              ; preds = %893
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %7, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %8, align 4
  br label %931

912:                                              ; preds = %894
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %7, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %8, align 4
  br label %930

916:                                              ; preds = %895
  %917 = landingpad { ptr, i32 }
          cleanup
  %918 = extractvalue { ptr, i32 } %917, 0
  store ptr %918, ptr %7, align 8
  %919 = extractvalue { ptr, i32 } %917, 1
  store i32 %919, ptr %8, align 4
  br label %929

920:                                              ; preds = %896
  %921 = landingpad { ptr, i32 }
          cleanup
  %922 = extractvalue { ptr, i32 } %921, 0
  store ptr %922, ptr %7, align 8
  %923 = extractvalue { ptr, i32 } %921, 1
  store i32 %923, ptr %8, align 4
  br label %928

924:                                              ; preds = %897
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %7, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %928

928:                                              ; preds = %924, %920
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %929

929:                                              ; preds = %928, %916
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  br label %930

930:                                              ; preds = %929, %912
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %931

931:                                              ; preds = %930, %908
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  br label %970

932:                                              ; preds = %889
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %88) #7
  store i32 1, ptr %88, align 4, !tbaa !5
  %933 = getelementptr inbounds i32, ptr %88, i64 1
  store i32 2, ptr %933, align 4, !tbaa !5
  %934 = getelementptr inbounds i32, ptr %88, i64 2
  store i32 3, ptr %934, align 4, !tbaa !5
  %935 = getelementptr inbounds %"class.std::initializer_list", ptr %87, i32 0, i32 0
  store ptr %88, ptr %935, align 8, !tbaa !9
  %936 = getelementptr inbounds %"class.std::initializer_list", ptr %87, i32 0, i32 1
  store i64 3, ptr %936, align 8, !tbaa !13
  %937 = getelementptr inbounds { ptr, i64 }, ptr %87, i32 0, i32 0
  %938 = load ptr, ptr %937, align 8
  %939 = getelementptr inbounds { ptr, i64 }, ptr %87, i32 0, i32 1
  %940 = load i64, ptr %939, align 8
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr %938, i64 %940)
  call void @llvm.lifetime.end.p0(i64 12, ptr %88) #7
  %941 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %86, i32 noundef 0)
          to label %942 unwind label %971

942:                                              ; preds = %932
  store i32 -1, ptr %941, align 4, !tbaa !5
  %943 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %86, i32 noundef 1)
          to label %944 unwind label %971

944:                                              ; preds = %942
  store i32 5, ptr %943, align 4, !tbaa !5
  %945 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %86, i32 noundef 1)
          to label %946 unwind label %971

946:                                              ; preds = %944
  %947 = load i32, ptr %945, align 4, !tbaa !5
  %948 = add nsw i32 %947, 1
  %949 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %86, i32 noundef 2)
          to label %950 unwind label %971

950:                                              ; preds = %946
  store i32 %948, ptr %949, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %91) #7
  store i32 -1, ptr %91, align 4, !tbaa !5
  %951 = getelementptr inbounds i32, ptr %91, i64 1
  store i32 5, ptr %951, align 4, !tbaa !5
  %952 = getelementptr inbounds i32, ptr %91, i64 2
  store i32 6, ptr %952, align 4, !tbaa !5
  %953 = getelementptr inbounds %"class.std::initializer_list", ptr %90, i32 0, i32 0
  store ptr %91, ptr %953, align 8, !tbaa !9
  %954 = getelementptr inbounds %"class.std::initializer_list", ptr %90, i32 0, i32 1
  store i64 3, ptr %954, align 8, !tbaa !13
  %955 = getelementptr inbounds { ptr, i64 }, ptr %90, i32 0, i32 0
  %956 = load ptr, ptr %955, align 8
  %957 = getelementptr inbounds { ptr, i64 }, ptr %90, i32 0, i32 1
  %958 = load i64, ptr %957, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr %956, i64 %958)
          to label %959 unwind label %975

959:                                              ; preds = %950
  %960 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %961 unwind label %979

961:                                              ; preds = %959
  %962 = zext i1 %960 to i32
  %963 = icmp eq i32 %962, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #7
  br i1 %963, label %964, label %1008

964:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %965 unwind label %984

965:                                              ; preds = %964
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %966 unwind label %988

966:                                              ; preds = %965
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %967 unwind label %992

967:                                              ; preds = %966
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %968 unwind label %996

968:                                              ; preds = %967
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %98, i32 noundef 32) #8
          to label %969 unwind label %1000

969:                                              ; preds = %968
  unreachable

970:                                              ; preds = %931, %907, %877, %853, %824, %800, %769, %745
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #7
  br label %3147

971:                                              ; preds = %1134, %946, %944, %942, %932
  %972 = landingpad { ptr, i32 }
          cleanup
  %973 = extractvalue { ptr, i32 } %972, 0
  store ptr %973, ptr %7, align 8
  %974 = extractvalue { ptr, i32 } %972, 1
  store i32 %974, ptr %8, align 4
  br label %1209

975:                                              ; preds = %950
  %976 = landingpad { ptr, i32 }
          cleanup
  %977 = extractvalue { ptr, i32 } %976, 0
  store ptr %977, ptr %7, align 8
  %978 = extractvalue { ptr, i32 } %976, 1
  store i32 %978, ptr %8, align 4
  br label %983

979:                                              ; preds = %959
  %980 = landingpad { ptr, i32 }
          cleanup
  %981 = extractvalue { ptr, i32 } %980, 0
  store ptr %981, ptr %7, align 8
  %982 = extractvalue { ptr, i32 } %980, 1
  store i32 %982, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  br label %983

983:                                              ; preds = %979, %975
  call void @llvm.lifetime.end.p0(i64 12, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #7
  br label %1209

984:                                              ; preds = %964
  %985 = landingpad { ptr, i32 }
          cleanup
  %986 = extractvalue { ptr, i32 } %985, 0
  store ptr %986, ptr %7, align 8
  %987 = extractvalue { ptr, i32 } %985, 1
  store i32 %987, ptr %8, align 4
  br label %1007

988:                                              ; preds = %965
  %989 = landingpad { ptr, i32 }
          cleanup
  %990 = extractvalue { ptr, i32 } %989, 0
  store ptr %990, ptr %7, align 8
  %991 = extractvalue { ptr, i32 } %989, 1
  store i32 %991, ptr %8, align 4
  br label %1006

992:                                              ; preds = %966
  %993 = landingpad { ptr, i32 }
          cleanup
  %994 = extractvalue { ptr, i32 } %993, 0
  store ptr %994, ptr %7, align 8
  %995 = extractvalue { ptr, i32 } %993, 1
  store i32 %995, ptr %8, align 4
  br label %1005

996:                                              ; preds = %967
  %997 = landingpad { ptr, i32 }
          cleanup
  %998 = extractvalue { ptr, i32 } %997, 0
  store ptr %998, ptr %7, align 8
  %999 = extractvalue { ptr, i32 } %997, 1
  store i32 %999, ptr %8, align 4
  br label %1004

1000:                                             ; preds = %968
  %1001 = landingpad { ptr, i32 }
          cleanup
  %1002 = extractvalue { ptr, i32 } %1001, 0
  store ptr %1002, ptr %7, align 8
  %1003 = extractvalue { ptr, i32 } %1001, 1
  store i32 %1003, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %1004

1004:                                             ; preds = %1000, %996
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %1005

1005:                                             ; preds = %1004, %992
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %1006

1006:                                             ; preds = %1005, %988
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1007

1007:                                             ; preds = %1006, %984
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #7
  br label %1209

1008:                                             ; preds = %961
  call void @llvm.lifetime.start.p0(i64 24, ptr %100) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %102) #7
  store i32 7, ptr %102, align 4, !tbaa !5
  %1009 = getelementptr inbounds i32, ptr %102, i64 1
  store i32 8, ptr %1009, align 4, !tbaa !5
  %1010 = getelementptr inbounds i32, ptr %102, i64 2
  store i32 -2, ptr %1010, align 4, !tbaa !5
  %1011 = getelementptr inbounds i32, ptr %102, i64 3
  store i32 3, ptr %1011, align 4, !tbaa !5
  %1012 = getelementptr inbounds %"class.std::initializer_list", ptr %101, i32 0, i32 0
  store ptr %102, ptr %1012, align 8, !tbaa !9
  %1013 = getelementptr inbounds %"class.std::initializer_list", ptr %101, i32 0, i32 1
  store i64 4, ptr %1013, align 8, !tbaa !13
  %1014 = getelementptr inbounds { ptr, i64 }, ptr %101, i32 0, i32 0
  %1015 = load ptr, ptr %1014, align 8
  %1016 = getelementptr inbounds { ptr, i64 }, ptr %101, i32 0, i32 1
  %1017 = load i64, ptr %1016, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %100, ptr %1015, i64 %1017)
          to label %1018 unwind label %1040

1018:                                             ; preds = %1008
  %1019 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayIiEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #7
  store i32 7, ptr %105, align 4, !tbaa !5
  %1020 = getelementptr inbounds i32, ptr %105, i64 1
  store i32 8, ptr %1020, align 4, !tbaa !5
  %1021 = getelementptr inbounds i32, ptr %105, i64 2
  store i32 -2, ptr %1021, align 4, !tbaa !5
  %1022 = getelementptr inbounds i32, ptr %105, i64 3
  store i32 3, ptr %1022, align 4, !tbaa !5
  %1023 = getelementptr inbounds %"class.std::initializer_list", ptr %104, i32 0, i32 0
  store ptr %105, ptr %1023, align 8, !tbaa !9
  %1024 = getelementptr inbounds %"class.std::initializer_list", ptr %104, i32 0, i32 1
  store i64 4, ptr %1024, align 8, !tbaa !13
  %1025 = getelementptr inbounds { ptr, i64 }, ptr %104, i32 0, i32 0
  %1026 = load ptr, ptr %1025, align 8
  %1027 = getelementptr inbounds { ptr, i64 }, ptr %104, i32 0, i32 1
  %1028 = load i64, ptr %1027, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %103, ptr %1026, i64 %1028)
          to label %1029 unwind label %1044

1029:                                             ; preds = %1018
  %1030 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %1031 unwind label %1048

1031:                                             ; preds = %1029
  %1032 = zext i1 %1030 to i32
  %1033 = icmp eq i32 %1032, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %103) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #7
  br i1 %1033, label %1034, label %1077

1034:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %1035 unwind label %1053

1035:                                             ; preds = %1034
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %1036 unwind label %1057

1036:                                             ; preds = %1035
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %1037 unwind label %1061

1037:                                             ; preds = %1036
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %1038 unwind label %1065

1038:                                             ; preds = %1037
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %112, i32 noundef 34) #8
          to label %1039 unwind label %1069

1039:                                             ; preds = %1038
  unreachable

1040:                                             ; preds = %1008
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %7, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  br label %1209

1044:                                             ; preds = %1018
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %7, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %8, align 4
  br label %1052

1048:                                             ; preds = %1029
  %1049 = landingpad { ptr, i32 }
          cleanup
  %1050 = extractvalue { ptr, i32 } %1049, 0
  store ptr %1050, ptr %7, align 8
  %1051 = extractvalue { ptr, i32 } %1049, 1
  store i32 %1051, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %103) #7
  br label %1052

1052:                                             ; preds = %1048, %1044
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #7
  br label %1209

1053:                                             ; preds = %1034
  %1054 = landingpad { ptr, i32 }
          cleanup
  %1055 = extractvalue { ptr, i32 } %1054, 0
  store ptr %1055, ptr %7, align 8
  %1056 = extractvalue { ptr, i32 } %1054, 1
  store i32 %1056, ptr %8, align 4
  br label %1076

1057:                                             ; preds = %1035
  %1058 = landingpad { ptr, i32 }
          cleanup
  %1059 = extractvalue { ptr, i32 } %1058, 0
  store ptr %1059, ptr %7, align 8
  %1060 = extractvalue { ptr, i32 } %1058, 1
  store i32 %1060, ptr %8, align 4
  br label %1075

1061:                                             ; preds = %1036
  %1062 = landingpad { ptr, i32 }
          cleanup
  %1063 = extractvalue { ptr, i32 } %1062, 0
  store ptr %1063, ptr %7, align 8
  %1064 = extractvalue { ptr, i32 } %1062, 1
  store i32 %1064, ptr %8, align 4
  br label %1074

1065:                                             ; preds = %1037
  %1066 = landingpad { ptr, i32 }
          cleanup
  %1067 = extractvalue { ptr, i32 } %1066, 0
  store ptr %1067, ptr %7, align 8
  %1068 = extractvalue { ptr, i32 } %1066, 1
  store i32 %1068, ptr %8, align 4
  br label %1073

1069:                                             ; preds = %1038
  %1070 = landingpad { ptr, i32 }
          cleanup
  %1071 = extractvalue { ptr, i32 } %1070, 0
  store ptr %1071, ptr %7, align 8
  %1072 = extractvalue { ptr, i32 } %1070, 1
  store i32 %1072, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  br label %1073

1073:                                             ; preds = %1069, %1065
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %1074

1074:                                             ; preds = %1073, %1061
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1075

1075:                                             ; preds = %1074, %1057
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %1076

1076:                                             ; preds = %1075, %1053
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #7
  br label %1209

1077:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #7
  store i32 9, ptr %114, align 4, !tbaa !5
  %1078 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 4 dereferenceable(4) %114)
          to label %1079 unwind label %1097

1079:                                             ; preds = %1077
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %115) #7
  call void @llvm.lifetime.start.p0(i64 20, ptr %117) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %117, ptr align 4 @constinit, i64 20, i1 false), !tbaa.struct !19
  %1080 = getelementptr inbounds %"class.std::initializer_list", ptr %116, i32 0, i32 0
  store ptr %117, ptr %1080, align 8, !tbaa !9
  %1081 = getelementptr inbounds %"class.std::initializer_list", ptr %116, i32 0, i32 1
  store i64 5, ptr %1081, align 8, !tbaa !13
  %1082 = getelementptr inbounds { ptr, i64 }, ptr %116, i32 0, i32 0
  %1083 = load ptr, ptr %1082, align 8
  %1084 = getelementptr inbounds { ptr, i64 }, ptr %116, i32 0, i32 1
  %1085 = load i64, ptr %1084, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %115, ptr %1083, i64 %1085)
          to label %1086 unwind label %1101

1086:                                             ; preds = %1079
  %1087 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 8 dereferenceable(24) %115)
          to label %1088 unwind label %1105

1088:                                             ; preds = %1086
  %1089 = zext i1 %1087 to i32
  %1090 = icmp eq i32 %1089, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #7
  call void @llvm.lifetime.end.p0(i64 20, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %115) #7
  br i1 %1090, label %1091, label %1134

1091:                                             ; preds = %1088
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %1092 unwind label %1110

1092:                                             ; preds = %1091
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %1093 unwind label %1114

1093:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %1094 unwind label %1118

1094:                                             ; preds = %1093
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %1095 unwind label %1122

1095:                                             ; preds = %1094
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %124, i32 noundef 36) #8
          to label %1096 unwind label %1126

1096:                                             ; preds = %1095
  unreachable

1097:                                             ; preds = %1077
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %7, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  br label %1209

1101:                                             ; preds = %1079
  %1102 = landingpad { ptr, i32 }
          cleanup
  %1103 = extractvalue { ptr, i32 } %1102, 0
  store ptr %1103, ptr %7, align 8
  %1104 = extractvalue { ptr, i32 } %1102, 1
  store i32 %1104, ptr %8, align 4
  br label %1109

1105:                                             ; preds = %1086
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %7, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #7
  br label %1109

1109:                                             ; preds = %1105, %1101
  call void @llvm.lifetime.end.p0(i64 20, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %115) #7
  br label %1209

1110:                                             ; preds = %1091
  %1111 = landingpad { ptr, i32 }
          cleanup
  %1112 = extractvalue { ptr, i32 } %1111, 0
  store ptr %1112, ptr %7, align 8
  %1113 = extractvalue { ptr, i32 } %1111, 1
  store i32 %1113, ptr %8, align 4
  br label %1133

1114:                                             ; preds = %1092
  %1115 = landingpad { ptr, i32 }
          cleanup
  %1116 = extractvalue { ptr, i32 } %1115, 0
  store ptr %1116, ptr %7, align 8
  %1117 = extractvalue { ptr, i32 } %1115, 1
  store i32 %1117, ptr %8, align 4
  br label %1132

1118:                                             ; preds = %1093
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %7, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %8, align 4
  br label %1131

1122:                                             ; preds = %1094
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %7, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %8, align 4
  br label %1130

1126:                                             ; preds = %1095
  %1127 = landingpad { ptr, i32 }
          cleanup
  %1128 = extractvalue { ptr, i32 } %1127, 0
  store ptr %1128, ptr %7, align 8
  %1129 = extractvalue { ptr, i32 } %1127, 1
  store i32 %1129, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1130

1130:                                             ; preds = %1126, %1122
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  br label %1131

1131:                                             ; preds = %1130, %1118
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #7
  br label %1132

1132:                                             ; preds = %1131, %1114
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %1133

1133:                                             ; preds = %1132, %1110
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  br label %1209

1134:                                             ; preds = %1088
  %1135 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayIiE12resize_clearEi(ptr noundef nonnull align 8 dereferenceable(24) %86, i32 noundef 2)
          to label %1136 unwind label %971

1136:                                             ; preds = %1134
  call void @llvm.lifetime.start.p0(i64 24, ptr %126) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #7
  store i32 0, ptr %128, align 4, !tbaa !5
  %1137 = getelementptr inbounds i32, ptr %128, i64 1
  store i32 0, ptr %1137, align 4, !tbaa !5
  %1138 = getelementptr inbounds %"class.std::initializer_list", ptr %127, i32 0, i32 0
  store ptr %128, ptr %1138, align 8, !tbaa !9
  %1139 = getelementptr inbounds %"class.std::initializer_list", ptr %127, i32 0, i32 1
  store i64 2, ptr %1139, align 8, !tbaa !13
  %1140 = getelementptr inbounds { ptr, i64 }, ptr %127, i32 0, i32 0
  %1141 = load ptr, ptr %1140, align 8
  %1142 = getelementptr inbounds { ptr, i64 }, ptr %127, i32 0, i32 1
  %1143 = load i64, ptr %1142, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %126, ptr %1141, i64 %1143)
          to label %1144 unwind label %1155

1144:                                             ; preds = %1136
  %1145 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 8 dereferenceable(24) %126)
          to label %1146 unwind label %1159

1146:                                             ; preds = %1144
  %1147 = zext i1 %1145 to i32
  %1148 = icmp eq i32 %1147, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %126) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %126) #7
  br i1 %1148, label %1149, label %1188

1149:                                             ; preds = %1146
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %130) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %130)
          to label %1150 unwind label %1164

1150:                                             ; preds = %1149
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %132) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %132)
          to label %1151 unwind label %1168

1151:                                             ; preds = %1150
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %134) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %1152 unwind label %1172

1152:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %136) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %1153 unwind label %1176

1153:                                             ; preds = %1152
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %135, i32 noundef 38) #8
          to label %1154 unwind label %1180

1154:                                             ; preds = %1153
  unreachable

1155:                                             ; preds = %1136
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %7, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %8, align 4
  br label %1163

1159:                                             ; preds = %1144
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %7, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %126) #7
  br label %1163

1163:                                             ; preds = %1159, %1155
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %126) #7
  br label %1209

1164:                                             ; preds = %1149
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %7, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %8, align 4
  br label %1187

1168:                                             ; preds = %1150
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %7, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %8, align 4
  br label %1186

1172:                                             ; preds = %1151
  %1173 = landingpad { ptr, i32 }
          cleanup
  %1174 = extractvalue { ptr, i32 } %1173, 0
  store ptr %1174, ptr %7, align 8
  %1175 = extractvalue { ptr, i32 } %1173, 1
  store i32 %1175, ptr %8, align 4
  br label %1185

1176:                                             ; preds = %1152
  %1177 = landingpad { ptr, i32 }
          cleanup
  %1178 = extractvalue { ptr, i32 } %1177, 0
  store ptr %1178, ptr %7, align 8
  %1179 = extractvalue { ptr, i32 } %1177, 1
  store i32 %1179, ptr %8, align 4
  br label %1184

1180:                                             ; preds = %1153
  %1181 = landingpad { ptr, i32 }
          cleanup
  %1182 = extractvalue { ptr, i32 } %1181, 0
  store ptr %1182, ptr %7, align 8
  %1183 = extractvalue { ptr, i32 } %1181, 1
  store i32 %1183, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  br label %1184

1184:                                             ; preds = %1180, %1176
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1185

1185:                                             ; preds = %1184, %1172
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  br label %1186

1186:                                             ; preds = %1185, %1168
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #7
  br label %1187

1187:                                             ; preds = %1186, %1164
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #7
  br label %1209

1188:                                             ; preds = %1146
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %137) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %139) #7
  store i32 1, ptr %139, align 4, !tbaa !5
  %1189 = getelementptr inbounds i32, ptr %139, i64 1
  store i32 2, ptr %1189, align 4, !tbaa !5
  %1190 = getelementptr inbounds i32, ptr %139, i64 2
  store i32 3, ptr %1190, align 4, !tbaa !5
  %1191 = getelementptr inbounds %"class.std::initializer_list", ptr %138, i32 0, i32 0
  store ptr %139, ptr %1191, align 8, !tbaa !9
  %1192 = getelementptr inbounds %"class.std::initializer_list", ptr %138, i32 0, i32 1
  store i64 3, ptr %1192, align 8, !tbaa !13
  %1193 = getelementptr inbounds { ptr, i64 }, ptr %138, i32 0, i32 0
  %1194 = load ptr, ptr %1193, align 8
  %1195 = getelementptr inbounds { ptr, i64 }, ptr %138, i32 0, i32 1
  %1196 = load i64, ptr %1195, align 8
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %137, ptr %1194, i64 %1196)
  call void @llvm.lifetime.end.p0(i64 12, ptr %139) #7
  %1197 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 0)
          to label %1198 unwind label %1210

1198:                                             ; preds = %1188
  %1199 = load i32, ptr %1197, align 4, !tbaa !5
  %1200 = icmp eq i32 %1199, 1
  %1201 = zext i1 %1200 to i32
  %1202 = icmp eq i32 %1201, 0
  br i1 %1202, label %1203, label %1238

1203:                                             ; preds = %1198
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %141) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %1204 unwind label %1214

1204:                                             ; preds = %1203
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %1205 unwind label %1218

1205:                                             ; preds = %1204
  call void @llvm.lifetime.start.p0(i64 32, ptr %144) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %145) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %1206 unwind label %1222

1206:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 32, ptr %146) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %1207 unwind label %1226

1207:                                             ; preds = %1206
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull align 8 dereferenceable(32) %146, i32 noundef 43) #8
          to label %1208 unwind label %1230

1208:                                             ; preds = %1207
  unreachable

1209:                                             ; preds = %1187, %1163, %1133, %1109, %1097, %1076, %1052, %1040, %1007, %983, %971
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %86) #7
  br label %3147

1210:                                             ; preds = %1497, %1460, %1423, %1386, %1349, %1312, %1275, %1238, %1188
  %1211 = landingpad { ptr, i32 }
          cleanup
  %1212 = extractvalue { ptr, i32 } %1211, 0
  store ptr %1212, ptr %7, align 8
  %1213 = extractvalue { ptr, i32 } %1211, 1
  store i32 %1213, ptr %8, align 4
  br label %1568

1214:                                             ; preds = %1203
  %1215 = landingpad { ptr, i32 }
          cleanup
  %1216 = extractvalue { ptr, i32 } %1215, 0
  store ptr %1216, ptr %7, align 8
  %1217 = extractvalue { ptr, i32 } %1215, 1
  store i32 %1217, ptr %8, align 4
  br label %1237

1218:                                             ; preds = %1204
  %1219 = landingpad { ptr, i32 }
          cleanup
  %1220 = extractvalue { ptr, i32 } %1219, 0
  store ptr %1220, ptr %7, align 8
  %1221 = extractvalue { ptr, i32 } %1219, 1
  store i32 %1221, ptr %8, align 4
  br label %1236

1222:                                             ; preds = %1205
  %1223 = landingpad { ptr, i32 }
          cleanup
  %1224 = extractvalue { ptr, i32 } %1223, 0
  store ptr %1224, ptr %7, align 8
  %1225 = extractvalue { ptr, i32 } %1223, 1
  store i32 %1225, ptr %8, align 4
  br label %1235

1226:                                             ; preds = %1206
  %1227 = landingpad { ptr, i32 }
          cleanup
  %1228 = extractvalue { ptr, i32 } %1227, 0
  store ptr %1228, ptr %7, align 8
  %1229 = extractvalue { ptr, i32 } %1227, 1
  store i32 %1229, ptr %8, align 4
  br label %1234

1230:                                             ; preds = %1207
  %1231 = landingpad { ptr, i32 }
          cleanup
  %1232 = extractvalue { ptr, i32 } %1231, 0
  store ptr %1232, ptr %7, align 8
  %1233 = extractvalue { ptr, i32 } %1231, 1
  store i32 %1233, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #7
  br label %1234

1234:                                             ; preds = %1230, %1226
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #7
  br label %1235

1235:                                             ; preds = %1234, %1222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %1236

1236:                                             ; preds = %1235, %1218
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1237

1237:                                             ; preds = %1236, %1214
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %141) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  br label %1568

1238:                                             ; preds = %1198
  %1239 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 0)
          to label %1240 unwind label %1210

1240:                                             ; preds = %1238
  %1241 = load i32, ptr %1239, align 4, !tbaa !5
  %1242 = icmp eq i32 %1241, 1
  %1243 = zext i1 %1242 to i32
  %1244 = icmp eq i32 %1243, 0
  br i1 %1244, label %1245, label %1275

1245:                                             ; preds = %1240
  call void @llvm.lifetime.start.p0(i64 32, ptr %148) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %149) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %149)
          to label %1246 unwind label %1251

1246:                                             ; preds = %1245
  call void @llvm.lifetime.start.p0(i64 32, ptr %150) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %151) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %1247 unwind label %1255

1247:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %153) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %1248 unwind label %1259

1248:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %1249 unwind label %1263

1249:                                             ; preds = %1248
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull align 8 dereferenceable(32) %154, i32 noundef 43) #8
          to label %1250 unwind label %1267

1250:                                             ; preds = %1249
  unreachable

1251:                                             ; preds = %1245
  %1252 = landingpad { ptr, i32 }
          cleanup
  %1253 = extractvalue { ptr, i32 } %1252, 0
  store ptr %1253, ptr %7, align 8
  %1254 = extractvalue { ptr, i32 } %1252, 1
  store i32 %1254, ptr %8, align 4
  br label %1274

1255:                                             ; preds = %1246
  %1256 = landingpad { ptr, i32 }
          cleanup
  %1257 = extractvalue { ptr, i32 } %1256, 0
  store ptr %1257, ptr %7, align 8
  %1258 = extractvalue { ptr, i32 } %1256, 1
  store i32 %1258, ptr %8, align 4
  br label %1273

1259:                                             ; preds = %1247
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %7, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %8, align 4
  br label %1272

1263:                                             ; preds = %1248
  %1264 = landingpad { ptr, i32 }
          cleanup
  %1265 = extractvalue { ptr, i32 } %1264, 0
  store ptr %1265, ptr %7, align 8
  %1266 = extractvalue { ptr, i32 } %1264, 1
  store i32 %1266, ptr %8, align 4
  br label %1271

1267:                                             ; preds = %1249
  %1268 = landingpad { ptr, i32 }
          cleanup
  %1269 = extractvalue { ptr, i32 } %1268, 0
  store ptr %1269, ptr %7, align 8
  %1270 = extractvalue { ptr, i32 } %1268, 1
  store i32 %1270, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #7
  br label %1271

1271:                                             ; preds = %1267, %1263
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #7
  br label %1272

1272:                                             ; preds = %1271, %1259
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  br label %1273

1273:                                             ; preds = %1272, %1255
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %1274

1274:                                             ; preds = %1273, %1251
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #7
  br label %1568

1275:                                             ; preds = %1240
  %1276 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 0)
          to label %1277 unwind label %1210

1277:                                             ; preds = %1275
  %1278 = load i32, ptr %1276, align 4, !tbaa !5
  %1279 = icmp eq i32 %1278, 1
  %1280 = zext i1 %1279 to i32
  %1281 = icmp eq i32 %1280, 0
  br i1 %1281, label %1282, label %1312

1282:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 32, ptr %156) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %157) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %1283 unwind label %1288

1283:                                             ; preds = %1282
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %1284 unwind label %1292

1284:                                             ; preds = %1283
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %161) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %1285 unwind label %1296

1285:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %1286 unwind label %1300

1286:                                             ; preds = %1285
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(32) %162, i32 noundef 43) #8
          to label %1287 unwind label %1304

1287:                                             ; preds = %1286
  unreachable

1288:                                             ; preds = %1282
  %1289 = landingpad { ptr, i32 }
          cleanup
  %1290 = extractvalue { ptr, i32 } %1289, 0
  store ptr %1290, ptr %7, align 8
  %1291 = extractvalue { ptr, i32 } %1289, 1
  store i32 %1291, ptr %8, align 4
  br label %1311

1292:                                             ; preds = %1283
  %1293 = landingpad { ptr, i32 }
          cleanup
  %1294 = extractvalue { ptr, i32 } %1293, 0
  store ptr %1294, ptr %7, align 8
  %1295 = extractvalue { ptr, i32 } %1293, 1
  store i32 %1295, ptr %8, align 4
  br label %1310

1296:                                             ; preds = %1284
  %1297 = landingpad { ptr, i32 }
          cleanup
  %1298 = extractvalue { ptr, i32 } %1297, 0
  store ptr %1298, ptr %7, align 8
  %1299 = extractvalue { ptr, i32 } %1297, 1
  store i32 %1299, ptr %8, align 4
  br label %1309

1300:                                             ; preds = %1285
  %1301 = landingpad { ptr, i32 }
          cleanup
  %1302 = extractvalue { ptr, i32 } %1301, 0
  store ptr %1302, ptr %7, align 8
  %1303 = extractvalue { ptr, i32 } %1301, 1
  store i32 %1303, ptr %8, align 4
  br label %1308

1304:                                             ; preds = %1286
  %1305 = landingpad { ptr, i32 }
          cleanup
  %1306 = extractvalue { ptr, i32 } %1305, 0
  store ptr %1306, ptr %7, align 8
  %1307 = extractvalue { ptr, i32 } %1305, 1
  store i32 %1307, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #7
  br label %1308

1308:                                             ; preds = %1304, %1300
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #7
  br label %1309

1309:                                             ; preds = %1308, %1296
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  br label %1310

1310:                                             ; preds = %1309, %1292
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1311

1311:                                             ; preds = %1310, %1288
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #7
  br label %1568

1312:                                             ; preds = %1277
  %1313 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 1)
          to label %1314 unwind label %1210

1314:                                             ; preds = %1312
  %1315 = load i32, ptr %1313, align 4, !tbaa !5
  %1316 = icmp eq i32 %1315, 2
  %1317 = zext i1 %1316 to i32
  %1318 = icmp eq i32 %1317, 0
  br i1 %1318, label %1319, label %1349

1319:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 32, ptr %164) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %165) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %165)
          to label %1320 unwind label %1325

1320:                                             ; preds = %1319
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %167)
          to label %1321 unwind label %1329

1321:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %169)
          to label %1322 unwind label %1333

1322:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 32, ptr %170) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %171)
          to label %1323 unwind label %1337

1323:                                             ; preds = %1322
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef nonnull align 8 dereferenceable(32) %170, i32 noundef 44) #8
          to label %1324 unwind label %1341

1324:                                             ; preds = %1323
  unreachable

1325:                                             ; preds = %1319
  %1326 = landingpad { ptr, i32 }
          cleanup
  %1327 = extractvalue { ptr, i32 } %1326, 0
  store ptr %1327, ptr %7, align 8
  %1328 = extractvalue { ptr, i32 } %1326, 1
  store i32 %1328, ptr %8, align 4
  br label %1348

1329:                                             ; preds = %1320
  %1330 = landingpad { ptr, i32 }
          cleanup
  %1331 = extractvalue { ptr, i32 } %1330, 0
  store ptr %1331, ptr %7, align 8
  %1332 = extractvalue { ptr, i32 } %1330, 1
  store i32 %1332, ptr %8, align 4
  br label %1347

1333:                                             ; preds = %1321
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %7, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %8, align 4
  br label %1346

1337:                                             ; preds = %1322
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %7, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %8, align 4
  br label %1345

1341:                                             ; preds = %1323
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %7, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #7
  br label %1345

1345:                                             ; preds = %1341, %1337
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  br label %1346

1346:                                             ; preds = %1345, %1333
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %1347

1347:                                             ; preds = %1346, %1329
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %1348

1348:                                             ; preds = %1347, %1325
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #7
  br label %1568

1349:                                             ; preds = %1314
  %1350 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 1)
          to label %1351 unwind label %1210

1351:                                             ; preds = %1349
  %1352 = load i32, ptr %1350, align 4, !tbaa !5
  %1353 = icmp eq i32 %1352, 2
  %1354 = zext i1 %1353 to i32
  %1355 = icmp eq i32 %1354, 0
  br i1 %1355, label %1356, label %1386

1356:                                             ; preds = %1351
  call void @llvm.lifetime.start.p0(i64 32, ptr %172) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %1357 unwind label %1362

1357:                                             ; preds = %1356
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %175) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %1358 unwind label %1366

1358:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 32, ptr %176) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %177) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %177)
          to label %1359 unwind label %1370

1359:                                             ; preds = %1358
  call void @llvm.lifetime.start.p0(i64 32, ptr %178) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %1360 unwind label %1374

1360:                                             ; preds = %1359
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull align 8 dereferenceable(32) %178, i32 noundef 44) #8
          to label %1361 unwind label %1378

1361:                                             ; preds = %1360
  unreachable

1362:                                             ; preds = %1356
  %1363 = landingpad { ptr, i32 }
          cleanup
  %1364 = extractvalue { ptr, i32 } %1363, 0
  store ptr %1364, ptr %7, align 8
  %1365 = extractvalue { ptr, i32 } %1363, 1
  store i32 %1365, ptr %8, align 4
  br label %1385

1366:                                             ; preds = %1357
  %1367 = landingpad { ptr, i32 }
          cleanup
  %1368 = extractvalue { ptr, i32 } %1367, 0
  store ptr %1368, ptr %7, align 8
  %1369 = extractvalue { ptr, i32 } %1367, 1
  store i32 %1369, ptr %8, align 4
  br label %1384

1370:                                             ; preds = %1358
  %1371 = landingpad { ptr, i32 }
          cleanup
  %1372 = extractvalue { ptr, i32 } %1371, 0
  store ptr %1372, ptr %7, align 8
  %1373 = extractvalue { ptr, i32 } %1371, 1
  store i32 %1373, ptr %8, align 4
  br label %1383

1374:                                             ; preds = %1359
  %1375 = landingpad { ptr, i32 }
          cleanup
  %1376 = extractvalue { ptr, i32 } %1375, 0
  store ptr %1376, ptr %7, align 8
  %1377 = extractvalue { ptr, i32 } %1375, 1
  store i32 %1377, ptr %8, align 4
  br label %1382

1378:                                             ; preds = %1360
  %1379 = landingpad { ptr, i32 }
          cleanup
  %1380 = extractvalue { ptr, i32 } %1379, 0
  store ptr %1380, ptr %7, align 8
  %1381 = extractvalue { ptr, i32 } %1379, 1
  store i32 %1381, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #7
  br label %1382

1382:                                             ; preds = %1378, %1374
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #7
  br label %1383

1383:                                             ; preds = %1382, %1370
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #7
  br label %1384

1384:                                             ; preds = %1383, %1366
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %1385

1385:                                             ; preds = %1384, %1362
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #7
  br label %1568

1386:                                             ; preds = %1351
  %1387 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 1)
          to label %1388 unwind label %1210

1388:                                             ; preds = %1386
  %1389 = load i32, ptr %1387, align 4, !tbaa !5
  %1390 = icmp eq i32 %1389, 2
  %1391 = zext i1 %1390 to i32
  %1392 = icmp eq i32 %1391, 0
  br i1 %1392, label %1393, label %1423

1393:                                             ; preds = %1388
  call void @llvm.lifetime.start.p0(i64 32, ptr %180) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %181) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %181)
          to label %1394 unwind label %1399

1394:                                             ; preds = %1393
  call void @llvm.lifetime.start.p0(i64 32, ptr %182) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %183) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %183)
          to label %1395 unwind label %1403

1395:                                             ; preds = %1394
  call void @llvm.lifetime.start.p0(i64 32, ptr %184) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %185) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %1396 unwind label %1407

1396:                                             ; preds = %1395
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %1397 unwind label %1411

1397:                                             ; preds = %1396
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull align 8 dereferenceable(32) %186, i32 noundef 44) #8
          to label %1398 unwind label %1415

1398:                                             ; preds = %1397
  unreachable

1399:                                             ; preds = %1393
  %1400 = landingpad { ptr, i32 }
          cleanup
  %1401 = extractvalue { ptr, i32 } %1400, 0
  store ptr %1401, ptr %7, align 8
  %1402 = extractvalue { ptr, i32 } %1400, 1
  store i32 %1402, ptr %8, align 4
  br label %1422

1403:                                             ; preds = %1394
  %1404 = landingpad { ptr, i32 }
          cleanup
  %1405 = extractvalue { ptr, i32 } %1404, 0
  store ptr %1405, ptr %7, align 8
  %1406 = extractvalue { ptr, i32 } %1404, 1
  store i32 %1406, ptr %8, align 4
  br label %1421

1407:                                             ; preds = %1395
  %1408 = landingpad { ptr, i32 }
          cleanup
  %1409 = extractvalue { ptr, i32 } %1408, 0
  store ptr %1409, ptr %7, align 8
  %1410 = extractvalue { ptr, i32 } %1408, 1
  store i32 %1410, ptr %8, align 4
  br label %1420

1411:                                             ; preds = %1396
  %1412 = landingpad { ptr, i32 }
          cleanup
  %1413 = extractvalue { ptr, i32 } %1412, 0
  store ptr %1413, ptr %7, align 8
  %1414 = extractvalue { ptr, i32 } %1412, 1
  store i32 %1414, ptr %8, align 4
  br label %1419

1415:                                             ; preds = %1397
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %7, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #7
  br label %1419

1419:                                             ; preds = %1415, %1411
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #7
  br label %1420

1420:                                             ; preds = %1419, %1407
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #7
  br label %1421

1421:                                             ; preds = %1420, %1403
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %183) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %1422

1422:                                             ; preds = %1421, %1399
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %181) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #7
  br label %1568

1423:                                             ; preds = %1388
  %1424 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 2)
          to label %1425 unwind label %1210

1425:                                             ; preds = %1423
  %1426 = load i32, ptr %1424, align 4, !tbaa !5
  %1427 = icmp eq i32 %1426, 3
  %1428 = zext i1 %1427 to i32
  %1429 = icmp eq i32 %1428, 0
  br i1 %1429, label %1430, label %1460

1430:                                             ; preds = %1425
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %189) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %189)
          to label %1431 unwind label %1436

1431:                                             ; preds = %1430
  call void @llvm.lifetime.start.p0(i64 32, ptr %190) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %191) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %1432 unwind label %1440

1432:                                             ; preds = %1431
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %193) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1433 unwind label %1444

1433:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 32, ptr %194) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %195) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %195)
          to label %1434 unwind label %1448

1434:                                             ; preds = %1433
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull align 8 dereferenceable(32) %194, i32 noundef 45) #8
          to label %1435 unwind label %1452

1435:                                             ; preds = %1434
  unreachable

1436:                                             ; preds = %1430
  %1437 = landingpad { ptr, i32 }
          cleanup
  %1438 = extractvalue { ptr, i32 } %1437, 0
  store ptr %1438, ptr %7, align 8
  %1439 = extractvalue { ptr, i32 } %1437, 1
  store i32 %1439, ptr %8, align 4
  br label %1459

1440:                                             ; preds = %1431
  %1441 = landingpad { ptr, i32 }
          cleanup
  %1442 = extractvalue { ptr, i32 } %1441, 0
  store ptr %1442, ptr %7, align 8
  %1443 = extractvalue { ptr, i32 } %1441, 1
  store i32 %1443, ptr %8, align 4
  br label %1458

1444:                                             ; preds = %1432
  %1445 = landingpad { ptr, i32 }
          cleanup
  %1446 = extractvalue { ptr, i32 } %1445, 0
  store ptr %1446, ptr %7, align 8
  %1447 = extractvalue { ptr, i32 } %1445, 1
  store i32 %1447, ptr %8, align 4
  br label %1457

1448:                                             ; preds = %1433
  %1449 = landingpad { ptr, i32 }
          cleanup
  %1450 = extractvalue { ptr, i32 } %1449, 0
  store ptr %1450, ptr %7, align 8
  %1451 = extractvalue { ptr, i32 } %1449, 1
  store i32 %1451, ptr %8, align 4
  br label %1456

1452:                                             ; preds = %1434
  %1453 = landingpad { ptr, i32 }
          cleanup
  %1454 = extractvalue { ptr, i32 } %1453, 0
  store ptr %1454, ptr %7, align 8
  %1455 = extractvalue { ptr, i32 } %1453, 1
  store i32 %1455, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #7
  br label %1456

1456:                                             ; preds = %1452, %1448
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #7
  br label %1457

1457:                                             ; preds = %1456, %1444
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #7
  br label %1458

1458:                                             ; preds = %1457, %1440
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %1459

1459:                                             ; preds = %1458, %1436
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #7
  br label %1568

1460:                                             ; preds = %1425
  %1461 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 2)
          to label %1462 unwind label %1210

1462:                                             ; preds = %1460
  %1463 = load i32, ptr %1461, align 4, !tbaa !5
  %1464 = icmp eq i32 %1463, 3
  %1465 = zext i1 %1464 to i32
  %1466 = icmp eq i32 %1465, 0
  br i1 %1466, label %1467, label %1497

1467:                                             ; preds = %1462
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %197) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %1468 unwind label %1473

1468:                                             ; preds = %1467
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %199) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %1469 unwind label %1477

1469:                                             ; preds = %1468
  call void @llvm.lifetime.start.p0(i64 32, ptr %200) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %201) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %1470 unwind label %1481

1470:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 32, ptr %202) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %203)
          to label %1471 unwind label %1485

1471:                                             ; preds = %1470
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull align 8 dereferenceable(32) %202, i32 noundef 45) #8
          to label %1472 unwind label %1489

1472:                                             ; preds = %1471
  unreachable

1473:                                             ; preds = %1467
  %1474 = landingpad { ptr, i32 }
          cleanup
  %1475 = extractvalue { ptr, i32 } %1474, 0
  store ptr %1475, ptr %7, align 8
  %1476 = extractvalue { ptr, i32 } %1474, 1
  store i32 %1476, ptr %8, align 4
  br label %1496

1477:                                             ; preds = %1468
  %1478 = landingpad { ptr, i32 }
          cleanup
  %1479 = extractvalue { ptr, i32 } %1478, 0
  store ptr %1479, ptr %7, align 8
  %1480 = extractvalue { ptr, i32 } %1478, 1
  store i32 %1480, ptr %8, align 4
  br label %1495

1481:                                             ; preds = %1469
  %1482 = landingpad { ptr, i32 }
          cleanup
  %1483 = extractvalue { ptr, i32 } %1482, 0
  store ptr %1483, ptr %7, align 8
  %1484 = extractvalue { ptr, i32 } %1482, 1
  store i32 %1484, ptr %8, align 4
  br label %1494

1485:                                             ; preds = %1470
  %1486 = landingpad { ptr, i32 }
          cleanup
  %1487 = extractvalue { ptr, i32 } %1486, 0
  store ptr %1487, ptr %7, align 8
  %1488 = extractvalue { ptr, i32 } %1486, 1
  store i32 %1488, ptr %8, align 4
  br label %1493

1489:                                             ; preds = %1471
  %1490 = landingpad { ptr, i32 }
          cleanup
  %1491 = extractvalue { ptr, i32 } %1490, 0
  store ptr %1491, ptr %7, align 8
  %1492 = extractvalue { ptr, i32 } %1490, 1
  store i32 %1492, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #7
  br label %1493

1493:                                             ; preds = %1489, %1485
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #7
  br label %1494

1494:                                             ; preds = %1493, %1481
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #7
  br label %1495

1495:                                             ; preds = %1494, %1477
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #7
  br label %1496

1496:                                             ; preds = %1495, %1473
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #7
  br label %1568

1497:                                             ; preds = %1462
  %1498 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 2)
          to label %1499 unwind label %1210

1499:                                             ; preds = %1497
  %1500 = load i32, ptr %1498, align 4, !tbaa !5
  %1501 = icmp eq i32 %1500, 3
  %1502 = zext i1 %1501 to i32
  %1503 = icmp eq i32 %1502, 0
  br i1 %1503, label %1504, label %1534

1504:                                             ; preds = %1499
  call void @llvm.lifetime.start.p0(i64 32, ptr %204) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %205) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %1505 unwind label %1510

1505:                                             ; preds = %1504
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %207) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %207)
          to label %1506 unwind label %1514

1506:                                             ; preds = %1505
  call void @llvm.lifetime.start.p0(i64 32, ptr %208) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %209) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %1507 unwind label %1518

1507:                                             ; preds = %1506
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %211) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %211)
          to label %1508 unwind label %1522

1508:                                             ; preds = %1507
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull align 8 dereferenceable(32) %210, i32 noundef 45) #8
          to label %1509 unwind label %1526

1509:                                             ; preds = %1508
  unreachable

1510:                                             ; preds = %1504
  %1511 = landingpad { ptr, i32 }
          cleanup
  %1512 = extractvalue { ptr, i32 } %1511, 0
  store ptr %1512, ptr %7, align 8
  %1513 = extractvalue { ptr, i32 } %1511, 1
  store i32 %1513, ptr %8, align 4
  br label %1533

1514:                                             ; preds = %1505
  %1515 = landingpad { ptr, i32 }
          cleanup
  %1516 = extractvalue { ptr, i32 } %1515, 0
  store ptr %1516, ptr %7, align 8
  %1517 = extractvalue { ptr, i32 } %1515, 1
  store i32 %1517, ptr %8, align 4
  br label %1532

1518:                                             ; preds = %1506
  %1519 = landingpad { ptr, i32 }
          cleanup
  %1520 = extractvalue { ptr, i32 } %1519, 0
  store ptr %1520, ptr %7, align 8
  %1521 = extractvalue { ptr, i32 } %1519, 1
  store i32 %1521, ptr %8, align 4
  br label %1531

1522:                                             ; preds = %1507
  %1523 = landingpad { ptr, i32 }
          cleanup
  %1524 = extractvalue { ptr, i32 } %1523, 0
  store ptr %1524, ptr %7, align 8
  %1525 = extractvalue { ptr, i32 } %1523, 1
  store i32 %1525, ptr %8, align 4
  br label %1530

1526:                                             ; preds = %1508
  %1527 = landingpad { ptr, i32 }
          cleanup
  %1528 = extractvalue { ptr, i32 } %1527, 0
  store ptr %1528, ptr %7, align 8
  %1529 = extractvalue { ptr, i32 } %1527, 1
  store i32 %1529, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #7
  br label %1530

1530:                                             ; preds = %1526, %1522
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  br label %1531

1531:                                             ; preds = %1530, %1518
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %209) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #7
  br label %1532

1532:                                             ; preds = %1531, %1514
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %1533

1533:                                             ; preds = %1532, %1510
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #7
  br label %1568

1534:                                             ; preds = %1499
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %137) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %137) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %212) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %214) #7
  store i32 1, ptr %214, align 4, !tbaa !5
  %1535 = getelementptr inbounds i32, ptr %214, i64 1
  store i32 2, ptr %1535, align 4, !tbaa !5
  %1536 = getelementptr inbounds i32, ptr %214, i64 2
  store i32 3, ptr %1536, align 4, !tbaa !5
  %1537 = getelementptr inbounds %"class.std::initializer_list", ptr %213, i32 0, i32 0
  store ptr %214, ptr %1537, align 8, !tbaa !9
  %1538 = getelementptr inbounds %"class.std::initializer_list", ptr %213, i32 0, i32 1
  store i64 3, ptr %1538, align 8, !tbaa !13
  %1539 = getelementptr inbounds { ptr, i64 }, ptr %213, i32 0, i32 0
  %1540 = load ptr, ptr %1539, align 8
  %1541 = getelementptr inbounds { ptr, i64 }, ptr %213, i32 0, i32 1
  %1542 = load i64, ptr %1541, align 8
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr %1540, i64 %1542)
  call void @llvm.lifetime.end.p0(i64 12, ptr %214) #7
  %1543 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 0)
          to label %1544 unwind label %1569

1544:                                             ; preds = %1534
  store i32 5, ptr %1543, align 4, !tbaa !5
  %1545 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 1)
          to label %1546 unwind label %1569

1546:                                             ; preds = %1544
  store i32 6, ptr %1545, align 4, !tbaa !5
  %1547 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 2)
          to label %1548 unwind label %1569

1548:                                             ; preds = %1546
  store i32 7, ptr %1547, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %215) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %217) #7
  store i32 5, ptr %217, align 4, !tbaa !5
  %1549 = getelementptr inbounds i32, ptr %217, i64 1
  store i32 6, ptr %1549, align 4, !tbaa !5
  %1550 = getelementptr inbounds i32, ptr %217, i64 2
  store i32 7, ptr %1550, align 4, !tbaa !5
  %1551 = getelementptr inbounds %"class.std::initializer_list", ptr %216, i32 0, i32 0
  store ptr %217, ptr %1551, align 8, !tbaa !9
  %1552 = getelementptr inbounds %"class.std::initializer_list", ptr %216, i32 0, i32 1
  store i64 3, ptr %1552, align 8, !tbaa !13
  %1553 = getelementptr inbounds { ptr, i64 }, ptr %216, i32 0, i32 0
  %1554 = load ptr, ptr %1553, align 8
  %1555 = getelementptr inbounds { ptr, i64 }, ptr %216, i32 0, i32 1
  %1556 = load i64, ptr %1555, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %215, ptr %1554, i64 %1556)
          to label %1557 unwind label %1573

1557:                                             ; preds = %1548
  %1558 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 8 dereferenceable(24) %215)
          to label %1559 unwind label %1577

1559:                                             ; preds = %1557
  %1560 = zext i1 %1558 to i32
  %1561 = icmp eq i32 %1560, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %215) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %215) #7
  br i1 %1561, label %1562, label %1606

1562:                                             ; preds = %1559
  call void @llvm.lifetime.start.p0(i64 32, ptr %218) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %219)
          to label %1563 unwind label %1582

1563:                                             ; preds = %1562
  call void @llvm.lifetime.start.p0(i64 32, ptr %220) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %221) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %221)
          to label %1564 unwind label %1586

1564:                                             ; preds = %1563
  call void @llvm.lifetime.start.p0(i64 32, ptr %222) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %223) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %1565 unwind label %1590

1565:                                             ; preds = %1564
  call void @llvm.lifetime.start.p0(i64 32, ptr %224) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %225) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %225)
          to label %1566 unwind label %1594

1566:                                             ; preds = %1565
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 8 dereferenceable(32) %224, i32 noundef 51) #8
          to label %1567 unwind label %1598

1567:                                             ; preds = %1566
  unreachable

1568:                                             ; preds = %1533, %1496, %1459, %1422, %1385, %1348, %1311, %1274, %1237, %1210
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %137) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %137) #7
  br label %3147

1569:                                             ; preds = %1669, %1667, %1665, %1610, %1608, %1606, %1546, %1544, %1534
  %1570 = landingpad { ptr, i32 }
          cleanup
  %1571 = extractvalue { ptr, i32 } %1570, 0
  store ptr %1571, ptr %7, align 8
  %1572 = extractvalue { ptr, i32 } %1570, 1
  store i32 %1572, ptr %8, align 4
  br label %1778

1573:                                             ; preds = %1548
  %1574 = landingpad { ptr, i32 }
          cleanup
  %1575 = extractvalue { ptr, i32 } %1574, 0
  store ptr %1575, ptr %7, align 8
  %1576 = extractvalue { ptr, i32 } %1574, 1
  store i32 %1576, ptr %8, align 4
  br label %1581

1577:                                             ; preds = %1557
  %1578 = landingpad { ptr, i32 }
          cleanup
  %1579 = extractvalue { ptr, i32 } %1578, 0
  store ptr %1579, ptr %7, align 8
  %1580 = extractvalue { ptr, i32 } %1578, 1
  store i32 %1580, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %215) #7
  br label %1581

1581:                                             ; preds = %1577, %1573
  call void @llvm.lifetime.end.p0(i64 12, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %215) #7
  br label %1778

1582:                                             ; preds = %1562
  %1583 = landingpad { ptr, i32 }
          cleanup
  %1584 = extractvalue { ptr, i32 } %1583, 0
  store ptr %1584, ptr %7, align 8
  %1585 = extractvalue { ptr, i32 } %1583, 1
  store i32 %1585, ptr %8, align 4
  br label %1605

1586:                                             ; preds = %1563
  %1587 = landingpad { ptr, i32 }
          cleanup
  %1588 = extractvalue { ptr, i32 } %1587, 0
  store ptr %1588, ptr %7, align 8
  %1589 = extractvalue { ptr, i32 } %1587, 1
  store i32 %1589, ptr %8, align 4
  br label %1604

1590:                                             ; preds = %1564
  %1591 = landingpad { ptr, i32 }
          cleanup
  %1592 = extractvalue { ptr, i32 } %1591, 0
  store ptr %1592, ptr %7, align 8
  %1593 = extractvalue { ptr, i32 } %1591, 1
  store i32 %1593, ptr %8, align 4
  br label %1603

1594:                                             ; preds = %1565
  %1595 = landingpad { ptr, i32 }
          cleanup
  %1596 = extractvalue { ptr, i32 } %1595, 0
  store ptr %1596, ptr %7, align 8
  %1597 = extractvalue { ptr, i32 } %1595, 1
  store i32 %1597, ptr %8, align 4
  br label %1602

1598:                                             ; preds = %1566
  %1599 = landingpad { ptr, i32 }
          cleanup
  %1600 = extractvalue { ptr, i32 } %1599, 0
  store ptr %1600, ptr %7, align 8
  %1601 = extractvalue { ptr, i32 } %1599, 1
  store i32 %1601, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  br label %1602

1602:                                             ; preds = %1598, %1594
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  br label %1603

1603:                                             ; preds = %1602, %1590
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %1604

1604:                                             ; preds = %1603, %1586
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %221) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #7
  br label %1605

1605:                                             ; preds = %1604, %1582
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #7
  br label %1778

1606:                                             ; preds = %1559
  %1607 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 0)
          to label %1608 unwind label %1569

1608:                                             ; preds = %1606
  store i32 2, ptr %1607, align 4, !tbaa !5
  %1609 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 1)
          to label %1610 unwind label %1569

1610:                                             ; preds = %1608
  store i32 1, ptr %1609, align 4, !tbaa !5
  %1611 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 2)
          to label %1612 unwind label %1569

1612:                                             ; preds = %1610
  store i32 -7, ptr %1611, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %226) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %228) #7
  store i32 2, ptr %228, align 4, !tbaa !5
  %1613 = getelementptr inbounds i32, ptr %228, i64 1
  store i32 1, ptr %1613, align 4, !tbaa !5
  %1614 = getelementptr inbounds i32, ptr %228, i64 2
  store i32 -7, ptr %1614, align 4, !tbaa !5
  %1615 = getelementptr inbounds %"class.std::initializer_list", ptr %227, i32 0, i32 0
  store ptr %228, ptr %1615, align 8, !tbaa !9
  %1616 = getelementptr inbounds %"class.std::initializer_list", ptr %227, i32 0, i32 1
  store i64 3, ptr %1616, align 8, !tbaa !13
  %1617 = getelementptr inbounds { ptr, i64 }, ptr %227, i32 0, i32 0
  %1618 = load ptr, ptr %1617, align 8
  %1619 = getelementptr inbounds { ptr, i64 }, ptr %227, i32 0, i32 1
  %1620 = load i64, ptr %1619, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %226, ptr %1618, i64 %1620)
          to label %1621 unwind label %1632

1621:                                             ; preds = %1612
  %1622 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 8 dereferenceable(24) %226)
          to label %1623 unwind label %1636

1623:                                             ; preds = %1621
  %1624 = zext i1 %1622 to i32
  %1625 = icmp eq i32 %1624, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %226) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %228) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %226) #7
  br i1 %1625, label %1626, label %1665

1626:                                             ; preds = %1623
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %230) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %230)
          to label %1627 unwind label %1641

1627:                                             ; preds = %1626
  call void @llvm.lifetime.start.p0(i64 32, ptr %231) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %232) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %232)
          to label %1628 unwind label %1645

1628:                                             ; preds = %1627
  call void @llvm.lifetime.start.p0(i64 32, ptr %233) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %234) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %234)
          to label %1629 unwind label %1649

1629:                                             ; preds = %1628
  call void @llvm.lifetime.start.p0(i64 32, ptr %235) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %236) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %236)
          to label %1630 unwind label %1653

1630:                                             ; preds = %1629
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef nonnull align 8 dereferenceable(32) %235, i32 noundef 53) #8
          to label %1631 unwind label %1657

1631:                                             ; preds = %1630
  unreachable

1632:                                             ; preds = %1612
  %1633 = landingpad { ptr, i32 }
          cleanup
  %1634 = extractvalue { ptr, i32 } %1633, 0
  store ptr %1634, ptr %7, align 8
  %1635 = extractvalue { ptr, i32 } %1633, 1
  store i32 %1635, ptr %8, align 4
  br label %1640

1636:                                             ; preds = %1621
  %1637 = landingpad { ptr, i32 }
          cleanup
  %1638 = extractvalue { ptr, i32 } %1637, 0
  store ptr %1638, ptr %7, align 8
  %1639 = extractvalue { ptr, i32 } %1637, 1
  store i32 %1639, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %226) #7
  br label %1640

1640:                                             ; preds = %1636, %1632
  call void @llvm.lifetime.end.p0(i64 12, ptr %228) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %226) #7
  br label %1778

1641:                                             ; preds = %1626
  %1642 = landingpad { ptr, i32 }
          cleanup
  %1643 = extractvalue { ptr, i32 } %1642, 0
  store ptr %1643, ptr %7, align 8
  %1644 = extractvalue { ptr, i32 } %1642, 1
  store i32 %1644, ptr %8, align 4
  br label %1664

1645:                                             ; preds = %1627
  %1646 = landingpad { ptr, i32 }
          cleanup
  %1647 = extractvalue { ptr, i32 } %1646, 0
  store ptr %1647, ptr %7, align 8
  %1648 = extractvalue { ptr, i32 } %1646, 1
  store i32 %1648, ptr %8, align 4
  br label %1663

1649:                                             ; preds = %1628
  %1650 = landingpad { ptr, i32 }
          cleanup
  %1651 = extractvalue { ptr, i32 } %1650, 0
  store ptr %1651, ptr %7, align 8
  %1652 = extractvalue { ptr, i32 } %1650, 1
  store i32 %1652, ptr %8, align 4
  br label %1662

1653:                                             ; preds = %1629
  %1654 = landingpad { ptr, i32 }
          cleanup
  %1655 = extractvalue { ptr, i32 } %1654, 0
  store ptr %1655, ptr %7, align 8
  %1656 = extractvalue { ptr, i32 } %1654, 1
  store i32 %1656, ptr %8, align 4
  br label %1661

1657:                                             ; preds = %1630
  %1658 = landingpad { ptr, i32 }
          cleanup
  %1659 = extractvalue { ptr, i32 } %1658, 0
  store ptr %1659, ptr %7, align 8
  %1660 = extractvalue { ptr, i32 } %1658, 1
  store i32 %1660, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  br label %1661

1661:                                             ; preds = %1657, %1653
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %236) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %235) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  br label %1662

1662:                                             ; preds = %1661, %1649
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #7
  br label %1663

1663:                                             ; preds = %1662, %1645
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %1664

1664:                                             ; preds = %1663, %1641
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #7
  br label %1778

1665:                                             ; preds = %1623
  %1666 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 0)
          to label %1667 unwind label %1569

1667:                                             ; preds = %1665
  store i32 -1, ptr %1666, align 4, !tbaa !5
  %1668 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 1)
          to label %1669 unwind label %1569

1669:                                             ; preds = %1667
  store i32 9, ptr %1668, align 4, !tbaa !5
  %1670 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 2)
          to label %1671 unwind label %1569

1671:                                             ; preds = %1669
  store i32 -7, ptr %1670, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %237) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %239) #7
  store i32 -1, ptr %239, align 4, !tbaa !5
  %1672 = getelementptr inbounds i32, ptr %239, i64 1
  store i32 9, ptr %1672, align 4, !tbaa !5
  %1673 = getelementptr inbounds i32, ptr %239, i64 2
  store i32 -7, ptr %1673, align 4, !tbaa !5
  %1674 = getelementptr inbounds %"class.std::initializer_list", ptr %238, i32 0, i32 0
  store ptr %239, ptr %1674, align 8, !tbaa !9
  %1675 = getelementptr inbounds %"class.std::initializer_list", ptr %238, i32 0, i32 1
  store i64 3, ptr %1675, align 8, !tbaa !13
  %1676 = getelementptr inbounds { ptr, i64 }, ptr %238, i32 0, i32 0
  %1677 = load ptr, ptr %1676, align 8
  %1678 = getelementptr inbounds { ptr, i64 }, ptr %238, i32 0, i32 1
  %1679 = load i64, ptr %1678, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %237, ptr %1677, i64 %1679)
          to label %1680 unwind label %1691

1680:                                             ; preds = %1671
  %1681 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 8 dereferenceable(24) %237)
          to label %1682 unwind label %1695

1682:                                             ; preds = %1680
  %1683 = zext i1 %1681 to i32
  %1684 = icmp eq i32 %1683, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %237) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %239) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %237) #7
  br i1 %1684, label %1685, label %1724

1685:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 32, ptr %240) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %241) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %241)
          to label %1686 unwind label %1700

1686:                                             ; preds = %1685
  call void @llvm.lifetime.start.p0(i64 32, ptr %242) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %243) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %243)
          to label %1687 unwind label %1704

1687:                                             ; preds = %1686
  call void @llvm.lifetime.start.p0(i64 32, ptr %244) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %245) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %245) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %245)
          to label %1688 unwind label %1708

1688:                                             ; preds = %1687
  call void @llvm.lifetime.start.p0(i64 32, ptr %246) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %247) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %247)
          to label %1689 unwind label %1712

1689:                                             ; preds = %1688
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef nonnull align 8 dereferenceable(32) %246, i32 noundef 55) #8
          to label %1690 unwind label %1716

1690:                                             ; preds = %1689
  unreachable

1691:                                             ; preds = %1671
  %1692 = landingpad { ptr, i32 }
          cleanup
  %1693 = extractvalue { ptr, i32 } %1692, 0
  store ptr %1693, ptr %7, align 8
  %1694 = extractvalue { ptr, i32 } %1692, 1
  store i32 %1694, ptr %8, align 4
  br label %1699

1695:                                             ; preds = %1680
  %1696 = landingpad { ptr, i32 }
          cleanup
  %1697 = extractvalue { ptr, i32 } %1696, 0
  store ptr %1697, ptr %7, align 8
  %1698 = extractvalue { ptr, i32 } %1696, 1
  store i32 %1698, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %237) #7
  br label %1699

1699:                                             ; preds = %1695, %1691
  call void @llvm.lifetime.end.p0(i64 12, ptr %239) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %237) #7
  br label %1778

1700:                                             ; preds = %1685
  %1701 = landingpad { ptr, i32 }
          cleanup
  %1702 = extractvalue { ptr, i32 } %1701, 0
  store ptr %1702, ptr %7, align 8
  %1703 = extractvalue { ptr, i32 } %1701, 1
  store i32 %1703, ptr %8, align 4
  br label %1723

1704:                                             ; preds = %1686
  %1705 = landingpad { ptr, i32 }
          cleanup
  %1706 = extractvalue { ptr, i32 } %1705, 0
  store ptr %1706, ptr %7, align 8
  %1707 = extractvalue { ptr, i32 } %1705, 1
  store i32 %1707, ptr %8, align 4
  br label %1722

1708:                                             ; preds = %1687
  %1709 = landingpad { ptr, i32 }
          cleanup
  %1710 = extractvalue { ptr, i32 } %1709, 0
  store ptr %1710, ptr %7, align 8
  %1711 = extractvalue { ptr, i32 } %1709, 1
  store i32 %1711, ptr %8, align 4
  br label %1721

1712:                                             ; preds = %1688
  %1713 = landingpad { ptr, i32 }
          cleanup
  %1714 = extractvalue { ptr, i32 } %1713, 0
  store ptr %1714, ptr %7, align 8
  %1715 = extractvalue { ptr, i32 } %1713, 1
  store i32 %1715, ptr %8, align 4
  br label %1720

1716:                                             ; preds = %1689
  %1717 = landingpad { ptr, i32 }
          cleanup
  %1718 = extractvalue { ptr, i32 } %1717, 0
  store ptr %1718, ptr %7, align 8
  %1719 = extractvalue { ptr, i32 } %1717, 1
  store i32 %1719, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #7
  br label %1720

1720:                                             ; preds = %1716, %1712
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #7
  br label %1721

1721:                                             ; preds = %1720, %1708
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %245) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %245) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %244) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  br label %1722

1722:                                             ; preds = %1721, %1704
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #7
  br label %1723

1723:                                             ; preds = %1722, %1700
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #7
  br label %1778

1724:                                             ; preds = %1682
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %212) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %212) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %248) #7
  call void @llvm.lifetime.start.p0(i64 72, ptr %250) #7
  store i1 true, ptr %258, align 1
  store ptr %250, ptr %251, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %253) #7
  store i32 1, ptr %253, align 4, !tbaa !5
  %1725 = getelementptr inbounds i32, ptr %253, i64 1
  store i32 2, ptr %1725, align 4, !tbaa !5
  %1726 = getelementptr inbounds %"class.std::initializer_list", ptr %252, i32 0, i32 0
  store ptr %253, ptr %1726, align 8, !tbaa !9
  %1727 = getelementptr inbounds %"class.std::initializer_list", ptr %252, i32 0, i32 1
  store i64 2, ptr %1727, align 8, !tbaa !13
  %1728 = getelementptr inbounds { ptr, i64 }, ptr %252, i32 0, i32 0
  %1729 = load ptr, ptr %1728, align 8
  %1730 = getelementptr inbounds { ptr, i64 }, ptr %252, i32 0, i32 1
  %1731 = load i64, ptr %1730, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %250, ptr %1729, i64 %1731)
          to label %1732 unwind label %1779

1732:                                             ; preds = %1724
  %1733 = getelementptr inbounds %"struct.cgp::numarray", ptr %250, i64 1
  store ptr %1733, ptr %251, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr %255) #7
  store i32 2, ptr %255, align 4, !tbaa !5
  %1734 = getelementptr inbounds i32, ptr %255, i64 1
  store i32 3, ptr %1734, align 4, !tbaa !5
  %1735 = getelementptr inbounds i32, ptr %255, i64 2
  store i32 4, ptr %1735, align 4, !tbaa !5
  %1736 = getelementptr inbounds %"class.std::initializer_list", ptr %254, i32 0, i32 0
  store ptr %255, ptr %1736, align 8, !tbaa !9
  %1737 = getelementptr inbounds %"class.std::initializer_list", ptr %254, i32 0, i32 1
  store i64 3, ptr %1737, align 8, !tbaa !13
  %1738 = getelementptr inbounds { ptr, i64 }, ptr %254, i32 0, i32 0
  %1739 = load ptr, ptr %1738, align 8
  %1740 = getelementptr inbounds { ptr, i64 }, ptr %254, i32 0, i32 1
  %1741 = load i64, ptr %1740, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1733, ptr %1739, i64 %1741)
          to label %1742 unwind label %1783

1742:                                             ; preds = %1732
  %1743 = getelementptr inbounds %"struct.cgp::numarray", ptr %250, i64 2
  store ptr %1743, ptr %251, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #7
  store i32 -1, ptr %257, align 4, !tbaa !5
  %1744 = getelementptr inbounds %"class.std::initializer_list", ptr %256, i32 0, i32 0
  store ptr %257, ptr %1744, align 8, !tbaa !9
  %1745 = getelementptr inbounds %"class.std::initializer_list", ptr %256, i32 0, i32 1
  store i64 1, ptr %1745, align 8, !tbaa !13
  %1746 = getelementptr inbounds { ptr, i64 }, ptr %256, i32 0, i32 0
  %1747 = load ptr, ptr %1746, align 8
  %1748 = getelementptr inbounds { ptr, i64 }, ptr %256, i32 0, i32 1
  %1749 = load i64, ptr %1748, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1743, ptr %1747, i64 %1749)
          to label %1750 unwind label %1787

1750:                                             ; preds = %1742
  store i1 false, ptr %258, align 1
  %1751 = getelementptr inbounds %"class.std::initializer_list.16", ptr %249, i32 0, i32 0
  store ptr %250, ptr %1751, align 8, !tbaa !21
  %1752 = getelementptr inbounds %"class.std::initializer_list.16", ptr %249, i32 0, i32 1
  store i64 3, ptr %1752, align 8, !tbaa !23
  %1753 = getelementptr inbounds { ptr, i64 }, ptr %249, i32 0, i32 0
  %1754 = load ptr, ptr %1753, align 8
  %1755 = getelementptr inbounds { ptr, i64 }, ptr %249, i32 0, i32 1
  %1756 = load i64, ptr %1755, align 8
  invoke void @_ZN3cgp8numarrayINS0_IiEEEC2ESt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(24) %248, ptr %1754, i64 %1756)
          to label %1757 unwind label %1791

1757:                                             ; preds = %1750
  %1758 = getelementptr inbounds [3 x %"struct.cgp::numarray"], ptr %250, i32 0, i32 0
  %1759 = getelementptr inbounds %"struct.cgp::numarray", ptr %1758, i64 3
  br label %1760

1760:                                             ; preds = %1760, %1757
  %1761 = phi ptr [ %1759, %1757 ], [ %1762, %1760 ]
  %1762 = getelementptr inbounds %"struct.cgp::numarray", ptr %1761, i64 -1
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1762) #7
  %1763 = icmp eq ptr %1762, %1758
  br i1 %1763, label %1764, label %1760

1764:                                             ; preds = %1760
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %255) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #7
  call void @llvm.lifetime.end.p0(i64 72, ptr %250) #7
  %1765 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 0)
          to label %1766 unwind label %1815

1766:                                             ; preds = %1764
  %1767 = invoke noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1765)
          to label %1768 unwind label %1815

1768:                                             ; preds = %1766
  %1769 = icmp eq i32 %1767, 2
  %1770 = zext i1 %1769 to i32
  %1771 = icmp eq i32 %1770, 0
  br i1 %1771, label %1772, label %1843

1772:                                             ; preds = %1768
  call void @llvm.lifetime.start.p0(i64 32, ptr %259) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %260) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %1773 unwind label %1819

1773:                                             ; preds = %1772
  call void @llvm.lifetime.start.p0(i64 32, ptr %261) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %262) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %262)
          to label %1774 unwind label %1823

1774:                                             ; preds = %1773
  call void @llvm.lifetime.start.p0(i64 32, ptr %263) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %264) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %264)
          to label %1775 unwind label %1827

1775:                                             ; preds = %1774
  call void @llvm.lifetime.start.p0(i64 32, ptr %265) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %266) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %266)
          to label %1776 unwind label %1831

1776:                                             ; preds = %1775
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef nonnull align 8 dereferenceable(32) %265, i32 noundef 61) #8
          to label %1777 unwind label %1835

1777:                                             ; preds = %1776
  unreachable

1778:                                             ; preds = %1723, %1699, %1664, %1640, %1605, %1581, %1569
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %212) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %212) #7
  br label %3147

1779:                                             ; preds = %1724
  %1780 = landingpad { ptr, i32 }
          cleanup
  %1781 = extractvalue { ptr, i32 } %1780, 0
  store ptr %1781, ptr %7, align 8
  %1782 = extractvalue { ptr, i32 } %1780, 1
  store i32 %1782, ptr %8, align 4
  br label %1804

1783:                                             ; preds = %1732
  %1784 = landingpad { ptr, i32 }
          cleanup
  %1785 = extractvalue { ptr, i32 } %1784, 0
  store ptr %1785, ptr %7, align 8
  %1786 = extractvalue { ptr, i32 } %1784, 1
  store i32 %1786, ptr %8, align 4
  br label %1803

1787:                                             ; preds = %1742
  %1788 = landingpad { ptr, i32 }
          cleanup
  %1789 = extractvalue { ptr, i32 } %1788, 0
  store ptr %1789, ptr %7, align 8
  %1790 = extractvalue { ptr, i32 } %1788, 1
  store i32 %1790, ptr %8, align 4
  br label %1802

1791:                                             ; preds = %1750
  %1792 = landingpad { ptr, i32 }
          cleanup
  %1793 = extractvalue { ptr, i32 } %1792, 0
  store ptr %1793, ptr %7, align 8
  %1794 = extractvalue { ptr, i32 } %1792, 1
  store i32 %1794, ptr %8, align 4
  %1795 = getelementptr inbounds [3 x %"struct.cgp::numarray"], ptr %250, i32 0, i32 0
  %1796 = getelementptr inbounds %"struct.cgp::numarray", ptr %1795, i64 3
  br label %1797

1797:                                             ; preds = %1797, %1791
  %1798 = phi ptr [ %1796, %1791 ], [ %1799, %1797 ]
  %1799 = getelementptr inbounds %"struct.cgp::numarray", ptr %1798, i64 -1
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1799) #7
  %1800 = icmp eq ptr %1799, %1795
  br i1 %1800, label %1801, label %1797

1801:                                             ; preds = %1797
  br label %1802

1802:                                             ; preds = %1801, %1787
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #7
  br label %1803

1803:                                             ; preds = %1802, %1783
  call void @llvm.lifetime.end.p0(i64 12, ptr %255) #7
  br label %1804

1804:                                             ; preds = %1803, %1779
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #7
  %1805 = load i1, ptr %258, align 1
  br i1 %1805, label %1806, label %1814

1806:                                             ; preds = %1804
  %1807 = load ptr, ptr %251, align 8
  %1808 = icmp eq ptr %250, %1807
  br i1 %1808, label %1813, label %1809

1809:                                             ; preds = %1809, %1806
  %1810 = phi ptr [ %1807, %1806 ], [ %1811, %1809 ]
  %1811 = getelementptr inbounds %"struct.cgp::numarray", ptr %1810, i64 -1
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1811) #7
  %1812 = icmp eq ptr %1811, %250
  br i1 %1812, label %1813, label %1809

1813:                                             ; preds = %1809, %1806
  br label %1814

1814:                                             ; preds = %1813, %1804
  call void @llvm.lifetime.end.p0(i64 72, ptr %250) #7
  br label %2207

1815:                                             ; preds = %2139, %2094, %2092, %2028, %1992, %1990, %1935, %1899, %1897, %1843, %1766, %1764
  %1816 = landingpad { ptr, i32 }
          cleanup
  %1817 = extractvalue { ptr, i32 } %1816, 0
  store ptr %1817, ptr %7, align 8
  %1818 = extractvalue { ptr, i32 } %1816, 1
  store i32 %1818, ptr %8, align 4
  br label %2206

1819:                                             ; preds = %1772
  %1820 = landingpad { ptr, i32 }
          cleanup
  %1821 = extractvalue { ptr, i32 } %1820, 0
  store ptr %1821, ptr %7, align 8
  %1822 = extractvalue { ptr, i32 } %1820, 1
  store i32 %1822, ptr %8, align 4
  br label %1842

1823:                                             ; preds = %1773
  %1824 = landingpad { ptr, i32 }
          cleanup
  %1825 = extractvalue { ptr, i32 } %1824, 0
  store ptr %1825, ptr %7, align 8
  %1826 = extractvalue { ptr, i32 } %1824, 1
  store i32 %1826, ptr %8, align 4
  br label %1841

1827:                                             ; preds = %1774
  %1828 = landingpad { ptr, i32 }
          cleanup
  %1829 = extractvalue { ptr, i32 } %1828, 0
  store ptr %1829, ptr %7, align 8
  %1830 = extractvalue { ptr, i32 } %1828, 1
  store i32 %1830, ptr %8, align 4
  br label %1840

1831:                                             ; preds = %1775
  %1832 = landingpad { ptr, i32 }
          cleanup
  %1833 = extractvalue { ptr, i32 } %1832, 0
  store ptr %1833, ptr %7, align 8
  %1834 = extractvalue { ptr, i32 } %1832, 1
  store i32 %1834, ptr %8, align 4
  br label %1839

1835:                                             ; preds = %1776
  %1836 = landingpad { ptr, i32 }
          cleanup
  %1837 = extractvalue { ptr, i32 } %1836, 0
  store ptr %1837, ptr %7, align 8
  %1838 = extractvalue { ptr, i32 } %1836, 1
  store i32 %1838, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #7
  br label %1839

1839:                                             ; preds = %1835, %1831
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %266) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #7
  br label %1840

1840:                                             ; preds = %1839, %1827
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %264) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %263) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  br label %1841

1841:                                             ; preds = %1840, %1823
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %261) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  br label %1842

1842:                                             ; preds = %1841, %1819
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #7
  br label %2206

1843:                                             ; preds = %1768
  %1844 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 0)
          to label %1845 unwind label %1815

1845:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 24, ptr %267) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %269) #7
  store i32 1, ptr %269, align 4, !tbaa !5
  %1846 = getelementptr inbounds i32, ptr %269, i64 1
  store i32 2, ptr %1846, align 4, !tbaa !5
  %1847 = getelementptr inbounds %"class.std::initializer_list", ptr %268, i32 0, i32 0
  store ptr %269, ptr %1847, align 8, !tbaa !9
  %1848 = getelementptr inbounds %"class.std::initializer_list", ptr %268, i32 0, i32 1
  store i64 2, ptr %1848, align 8, !tbaa !13
  %1849 = getelementptr inbounds { ptr, i64 }, ptr %268, i32 0, i32 0
  %1850 = load ptr, ptr %1849, align 8
  %1851 = getelementptr inbounds { ptr, i64 }, ptr %268, i32 0, i32 1
  %1852 = load i64, ptr %1851, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %267, ptr %1850, i64 %1852)
          to label %1853 unwind label %1864

1853:                                             ; preds = %1845
  %1854 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1844, ptr noundef nonnull align 8 dereferenceable(24) %267)
          to label %1855 unwind label %1868

1855:                                             ; preds = %1853
  %1856 = zext i1 %1854 to i32
  %1857 = icmp eq i32 %1856, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %267) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %267) #7
  br i1 %1857, label %1858, label %1897

1858:                                             ; preds = %1855
  call void @llvm.lifetime.start.p0(i64 32, ptr %270) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %271) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %271)
          to label %1859 unwind label %1873

1859:                                             ; preds = %1858
  call void @llvm.lifetime.start.p0(i64 32, ptr %272) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %273) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %272, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %273)
          to label %1860 unwind label %1877

1860:                                             ; preds = %1859
  call void @llvm.lifetime.start.p0(i64 32, ptr %274) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %275) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %275) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %275)
          to label %1861 unwind label %1881

1861:                                             ; preds = %1860
  call void @llvm.lifetime.start.p0(i64 32, ptr %276) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %277) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %1862 unwind label %1885

1862:                                             ; preds = %1861
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef nonnull align 8 dereferenceable(32) %272, ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef nonnull align 8 dereferenceable(32) %276, i32 noundef 61) #8
          to label %1863 unwind label %1889

1863:                                             ; preds = %1862
  unreachable

1864:                                             ; preds = %1845
  %1865 = landingpad { ptr, i32 }
          cleanup
  %1866 = extractvalue { ptr, i32 } %1865, 0
  store ptr %1866, ptr %7, align 8
  %1867 = extractvalue { ptr, i32 } %1865, 1
  store i32 %1867, ptr %8, align 4
  br label %1872

1868:                                             ; preds = %1853
  %1869 = landingpad { ptr, i32 }
          cleanup
  %1870 = extractvalue { ptr, i32 } %1869, 0
  store ptr %1870, ptr %7, align 8
  %1871 = extractvalue { ptr, i32 } %1869, 1
  store i32 %1871, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %267) #7
  br label %1872

1872:                                             ; preds = %1868, %1864
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %267) #7
  br label %2206

1873:                                             ; preds = %1858
  %1874 = landingpad { ptr, i32 }
          cleanup
  %1875 = extractvalue { ptr, i32 } %1874, 0
  store ptr %1875, ptr %7, align 8
  %1876 = extractvalue { ptr, i32 } %1874, 1
  store i32 %1876, ptr %8, align 4
  br label %1896

1877:                                             ; preds = %1859
  %1878 = landingpad { ptr, i32 }
          cleanup
  %1879 = extractvalue { ptr, i32 } %1878, 0
  store ptr %1879, ptr %7, align 8
  %1880 = extractvalue { ptr, i32 } %1878, 1
  store i32 %1880, ptr %8, align 4
  br label %1895

1881:                                             ; preds = %1860
  %1882 = landingpad { ptr, i32 }
          cleanup
  %1883 = extractvalue { ptr, i32 } %1882, 0
  store ptr %1883, ptr %7, align 8
  %1884 = extractvalue { ptr, i32 } %1882, 1
  store i32 %1884, ptr %8, align 4
  br label %1894

1885:                                             ; preds = %1861
  %1886 = landingpad { ptr, i32 }
          cleanup
  %1887 = extractvalue { ptr, i32 } %1886, 0
  store ptr %1887, ptr %7, align 8
  %1888 = extractvalue { ptr, i32 } %1886, 1
  store i32 %1888, ptr %8, align 4
  br label %1893

1889:                                             ; preds = %1862
  %1890 = landingpad { ptr, i32 }
          cleanup
  %1891 = extractvalue { ptr, i32 } %1890, 0
  store ptr %1891, ptr %7, align 8
  %1892 = extractvalue { ptr, i32 } %1890, 1
  store i32 %1892, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #7
  br label %1893

1893:                                             ; preds = %1889, %1885
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #7
  br label %1894

1894:                                             ; preds = %1893, %1881
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %275) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %275) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %274) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #7
  br label %1895

1895:                                             ; preds = %1894, %1877
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #7
  br label %1896

1896:                                             ; preds = %1895, %1873
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %271) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %270) #7
  br label %2206

1897:                                             ; preds = %1855
  %1898 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 1)
          to label %1899 unwind label %1815

1899:                                             ; preds = %1897
  %1900 = invoke noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1898)
          to label %1901 unwind label %1815

1901:                                             ; preds = %1899
  %1902 = icmp eq i32 %1900, 3
  %1903 = zext i1 %1902 to i32
  %1904 = icmp eq i32 %1903, 0
  br i1 %1904, label %1905, label %1935

1905:                                             ; preds = %1901
  call void @llvm.lifetime.start.p0(i64 32, ptr %278) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %279) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %279)
          to label %1906 unwind label %1911

1906:                                             ; preds = %1905
  call void @llvm.lifetime.start.p0(i64 32, ptr %280) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %281) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %281) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %281)
          to label %1907 unwind label %1915

1907:                                             ; preds = %1906
  call void @llvm.lifetime.start.p0(i64 32, ptr %282) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %283) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %283)
          to label %1908 unwind label %1919

1908:                                             ; preds = %1907
  call void @llvm.lifetime.start.p0(i64 32, ptr %284) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %285) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %285)
          to label %1909 unwind label %1923

1909:                                             ; preds = %1908
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull align 8 dereferenceable(32) %284, i32 noundef 62) #8
          to label %1910 unwind label %1927

1910:                                             ; preds = %1909
  unreachable

1911:                                             ; preds = %1905
  %1912 = landingpad { ptr, i32 }
          cleanup
  %1913 = extractvalue { ptr, i32 } %1912, 0
  store ptr %1913, ptr %7, align 8
  %1914 = extractvalue { ptr, i32 } %1912, 1
  store i32 %1914, ptr %8, align 4
  br label %1934

1915:                                             ; preds = %1906
  %1916 = landingpad { ptr, i32 }
          cleanup
  %1917 = extractvalue { ptr, i32 } %1916, 0
  store ptr %1917, ptr %7, align 8
  %1918 = extractvalue { ptr, i32 } %1916, 1
  store i32 %1918, ptr %8, align 4
  br label %1933

1919:                                             ; preds = %1907
  %1920 = landingpad { ptr, i32 }
          cleanup
  %1921 = extractvalue { ptr, i32 } %1920, 0
  store ptr %1921, ptr %7, align 8
  %1922 = extractvalue { ptr, i32 } %1920, 1
  store i32 %1922, ptr %8, align 4
  br label %1932

1923:                                             ; preds = %1908
  %1924 = landingpad { ptr, i32 }
          cleanup
  %1925 = extractvalue { ptr, i32 } %1924, 0
  store ptr %1925, ptr %7, align 8
  %1926 = extractvalue { ptr, i32 } %1924, 1
  store i32 %1926, ptr %8, align 4
  br label %1931

1927:                                             ; preds = %1909
  %1928 = landingpad { ptr, i32 }
          cleanup
  %1929 = extractvalue { ptr, i32 } %1928, 0
  store ptr %1929, ptr %7, align 8
  %1930 = extractvalue { ptr, i32 } %1928, 1
  store i32 %1930, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  br label %1931

1931:                                             ; preds = %1927, %1923
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %285) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %284) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #7
  br label %1932

1932:                                             ; preds = %1931, %1919
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %283) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #7
  br label %1933

1933:                                             ; preds = %1932, %1915
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %281) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %281) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %280) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #7
  br label %1934

1934:                                             ; preds = %1933, %1911
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %279) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #7
  br label %2206

1935:                                             ; preds = %1901
  %1936 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 1)
          to label %1937 unwind label %1815

1937:                                             ; preds = %1935
  call void @llvm.lifetime.start.p0(i64 24, ptr %286) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %288) #7
  store i32 2, ptr %288, align 4, !tbaa !5
  %1938 = getelementptr inbounds i32, ptr %288, i64 1
  store i32 3, ptr %1938, align 4, !tbaa !5
  %1939 = getelementptr inbounds i32, ptr %288, i64 2
  store i32 4, ptr %1939, align 4, !tbaa !5
  %1940 = getelementptr inbounds %"class.std::initializer_list", ptr %287, i32 0, i32 0
  store ptr %288, ptr %1940, align 8, !tbaa !9
  %1941 = getelementptr inbounds %"class.std::initializer_list", ptr %287, i32 0, i32 1
  store i64 3, ptr %1941, align 8, !tbaa !13
  %1942 = getelementptr inbounds { ptr, i64 }, ptr %287, i32 0, i32 0
  %1943 = load ptr, ptr %1942, align 8
  %1944 = getelementptr inbounds { ptr, i64 }, ptr %287, i32 0, i32 1
  %1945 = load i64, ptr %1944, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %286, ptr %1943, i64 %1945)
          to label %1946 unwind label %1957

1946:                                             ; preds = %1937
  %1947 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1936, ptr noundef nonnull align 8 dereferenceable(24) %286)
          to label %1948 unwind label %1961

1948:                                             ; preds = %1946
  %1949 = zext i1 %1947 to i32
  %1950 = icmp eq i32 %1949, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %286) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %288) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %286) #7
  br i1 %1950, label %1951, label %1990

1951:                                             ; preds = %1948
  call void @llvm.lifetime.start.p0(i64 32, ptr %289) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %290) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %289, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %290)
          to label %1952 unwind label %1966

1952:                                             ; preds = %1951
  call void @llvm.lifetime.start.p0(i64 32, ptr %291) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %292) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %292) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %292)
          to label %1953 unwind label %1970

1953:                                             ; preds = %1952
  call void @llvm.lifetime.start.p0(i64 32, ptr %293) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %294) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %294) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %294)
          to label %1954 unwind label %1974

1954:                                             ; preds = %1953
  call void @llvm.lifetime.start.p0(i64 32, ptr %295) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %296) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %295, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %296)
          to label %1955 unwind label %1978

1955:                                             ; preds = %1954
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %289, ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull align 8 dereferenceable(32) %295, i32 noundef 62) #8
          to label %1956 unwind label %1982

1956:                                             ; preds = %1955
  unreachable

1957:                                             ; preds = %1937
  %1958 = landingpad { ptr, i32 }
          cleanup
  %1959 = extractvalue { ptr, i32 } %1958, 0
  store ptr %1959, ptr %7, align 8
  %1960 = extractvalue { ptr, i32 } %1958, 1
  store i32 %1960, ptr %8, align 4
  br label %1965

1961:                                             ; preds = %1946
  %1962 = landingpad { ptr, i32 }
          cleanup
  %1963 = extractvalue { ptr, i32 } %1962, 0
  store ptr %1963, ptr %7, align 8
  %1964 = extractvalue { ptr, i32 } %1962, 1
  store i32 %1964, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %286) #7
  br label %1965

1965:                                             ; preds = %1961, %1957
  call void @llvm.lifetime.end.p0(i64 12, ptr %288) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %286) #7
  br label %2206

1966:                                             ; preds = %1951
  %1967 = landingpad { ptr, i32 }
          cleanup
  %1968 = extractvalue { ptr, i32 } %1967, 0
  store ptr %1968, ptr %7, align 8
  %1969 = extractvalue { ptr, i32 } %1967, 1
  store i32 %1969, ptr %8, align 4
  br label %1989

1970:                                             ; preds = %1952
  %1971 = landingpad { ptr, i32 }
          cleanup
  %1972 = extractvalue { ptr, i32 } %1971, 0
  store ptr %1972, ptr %7, align 8
  %1973 = extractvalue { ptr, i32 } %1971, 1
  store i32 %1973, ptr %8, align 4
  br label %1988

1974:                                             ; preds = %1953
  %1975 = landingpad { ptr, i32 }
          cleanup
  %1976 = extractvalue { ptr, i32 } %1975, 0
  store ptr %1976, ptr %7, align 8
  %1977 = extractvalue { ptr, i32 } %1975, 1
  store i32 %1977, ptr %8, align 4
  br label %1987

1978:                                             ; preds = %1954
  %1979 = landingpad { ptr, i32 }
          cleanup
  %1980 = extractvalue { ptr, i32 } %1979, 0
  store ptr %1980, ptr %7, align 8
  %1981 = extractvalue { ptr, i32 } %1979, 1
  store i32 %1981, ptr %8, align 4
  br label %1986

1982:                                             ; preds = %1955
  %1983 = landingpad { ptr, i32 }
          cleanup
  %1984 = extractvalue { ptr, i32 } %1983, 0
  store ptr %1984, ptr %7, align 8
  %1985 = extractvalue { ptr, i32 } %1983, 1
  store i32 %1985, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #7
  br label %1986

1986:                                             ; preds = %1982, %1978
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %296) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %295) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  br label %1987

1987:                                             ; preds = %1986, %1974
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %294) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %294) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #7
  br label %1988

1988:                                             ; preds = %1987, %1970
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %292) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %292) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #7
  br label %1989

1989:                                             ; preds = %1988, %1966
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %290) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %289) #7
  br label %2206

1990:                                             ; preds = %1948
  %1991 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 2)
          to label %1992 unwind label %1815

1992:                                             ; preds = %1990
  %1993 = invoke noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1991)
          to label %1994 unwind label %1815

1994:                                             ; preds = %1992
  %1995 = icmp eq i32 %1993, 1
  %1996 = zext i1 %1995 to i32
  %1997 = icmp eq i32 %1996, 0
  br i1 %1997, label %1998, label %2028

1998:                                             ; preds = %1994
  call void @llvm.lifetime.start.p0(i64 32, ptr %297) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %298) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %298)
          to label %1999 unwind label %2004

1999:                                             ; preds = %1998
  call void @llvm.lifetime.start.p0(i64 32, ptr %299) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %300) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %300) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %300)
          to label %2000 unwind label %2008

2000:                                             ; preds = %1999
  call void @llvm.lifetime.start.p0(i64 32, ptr %301) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %302) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %302) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %302)
          to label %2001 unwind label %2012

2001:                                             ; preds = %2000
  call void @llvm.lifetime.start.p0(i64 32, ptr %303) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %304) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %304) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %303, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %304)
          to label %2002 unwind label %2016

2002:                                             ; preds = %2001
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef nonnull align 8 dereferenceable(32) %303, i32 noundef 63) #8
          to label %2003 unwind label %2020

2003:                                             ; preds = %2002
  unreachable

2004:                                             ; preds = %1998
  %2005 = landingpad { ptr, i32 }
          cleanup
  %2006 = extractvalue { ptr, i32 } %2005, 0
  store ptr %2006, ptr %7, align 8
  %2007 = extractvalue { ptr, i32 } %2005, 1
  store i32 %2007, ptr %8, align 4
  br label %2027

2008:                                             ; preds = %1999
  %2009 = landingpad { ptr, i32 }
          cleanup
  %2010 = extractvalue { ptr, i32 } %2009, 0
  store ptr %2010, ptr %7, align 8
  %2011 = extractvalue { ptr, i32 } %2009, 1
  store i32 %2011, ptr %8, align 4
  br label %2026

2012:                                             ; preds = %2000
  %2013 = landingpad { ptr, i32 }
          cleanup
  %2014 = extractvalue { ptr, i32 } %2013, 0
  store ptr %2014, ptr %7, align 8
  %2015 = extractvalue { ptr, i32 } %2013, 1
  store i32 %2015, ptr %8, align 4
  br label %2025

2016:                                             ; preds = %2001
  %2017 = landingpad { ptr, i32 }
          cleanup
  %2018 = extractvalue { ptr, i32 } %2017, 0
  store ptr %2018, ptr %7, align 8
  %2019 = extractvalue { ptr, i32 } %2017, 1
  store i32 %2019, ptr %8, align 4
  br label %2024

2020:                                             ; preds = %2002
  %2021 = landingpad { ptr, i32 }
          cleanup
  %2022 = extractvalue { ptr, i32 } %2021, 0
  store ptr %2022, ptr %7, align 8
  %2023 = extractvalue { ptr, i32 } %2021, 1
  store i32 %2023, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #7
  br label %2024

2024:                                             ; preds = %2020, %2016
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %304) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %304) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %303) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #7
  br label %2025

2025:                                             ; preds = %2024, %2012
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %302) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %302) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %301) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  br label %2026

2026:                                             ; preds = %2025, %2008
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %300) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %300) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  br label %2027

2027:                                             ; preds = %2026, %2004
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #7
  br label %2206

2028:                                             ; preds = %1994
  %2029 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 2)
          to label %2030 unwind label %1815

2030:                                             ; preds = %2028
  call void @llvm.lifetime.start.p0(i64 24, ptr %305) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #7
  store i32 -1, ptr %307, align 4, !tbaa !5
  %2031 = getelementptr inbounds %"class.std::initializer_list", ptr %306, i32 0, i32 0
  store ptr %307, ptr %2031, align 8, !tbaa !9
  %2032 = getelementptr inbounds %"class.std::initializer_list", ptr %306, i32 0, i32 1
  store i64 1, ptr %2032, align 8, !tbaa !13
  %2033 = getelementptr inbounds { ptr, i64 }, ptr %306, i32 0, i32 0
  %2034 = load ptr, ptr %2033, align 8
  %2035 = getelementptr inbounds { ptr, i64 }, ptr %306, i32 0, i32 1
  %2036 = load i64, ptr %2035, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %305, ptr %2034, i64 %2036)
          to label %2037 unwind label %2048

2037:                                             ; preds = %2030
  %2038 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %2029, ptr noundef nonnull align 8 dereferenceable(24) %305)
          to label %2039 unwind label %2052

2039:                                             ; preds = %2037
  %2040 = zext i1 %2038 to i32
  %2041 = icmp eq i32 %2040, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %305) #7
  br i1 %2041, label %2042, label %2081

2042:                                             ; preds = %2039
  call void @llvm.lifetime.start.p0(i64 32, ptr %308) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %309) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %308, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %309)
          to label %2043 unwind label %2057

2043:                                             ; preds = %2042
  call void @llvm.lifetime.start.p0(i64 32, ptr %310) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %311) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %2044 unwind label %2061

2044:                                             ; preds = %2043
  call void @llvm.lifetime.start.p0(i64 32, ptr %312) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %313) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %313) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %312, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %313)
          to label %2045 unwind label %2065

2045:                                             ; preds = %2044
  call void @llvm.lifetime.start.p0(i64 32, ptr %314) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %315) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %315)
          to label %2046 unwind label %2069

2046:                                             ; preds = %2045
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %308, ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef nonnull align 8 dereferenceable(32) %312, ptr noundef nonnull align 8 dereferenceable(32) %314, i32 noundef 63) #8
          to label %2047 unwind label %2073

2047:                                             ; preds = %2046
  unreachable

2048:                                             ; preds = %2030
  %2049 = landingpad { ptr, i32 }
          cleanup
  %2050 = extractvalue { ptr, i32 } %2049, 0
  store ptr %2050, ptr %7, align 8
  %2051 = extractvalue { ptr, i32 } %2049, 1
  store i32 %2051, ptr %8, align 4
  br label %2056

2052:                                             ; preds = %2037
  %2053 = landingpad { ptr, i32 }
          cleanup
  %2054 = extractvalue { ptr, i32 } %2053, 0
  store ptr %2054, ptr %7, align 8
  %2055 = extractvalue { ptr, i32 } %2053, 1
  store i32 %2055, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305) #7
  br label %2056

2056:                                             ; preds = %2052, %2048
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %305) #7
  br label %2206

2057:                                             ; preds = %2042
  %2058 = landingpad { ptr, i32 }
          cleanup
  %2059 = extractvalue { ptr, i32 } %2058, 0
  store ptr %2059, ptr %7, align 8
  %2060 = extractvalue { ptr, i32 } %2058, 1
  store i32 %2060, ptr %8, align 4
  br label %2080

2061:                                             ; preds = %2043
  %2062 = landingpad { ptr, i32 }
          cleanup
  %2063 = extractvalue { ptr, i32 } %2062, 0
  store ptr %2063, ptr %7, align 8
  %2064 = extractvalue { ptr, i32 } %2062, 1
  store i32 %2064, ptr %8, align 4
  br label %2079

2065:                                             ; preds = %2044
  %2066 = landingpad { ptr, i32 }
          cleanup
  %2067 = extractvalue { ptr, i32 } %2066, 0
  store ptr %2067, ptr %7, align 8
  %2068 = extractvalue { ptr, i32 } %2066, 1
  store i32 %2068, ptr %8, align 4
  br label %2078

2069:                                             ; preds = %2045
  %2070 = landingpad { ptr, i32 }
          cleanup
  %2071 = extractvalue { ptr, i32 } %2070, 0
  store ptr %2071, ptr %7, align 8
  %2072 = extractvalue { ptr, i32 } %2070, 1
  store i32 %2072, ptr %8, align 4
  br label %2077

2073:                                             ; preds = %2046
  %2074 = landingpad { ptr, i32 }
          cleanup
  %2075 = extractvalue { ptr, i32 } %2074, 0
  store ptr %2075, ptr %7, align 8
  %2076 = extractvalue { ptr, i32 } %2074, 1
  store i32 %2076, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #7
  br label %2077

2077:                                             ; preds = %2073, %2069
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #7
  br label %2078

2078:                                             ; preds = %2077, %2065
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %313) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %313) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %312) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  br label %2079

2079:                                             ; preds = %2078, %2061
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #7
  br label %2080

2080:                                             ; preds = %2079, %2057
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %309) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %308) #7
  br label %2206

2081:                                             ; preds = %2039
  call void @llvm.lifetime.start.p0(i64 24, ptr %316) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %318) #7
  store i32 7, ptr %318, align 4, !tbaa !5
  %2082 = getelementptr inbounds i32, ptr %318, i64 1
  store i32 8, ptr %2082, align 4, !tbaa !5
  %2083 = getelementptr inbounds i32, ptr %318, i64 2
  store i32 9, ptr %2083, align 4, !tbaa !5
  %2084 = getelementptr inbounds %"class.std::initializer_list", ptr %317, i32 0, i32 0
  store ptr %318, ptr %2084, align 8, !tbaa !9
  %2085 = getelementptr inbounds %"class.std::initializer_list", ptr %317, i32 0, i32 1
  store i64 3, ptr %2085, align 8, !tbaa !13
  %2086 = getelementptr inbounds { ptr, i64 }, ptr %317, i32 0, i32 0
  %2087 = load ptr, ptr %2086, align 8
  %2088 = getelementptr inbounds { ptr, i64 }, ptr %317, i32 0, i32 1
  %2089 = load i64, ptr %2088, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %316, ptr %2087, i64 %2089)
          to label %2090 unwind label %2106

2090:                                             ; preds = %2081
  %2091 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %248, ptr noundef nonnull align 8 dereferenceable(24) %316)
          to label %2092 unwind label %2110

2092:                                             ; preds = %2090
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %316) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %318) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %316) #7
  %2093 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 3)
          to label %2094 unwind label %1815

2094:                                             ; preds = %2092
  %2095 = invoke noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2093)
          to label %2096 unwind label %1815

2096:                                             ; preds = %2094
  %2097 = icmp eq i32 %2095, 3
  %2098 = zext i1 %2097 to i32
  %2099 = icmp eq i32 %2098, 0
  br i1 %2099, label %2100, label %2139

2100:                                             ; preds = %2096
  call void @llvm.lifetime.start.p0(i64 32, ptr %319) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %320) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %320)
          to label %2101 unwind label %2115

2101:                                             ; preds = %2100
  call void @llvm.lifetime.start.p0(i64 32, ptr %321) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %322) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %322) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %322)
          to label %2102 unwind label %2119

2102:                                             ; preds = %2101
  call void @llvm.lifetime.start.p0(i64 32, ptr %323) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %324) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %324)
          to label %2103 unwind label %2123

2103:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 32, ptr %325) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %326) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %326)
          to label %2104 unwind label %2127

2104:                                             ; preds = %2103
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef nonnull align 8 dereferenceable(32) %325, i32 noundef 65) #8
          to label %2105 unwind label %2131

2105:                                             ; preds = %2104
  unreachable

2106:                                             ; preds = %2081
  %2107 = landingpad { ptr, i32 }
          cleanup
  %2108 = extractvalue { ptr, i32 } %2107, 0
  store ptr %2108, ptr %7, align 8
  %2109 = extractvalue { ptr, i32 } %2107, 1
  store i32 %2109, ptr %8, align 4
  br label %2114

2110:                                             ; preds = %2090
  %2111 = landingpad { ptr, i32 }
          cleanup
  %2112 = extractvalue { ptr, i32 } %2111, 0
  store ptr %2112, ptr %7, align 8
  %2113 = extractvalue { ptr, i32 } %2111, 1
  store i32 %2113, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %316) #7
  br label %2114

2114:                                             ; preds = %2110, %2106
  call void @llvm.lifetime.end.p0(i64 12, ptr %318) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %316) #7
  br label %2206

2115:                                             ; preds = %2100
  %2116 = landingpad { ptr, i32 }
          cleanup
  %2117 = extractvalue { ptr, i32 } %2116, 0
  store ptr %2117, ptr %7, align 8
  %2118 = extractvalue { ptr, i32 } %2116, 1
  store i32 %2118, ptr %8, align 4
  br label %2138

2119:                                             ; preds = %2101
  %2120 = landingpad { ptr, i32 }
          cleanup
  %2121 = extractvalue { ptr, i32 } %2120, 0
  store ptr %2121, ptr %7, align 8
  %2122 = extractvalue { ptr, i32 } %2120, 1
  store i32 %2122, ptr %8, align 4
  br label %2137

2123:                                             ; preds = %2102
  %2124 = landingpad { ptr, i32 }
          cleanup
  %2125 = extractvalue { ptr, i32 } %2124, 0
  store ptr %2125, ptr %7, align 8
  %2126 = extractvalue { ptr, i32 } %2124, 1
  store i32 %2126, ptr %8, align 4
  br label %2136

2127:                                             ; preds = %2103
  %2128 = landingpad { ptr, i32 }
          cleanup
  %2129 = extractvalue { ptr, i32 } %2128, 0
  store ptr %2129, ptr %7, align 8
  %2130 = extractvalue { ptr, i32 } %2128, 1
  store i32 %2130, ptr %8, align 4
  br label %2135

2131:                                             ; preds = %2104
  %2132 = landingpad { ptr, i32 }
          cleanup
  %2133 = extractvalue { ptr, i32 } %2132, 0
  store ptr %2133, ptr %7, align 8
  %2134 = extractvalue { ptr, i32 } %2132, 1
  store i32 %2134, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #7
  br label %2135

2135:                                             ; preds = %2131, %2127
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %326) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %325) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #7
  br label %2136

2136:                                             ; preds = %2135, %2123
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %324) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %323) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #7
  br label %2137

2137:                                             ; preds = %2136, %2119
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %322) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %322) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %321) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #7
  br label %2138

2138:                                             ; preds = %2137, %2115
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %320) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %319) #7
  br label %2206

2139:                                             ; preds = %2096
  %2140 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %248, i32 noundef 3)
          to label %2141 unwind label %1815

2141:                                             ; preds = %2139
  call void @llvm.lifetime.start.p0(i64 24, ptr %327) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %329) #7
  store i32 7, ptr %329, align 4, !tbaa !5
  %2142 = getelementptr inbounds i32, ptr %329, i64 1
  store i32 8, ptr %2142, align 4, !tbaa !5
  %2143 = getelementptr inbounds i32, ptr %329, i64 2
  store i32 9, ptr %2143, align 4, !tbaa !5
  %2144 = getelementptr inbounds %"class.std::initializer_list", ptr %328, i32 0, i32 0
  store ptr %329, ptr %2144, align 8, !tbaa !9
  %2145 = getelementptr inbounds %"class.std::initializer_list", ptr %328, i32 0, i32 1
  store i64 3, ptr %2145, align 8, !tbaa !13
  %2146 = getelementptr inbounds { ptr, i64 }, ptr %328, i32 0, i32 0
  %2147 = load ptr, ptr %2146, align 8
  %2148 = getelementptr inbounds { ptr, i64 }, ptr %328, i32 0, i32 1
  %2149 = load i64, ptr %2148, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %327, ptr %2147, i64 %2149)
          to label %2150 unwind label %2161

2150:                                             ; preds = %2141
  %2151 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %2140, ptr noundef nonnull align 8 dereferenceable(24) %327)
          to label %2152 unwind label %2165

2152:                                             ; preds = %2150
  %2153 = zext i1 %2151 to i32
  %2154 = icmp eq i32 %2153, 0
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %327) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %329) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %327) #7
  br i1 %2154, label %2155, label %2194

2155:                                             ; preds = %2152
  call void @llvm.lifetime.start.p0(i64 32, ptr %330) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %331) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %331) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %331)
          to label %2156 unwind label %2170

2156:                                             ; preds = %2155
  call void @llvm.lifetime.start.p0(i64 32, ptr %332) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %333) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %333)
          to label %2157 unwind label %2174

2157:                                             ; preds = %2156
  call void @llvm.lifetime.start.p0(i64 32, ptr %334) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %335) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %335)
          to label %2158 unwind label %2178

2158:                                             ; preds = %2157
  call void @llvm.lifetime.start.p0(i64 32, ptr %336) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %337) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %337)
          to label %2159 unwind label %2182

2159:                                             ; preds = %2158
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef nonnull align 8 dereferenceable(32) %336, i32 noundef 65) #8
          to label %2160 unwind label %2186

2160:                                             ; preds = %2159
  unreachable

2161:                                             ; preds = %2141
  %2162 = landingpad { ptr, i32 }
          cleanup
  %2163 = extractvalue { ptr, i32 } %2162, 0
  store ptr %2163, ptr %7, align 8
  %2164 = extractvalue { ptr, i32 } %2162, 1
  store i32 %2164, ptr %8, align 4
  br label %2169

2165:                                             ; preds = %2150
  %2166 = landingpad { ptr, i32 }
          cleanup
  %2167 = extractvalue { ptr, i32 } %2166, 0
  store ptr %2167, ptr %7, align 8
  %2168 = extractvalue { ptr, i32 } %2166, 1
  store i32 %2168, ptr %8, align 4
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %327) #7
  br label %2169

2169:                                             ; preds = %2165, %2161
  call void @llvm.lifetime.end.p0(i64 12, ptr %329) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %327) #7
  br label %2206

2170:                                             ; preds = %2155
  %2171 = landingpad { ptr, i32 }
          cleanup
  %2172 = extractvalue { ptr, i32 } %2171, 0
  store ptr %2172, ptr %7, align 8
  %2173 = extractvalue { ptr, i32 } %2171, 1
  store i32 %2173, ptr %8, align 4
  br label %2193

2174:                                             ; preds = %2156
  %2175 = landingpad { ptr, i32 }
          cleanup
  %2176 = extractvalue { ptr, i32 } %2175, 0
  store ptr %2176, ptr %7, align 8
  %2177 = extractvalue { ptr, i32 } %2175, 1
  store i32 %2177, ptr %8, align 4
  br label %2192

2178:                                             ; preds = %2157
  %2179 = landingpad { ptr, i32 }
          cleanup
  %2180 = extractvalue { ptr, i32 } %2179, 0
  store ptr %2180, ptr %7, align 8
  %2181 = extractvalue { ptr, i32 } %2179, 1
  store i32 %2181, ptr %8, align 4
  br label %2191

2182:                                             ; preds = %2158
  %2183 = landingpad { ptr, i32 }
          cleanup
  %2184 = extractvalue { ptr, i32 } %2183, 0
  store ptr %2184, ptr %7, align 8
  %2185 = extractvalue { ptr, i32 } %2183, 1
  store i32 %2185, ptr %8, align 4
  br label %2190

2186:                                             ; preds = %2159
  %2187 = landingpad { ptr, i32 }
          cleanup
  %2188 = extractvalue { ptr, i32 } %2187, 0
  store ptr %2188, ptr %7, align 8
  %2189 = extractvalue { ptr, i32 } %2187, 1
  store i32 %2189, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #7
  br label %2190

2190:                                             ; preds = %2186, %2182
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %337) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  br label %2191

2191:                                             ; preds = %2190, %2178
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %335) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #7
  br label %2192

2192:                                             ; preds = %2191, %2174
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %333) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #7
  br label %2193

2193:                                             ; preds = %2192, %2170
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %331) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %331) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %330) #7
  br label %2206

2194:                                             ; preds = %2152
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %248) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %248) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %338) #7
  call void @_ZN3cgp8numarrayIiEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %338)
  call void @llvm.lifetime.start.p0(i64 32, ptr %339) #7
  invoke void @_ZN3cgp8type_strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %339, ptr noundef nonnull align 8 dereferenceable(24) %338)
          to label %2195 unwind label %2208

2195:                                             ; preds = %2194
  %2196 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef @.str.33)
          to label %2197 unwind label %2212

2197:                                             ; preds = %2195
  %2198 = zext i1 %2196 to i32
  %2199 = icmp eq i32 %2198, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #7
  br i1 %2199, label %2200, label %2241

2200:                                             ; preds = %2197
  call void @llvm.lifetime.start.p0(i64 32, ptr %340) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %341) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %341)
          to label %2201 unwind label %2217

2201:                                             ; preds = %2200
  call void @llvm.lifetime.start.p0(i64 32, ptr %342) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %343) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %2202 unwind label %2221

2202:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 32, ptr %344) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %345) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %345) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %344, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %345)
          to label %2203 unwind label %2225

2203:                                             ; preds = %2202
  call void @llvm.lifetime.start.p0(i64 32, ptr %346) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %347) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %346, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %347)
          to label %2204 unwind label %2229

2204:                                             ; preds = %2203
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %344, ptr noundef nonnull align 8 dereferenceable(32) %346, i32 noundef 69) #8
          to label %2205 unwind label %2233

2205:                                             ; preds = %2204
  unreachable

2206:                                             ; preds = %2193, %2169, %2138, %2114, %2080, %2056, %2027, %1989, %1965, %1934, %1896, %1872, %1842, %1815
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %248) #7
  br label %2207

2207:                                             ; preds = %2206, %1814
  call void @llvm.lifetime.end.p0(i64 24, ptr %248) #7
  br label %3147

2208:                                             ; preds = %2194
  %2209 = landingpad { ptr, i32 }
          cleanup
  %2210 = extractvalue { ptr, i32 } %2209, 0
  store ptr %2210, ptr %7, align 8
  %2211 = extractvalue { ptr, i32 } %2209, 1
  store i32 %2211, ptr %8, align 4
  br label %2216

2212:                                             ; preds = %2195
  %2213 = landingpad { ptr, i32 }
          cleanup
  %2214 = extractvalue { ptr, i32 } %2213, 0
  store ptr %2214, ptr %7, align 8
  %2215 = extractvalue { ptr, i32 } %2213, 1
  store i32 %2215, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #7
  br label %2216

2216:                                             ; preds = %2212, %2208
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #7
  br label %2368

2217:                                             ; preds = %2200
  %2218 = landingpad { ptr, i32 }
          cleanup
  %2219 = extractvalue { ptr, i32 } %2218, 0
  store ptr %2219, ptr %7, align 8
  %2220 = extractvalue { ptr, i32 } %2218, 1
  store i32 %2220, ptr %8, align 4
  br label %2240

2221:                                             ; preds = %2201
  %2222 = landingpad { ptr, i32 }
          cleanup
  %2223 = extractvalue { ptr, i32 } %2222, 0
  store ptr %2223, ptr %7, align 8
  %2224 = extractvalue { ptr, i32 } %2222, 1
  store i32 %2224, ptr %8, align 4
  br label %2239

2225:                                             ; preds = %2202
  %2226 = landingpad { ptr, i32 }
          cleanup
  %2227 = extractvalue { ptr, i32 } %2226, 0
  store ptr %2227, ptr %7, align 8
  %2228 = extractvalue { ptr, i32 } %2226, 1
  store i32 %2228, ptr %8, align 4
  br label %2238

2229:                                             ; preds = %2203
  %2230 = landingpad { ptr, i32 }
          cleanup
  %2231 = extractvalue { ptr, i32 } %2230, 0
  store ptr %2231, ptr %7, align 8
  %2232 = extractvalue { ptr, i32 } %2230, 1
  store i32 %2232, ptr %8, align 4
  br label %2237

2233:                                             ; preds = %2204
  %2234 = landingpad { ptr, i32 }
          cleanup
  %2235 = extractvalue { ptr, i32 } %2234, 0
  store ptr %2235, ptr %7, align 8
  %2236 = extractvalue { ptr, i32 } %2234, 1
  store i32 %2236, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #7
  br label %2237

2237:                                             ; preds = %2233, %2229
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %347) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %346) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  br label %2238

2238:                                             ; preds = %2237, %2225
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %345) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %345) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %344) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  br label %2239

2239:                                             ; preds = %2238, %2221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  br label %2240

2240:                                             ; preds = %2239, %2217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %340) #7
  br label %2368

2241:                                             ; preds = %2197
  call void @llvm.lifetime.start.p0(i64 24, ptr %348) #7
  invoke void @_ZN3cgp8numarrayIfEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %348)
          to label %2242 unwind label %2254

2242:                                             ; preds = %2241
  call void @llvm.lifetime.start.p0(i64 32, ptr %349) #7
  invoke void @_ZN3cgp8type_strIfEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %349, ptr noundef nonnull align 8 dereferenceable(24) %348)
          to label %2243 unwind label %2258

2243:                                             ; preds = %2242
  %2244 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef @.str.35)
          to label %2245 unwind label %2262

2245:                                             ; preds = %2243
  %2246 = zext i1 %2244 to i32
  %2247 = icmp eq i32 %2246, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %349) #7
  br i1 %2247, label %2248, label %2291

2248:                                             ; preds = %2245
  call void @llvm.lifetime.start.p0(i64 32, ptr %350) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %351) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %351)
          to label %2249 unwind label %2267

2249:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 32, ptr %352) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %353) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %353)
          to label %2250 unwind label %2271

2250:                                             ; preds = %2249
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %355) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %355)
          to label %2251 unwind label %2275

2251:                                             ; preds = %2250
  call void @llvm.lifetime.start.p0(i64 32, ptr %356) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %357) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %357)
          to label %2252 unwind label %2279

2252:                                             ; preds = %2251
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %356, i32 noundef 70) #8
          to label %2253 unwind label %2283

2253:                                             ; preds = %2252
  unreachable

2254:                                             ; preds = %2241
  %2255 = landingpad { ptr, i32 }
          cleanup
  %2256 = extractvalue { ptr, i32 } %2255, 0
  store ptr %2256, ptr %7, align 8
  %2257 = extractvalue { ptr, i32 } %2255, 1
  store i32 %2257, ptr %8, align 4
  br label %2367

2258:                                             ; preds = %2242
  %2259 = landingpad { ptr, i32 }
          cleanup
  %2260 = extractvalue { ptr, i32 } %2259, 0
  store ptr %2260, ptr %7, align 8
  %2261 = extractvalue { ptr, i32 } %2259, 1
  store i32 %2261, ptr %8, align 4
  br label %2266

2262:                                             ; preds = %2243
  %2263 = landingpad { ptr, i32 }
          cleanup
  %2264 = extractvalue { ptr, i32 } %2263, 0
  store ptr %2264, ptr %7, align 8
  %2265 = extractvalue { ptr, i32 } %2263, 1
  store i32 %2265, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #7
  br label %2266

2266:                                             ; preds = %2262, %2258
  call void @llvm.lifetime.end.p0(i64 32, ptr %349) #7
  br label %2366

2267:                                             ; preds = %2248
  %2268 = landingpad { ptr, i32 }
          cleanup
  %2269 = extractvalue { ptr, i32 } %2268, 0
  store ptr %2269, ptr %7, align 8
  %2270 = extractvalue { ptr, i32 } %2268, 1
  store i32 %2270, ptr %8, align 4
  br label %2290

2271:                                             ; preds = %2249
  %2272 = landingpad { ptr, i32 }
          cleanup
  %2273 = extractvalue { ptr, i32 } %2272, 0
  store ptr %2273, ptr %7, align 8
  %2274 = extractvalue { ptr, i32 } %2272, 1
  store i32 %2274, ptr %8, align 4
  br label %2289

2275:                                             ; preds = %2250
  %2276 = landingpad { ptr, i32 }
          cleanup
  %2277 = extractvalue { ptr, i32 } %2276, 0
  store ptr %2277, ptr %7, align 8
  %2278 = extractvalue { ptr, i32 } %2276, 1
  store i32 %2278, ptr %8, align 4
  br label %2288

2279:                                             ; preds = %2251
  %2280 = landingpad { ptr, i32 }
          cleanup
  %2281 = extractvalue { ptr, i32 } %2280, 0
  store ptr %2281, ptr %7, align 8
  %2282 = extractvalue { ptr, i32 } %2280, 1
  store i32 %2282, ptr %8, align 4
  br label %2287

2283:                                             ; preds = %2252
  %2284 = landingpad { ptr, i32 }
          cleanup
  %2285 = extractvalue { ptr, i32 } %2284, 0
  store ptr %2285, ptr %7, align 8
  %2286 = extractvalue { ptr, i32 } %2284, 1
  store i32 %2286, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #7
  br label %2287

2287:                                             ; preds = %2283, %2279
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %357) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #7
  br label %2288

2288:                                             ; preds = %2287, %2275
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %355) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #7
  br label %2289

2289:                                             ; preds = %2288, %2271
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %353) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %352) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  br label %2290

2290:                                             ; preds = %2289, %2267
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %351) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %350) #7
  br label %2366

2291:                                             ; preds = %2245
  call void @llvm.lifetime.start.p0(i64 24, ptr %358) #7
  invoke void @_ZN3cgp8numarrayINS0_IiEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %358)
          to label %2292 unwind label %2304

2292:                                             ; preds = %2291
  call void @llvm.lifetime.start.p0(i64 32, ptr %359) #7
  invoke void @_ZN3cgp8type_strINS_8numarrayIiEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS1_IT_EE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %359, ptr noundef nonnull align 8 dereferenceable(24) %358)
          to label %2293 unwind label %2308

2293:                                             ; preds = %2292
  %2294 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %359, ptr noundef @.str.37)
          to label %2295 unwind label %2312

2295:                                             ; preds = %2293
  %2296 = zext i1 %2294 to i32
  %2297 = icmp eq i32 %2296, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #7
  br i1 %2297, label %2298, label %2341

2298:                                             ; preds = %2295
  call void @llvm.lifetime.start.p0(i64 32, ptr %360) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %361) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %361) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %361)
          to label %2299 unwind label %2317

2299:                                             ; preds = %2298
  call void @llvm.lifetime.start.p0(i64 32, ptr %362) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %363) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %363)
          to label %2300 unwind label %2321

2300:                                             ; preds = %2299
  call void @llvm.lifetime.start.p0(i64 32, ptr %364) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %365) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %365)
          to label %2301 unwind label %2325

2301:                                             ; preds = %2300
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %367) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %367)
          to label %2302 unwind label %2329

2302:                                             ; preds = %2301
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull align 8 dereferenceable(32) %366, i32 noundef 71) #8
          to label %2303 unwind label %2333

2303:                                             ; preds = %2302
  unreachable

2304:                                             ; preds = %2291
  %2305 = landingpad { ptr, i32 }
          cleanup
  %2306 = extractvalue { ptr, i32 } %2305, 0
  store ptr %2306, ptr %7, align 8
  %2307 = extractvalue { ptr, i32 } %2305, 1
  store i32 %2307, ptr %8, align 4
  br label %2365

2308:                                             ; preds = %2292
  %2309 = landingpad { ptr, i32 }
          cleanup
  %2310 = extractvalue { ptr, i32 } %2309, 0
  store ptr %2310, ptr %7, align 8
  %2311 = extractvalue { ptr, i32 } %2309, 1
  store i32 %2311, ptr %8, align 4
  br label %2316

2312:                                             ; preds = %2293
  %2313 = landingpad { ptr, i32 }
          cleanup
  %2314 = extractvalue { ptr, i32 } %2313, 0
  store ptr %2314, ptr %7, align 8
  %2315 = extractvalue { ptr, i32 } %2313, 1
  store i32 %2315, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #7
  br label %2316

2316:                                             ; preds = %2312, %2308
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #7
  br label %2364

2317:                                             ; preds = %2298
  %2318 = landingpad { ptr, i32 }
          cleanup
  %2319 = extractvalue { ptr, i32 } %2318, 0
  store ptr %2319, ptr %7, align 8
  %2320 = extractvalue { ptr, i32 } %2318, 1
  store i32 %2320, ptr %8, align 4
  br label %2340

2321:                                             ; preds = %2299
  %2322 = landingpad { ptr, i32 }
          cleanup
  %2323 = extractvalue { ptr, i32 } %2322, 0
  store ptr %2323, ptr %7, align 8
  %2324 = extractvalue { ptr, i32 } %2322, 1
  store i32 %2324, ptr %8, align 4
  br label %2339

2325:                                             ; preds = %2300
  %2326 = landingpad { ptr, i32 }
          cleanup
  %2327 = extractvalue { ptr, i32 } %2326, 0
  store ptr %2327, ptr %7, align 8
  %2328 = extractvalue { ptr, i32 } %2326, 1
  store i32 %2328, ptr %8, align 4
  br label %2338

2329:                                             ; preds = %2301
  %2330 = landingpad { ptr, i32 }
          cleanup
  %2331 = extractvalue { ptr, i32 } %2330, 0
  store ptr %2331, ptr %7, align 8
  %2332 = extractvalue { ptr, i32 } %2330, 1
  store i32 %2332, ptr %8, align 4
  br label %2337

2333:                                             ; preds = %2302
  %2334 = landingpad { ptr, i32 }
          cleanup
  %2335 = extractvalue { ptr, i32 } %2334, 0
  store ptr %2335, ptr %7, align 8
  %2336 = extractvalue { ptr, i32 } %2334, 1
  store i32 %2336, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #7
  br label %2337

2337:                                             ; preds = %2333, %2329
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #7
  br label %2338

2338:                                             ; preds = %2337, %2325
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %365) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #7
  br label %2339

2339:                                             ; preds = %2338, %2321
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %363) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #7
  br label %2340

2340:                                             ; preds = %2339, %2317
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %361) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %361) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #7
  br label %2364

2341:                                             ; preds = %2295
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %358) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %358) #7
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %348) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %348) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %338) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %338) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %368) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %370) #7
  store i32 4, ptr %370, align 4, !tbaa !5
  %2342 = getelementptr inbounds i32, ptr %370, i64 1
  store i32 5, ptr %2342, align 4, !tbaa !5
  %2343 = getelementptr inbounds i32, ptr %370, i64 2
  store i32 6, ptr %2343, align 4, !tbaa !5
  %2344 = getelementptr inbounds %"class.std::initializer_list", ptr %369, i32 0, i32 0
  store ptr %370, ptr %2344, align 8, !tbaa !9
  %2345 = getelementptr inbounds %"class.std::initializer_list", ptr %369, i32 0, i32 1
  store i64 3, ptr %2345, align 8, !tbaa !13
  %2346 = getelementptr inbounds { ptr, i64 }, ptr %369, i32 0, i32 0
  %2347 = load ptr, ptr %2346, align 8
  %2348 = getelementptr inbounds { ptr, i64 }, ptr %369, i32 0, i32 1
  %2349 = load i64, ptr %2348, align 8
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %368, ptr %2347, i64 %2349)
  call void @llvm.lifetime.end.p0(i64 12, ptr %370) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %371) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %372) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %373) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %373)
          to label %2350 unwind label %2369

2350:                                             ; preds = %2341
  call void @llvm.lifetime.start.p0(i64 32, ptr %374) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %375) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %375)
          to label %2351 unwind label %2373

2351:                                             ; preds = %2350
  call void @llvm.lifetime.start.p0(i64 32, ptr %376) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %377) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %377) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %377)
          to label %2352 unwind label %2377

2352:                                             ; preds = %2351
  invoke void @_ZN3cgp3strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EERKS6_SD_SD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %371, ptr noundef nonnull align 8 dereferenceable(24) %368, ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef nonnull align 8 dereferenceable(32) %376)
          to label %2353 unwind label %2381

2353:                                             ; preds = %2352
  %2354 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %371, ptr noundef @.str.40)
          to label %2355 unwind label %2385

2355:                                             ; preds = %2353
  %2356 = zext i1 %2354 to i32
  %2357 = icmp eq i32 %2356, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %377) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %377) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %375) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %372) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #7
  br i1 %2357, label %2358, label %2417

2358:                                             ; preds = %2355
  call void @llvm.lifetime.start.p0(i64 32, ptr %378) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %379) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %379)
          to label %2359 unwind label %2393

2359:                                             ; preds = %2358
  call void @llvm.lifetime.start.p0(i64 32, ptr %380) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %381) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %381)
          to label %2360 unwind label %2397

2360:                                             ; preds = %2359
  call void @llvm.lifetime.start.p0(i64 32, ptr %382) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %383) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %383)
          to label %2361 unwind label %2401

2361:                                             ; preds = %2360
  call void @llvm.lifetime.start.p0(i64 32, ptr %384) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %385) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %385) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %384, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %385)
          to label %2362 unwind label %2405

2362:                                             ; preds = %2361
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef nonnull align 8 dereferenceable(32) %384, i32 noundef 76) #8
          to label %2363 unwind label %2409

2363:                                             ; preds = %2362
  unreachable

2364:                                             ; preds = %2340, %2316
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %358) #7
  br label %2365

2365:                                             ; preds = %2364, %2304
  call void @llvm.lifetime.end.p0(i64 24, ptr %358) #7
  br label %2366

2366:                                             ; preds = %2365, %2290, %2266
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %348) #7
  br label %2367

2367:                                             ; preds = %2366, %2254
  call void @llvm.lifetime.end.p0(i64 24, ptr %348) #7
  br label %2368

2368:                                             ; preds = %2367, %2240, %2216
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %338) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %338) #7
  br label %3147

2369:                                             ; preds = %2341
  %2370 = landingpad { ptr, i32 }
          cleanup
  %2371 = extractvalue { ptr, i32 } %2370, 0
  store ptr %2371, ptr %7, align 8
  %2372 = extractvalue { ptr, i32 } %2370, 1
  store i32 %2372, ptr %8, align 4
  br label %2392

2373:                                             ; preds = %2350
  %2374 = landingpad { ptr, i32 }
          cleanup
  %2375 = extractvalue { ptr, i32 } %2374, 0
  store ptr %2375, ptr %7, align 8
  %2376 = extractvalue { ptr, i32 } %2374, 1
  store i32 %2376, ptr %8, align 4
  br label %2391

2377:                                             ; preds = %2351
  %2378 = landingpad { ptr, i32 }
          cleanup
  %2379 = extractvalue { ptr, i32 } %2378, 0
  store ptr %2379, ptr %7, align 8
  %2380 = extractvalue { ptr, i32 } %2378, 1
  store i32 %2380, ptr %8, align 4
  br label %2390

2381:                                             ; preds = %2352
  %2382 = landingpad { ptr, i32 }
          cleanup
  %2383 = extractvalue { ptr, i32 } %2382, 0
  store ptr %2383, ptr %7, align 8
  %2384 = extractvalue { ptr, i32 } %2382, 1
  store i32 %2384, ptr %8, align 4
  br label %2389

2385:                                             ; preds = %2353
  %2386 = landingpad { ptr, i32 }
          cleanup
  %2387 = extractvalue { ptr, i32 } %2386, 0
  store ptr %2387, ptr %7, align 8
  %2388 = extractvalue { ptr, i32 } %2386, 1
  store i32 %2388, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #7
  br label %2389

2389:                                             ; preds = %2385, %2381
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #7
  br label %2390

2390:                                             ; preds = %2389, %2377
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %377) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %377) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  br label %2391

2391:                                             ; preds = %2390, %2373
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %375) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  br label %2392

2392:                                             ; preds = %2391, %2369
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %372) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #7
  br label %2563

2393:                                             ; preds = %2358
  %2394 = landingpad { ptr, i32 }
          cleanup
  %2395 = extractvalue { ptr, i32 } %2394, 0
  store ptr %2395, ptr %7, align 8
  %2396 = extractvalue { ptr, i32 } %2394, 1
  store i32 %2396, ptr %8, align 4
  br label %2416

2397:                                             ; preds = %2359
  %2398 = landingpad { ptr, i32 }
          cleanup
  %2399 = extractvalue { ptr, i32 } %2398, 0
  store ptr %2399, ptr %7, align 8
  %2400 = extractvalue { ptr, i32 } %2398, 1
  store i32 %2400, ptr %8, align 4
  br label %2415

2401:                                             ; preds = %2360
  %2402 = landingpad { ptr, i32 }
          cleanup
  %2403 = extractvalue { ptr, i32 } %2402, 0
  store ptr %2403, ptr %7, align 8
  %2404 = extractvalue { ptr, i32 } %2402, 1
  store i32 %2404, ptr %8, align 4
  br label %2414

2405:                                             ; preds = %2361
  %2406 = landingpad { ptr, i32 }
          cleanup
  %2407 = extractvalue { ptr, i32 } %2406, 0
  store ptr %2407, ptr %7, align 8
  %2408 = extractvalue { ptr, i32 } %2406, 1
  store i32 %2408, ptr %8, align 4
  br label %2413

2409:                                             ; preds = %2362
  %2410 = landingpad { ptr, i32 }
          cleanup
  %2411 = extractvalue { ptr, i32 } %2410, 0
  store ptr %2411, ptr %7, align 8
  %2412 = extractvalue { ptr, i32 } %2410, 1
  store i32 %2412, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %384) #7
  br label %2413

2413:                                             ; preds = %2409, %2405
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %385) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %385) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #7
  br label %2414

2414:                                             ; preds = %2413, %2401
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  br label %2415

2415:                                             ; preds = %2414, %2397
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %381) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #7
  br label %2416

2416:                                             ; preds = %2415, %2393
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %378) #7
  br label %2563

2417:                                             ; preds = %2355
  call void @llvm.lifetime.start.p0(i64 32, ptr %386) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %387) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %388) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %388)
          to label %2418 unwind label %2432

2418:                                             ; preds = %2417
  call void @llvm.lifetime.start.p0(i64 32, ptr %389) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %390) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %390)
          to label %2419 unwind label %2436

2419:                                             ; preds = %2418
  call void @llvm.lifetime.start.p0(i64 32, ptr %391) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %392) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %392)
          to label %2420 unwind label %2440

2420:                                             ; preds = %2419
  invoke void @_ZN3cgp3strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EERKS6_SD_SD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %386, ptr noundef nonnull align 8 dereferenceable(24) %368, ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull align 8 dereferenceable(32) %391)
          to label %2421 unwind label %2444

2421:                                             ; preds = %2420
  %2422 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %386, ptr noundef @.str.43)
          to label %2423 unwind label %2448

2423:                                             ; preds = %2421
  %2424 = zext i1 %2422 to i32
  %2425 = icmp eq i32 %2424, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %390) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %389) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %388) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %386) #7
  br i1 %2425, label %2426, label %2480

2426:                                             ; preds = %2423
  call void @llvm.lifetime.start.p0(i64 32, ptr %393) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %394) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %394)
          to label %2427 unwind label %2456

2427:                                             ; preds = %2426
  call void @llvm.lifetime.start.p0(i64 32, ptr %395) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %396) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %396)
          to label %2428 unwind label %2460

2428:                                             ; preds = %2427
  call void @llvm.lifetime.start.p0(i64 32, ptr %397) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %398) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %398)
          to label %2429 unwind label %2464

2429:                                             ; preds = %2428
  call void @llvm.lifetime.start.p0(i64 32, ptr %399) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %400) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %400)
          to label %2430 unwind label %2468

2430:                                             ; preds = %2429
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef nonnull align 8 dereferenceable(32) %399, i32 noundef 77) #8
          to label %2431 unwind label %2472

2431:                                             ; preds = %2430
  unreachable

2432:                                             ; preds = %2417
  %2433 = landingpad { ptr, i32 }
          cleanup
  %2434 = extractvalue { ptr, i32 } %2433, 0
  store ptr %2434, ptr %7, align 8
  %2435 = extractvalue { ptr, i32 } %2433, 1
  store i32 %2435, ptr %8, align 4
  br label %2455

2436:                                             ; preds = %2418
  %2437 = landingpad { ptr, i32 }
          cleanup
  %2438 = extractvalue { ptr, i32 } %2437, 0
  store ptr %2438, ptr %7, align 8
  %2439 = extractvalue { ptr, i32 } %2437, 1
  store i32 %2439, ptr %8, align 4
  br label %2454

2440:                                             ; preds = %2419
  %2441 = landingpad { ptr, i32 }
          cleanup
  %2442 = extractvalue { ptr, i32 } %2441, 0
  store ptr %2442, ptr %7, align 8
  %2443 = extractvalue { ptr, i32 } %2441, 1
  store i32 %2443, ptr %8, align 4
  br label %2453

2444:                                             ; preds = %2420
  %2445 = landingpad { ptr, i32 }
          cleanup
  %2446 = extractvalue { ptr, i32 } %2445, 0
  store ptr %2446, ptr %7, align 8
  %2447 = extractvalue { ptr, i32 } %2445, 1
  store i32 %2447, ptr %8, align 4
  br label %2452

2448:                                             ; preds = %2421
  %2449 = landingpad { ptr, i32 }
          cleanup
  %2450 = extractvalue { ptr, i32 } %2449, 0
  store ptr %2450, ptr %7, align 8
  %2451 = extractvalue { ptr, i32 } %2449, 1
  store i32 %2451, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #7
  br label %2452

2452:                                             ; preds = %2448, %2444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #7
  br label %2453

2453:                                             ; preds = %2452, %2440
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #7
  br label %2454

2454:                                             ; preds = %2453, %2436
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %390) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %389) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #7
  br label %2455

2455:                                             ; preds = %2454, %2432
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %388) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %386) #7
  br label %2563

2456:                                             ; preds = %2426
  %2457 = landingpad { ptr, i32 }
          cleanup
  %2458 = extractvalue { ptr, i32 } %2457, 0
  store ptr %2458, ptr %7, align 8
  %2459 = extractvalue { ptr, i32 } %2457, 1
  store i32 %2459, ptr %8, align 4
  br label %2479

2460:                                             ; preds = %2427
  %2461 = landingpad { ptr, i32 }
          cleanup
  %2462 = extractvalue { ptr, i32 } %2461, 0
  store ptr %2462, ptr %7, align 8
  %2463 = extractvalue { ptr, i32 } %2461, 1
  store i32 %2463, ptr %8, align 4
  br label %2478

2464:                                             ; preds = %2428
  %2465 = landingpad { ptr, i32 }
          cleanup
  %2466 = extractvalue { ptr, i32 } %2465, 0
  store ptr %2466, ptr %7, align 8
  %2467 = extractvalue { ptr, i32 } %2465, 1
  store i32 %2467, ptr %8, align 4
  br label %2477

2468:                                             ; preds = %2429
  %2469 = landingpad { ptr, i32 }
          cleanup
  %2470 = extractvalue { ptr, i32 } %2469, 0
  store ptr %2470, ptr %7, align 8
  %2471 = extractvalue { ptr, i32 } %2469, 1
  store i32 %2471, ptr %8, align 4
  br label %2476

2472:                                             ; preds = %2430
  %2473 = landingpad { ptr, i32 }
          cleanup
  %2474 = extractvalue { ptr, i32 } %2473, 0
  store ptr %2474, ptr %7, align 8
  %2475 = extractvalue { ptr, i32 } %2473, 1
  store i32 %2475, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #7
  br label %2476

2476:                                             ; preds = %2472, %2468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %400) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %399) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #7
  br label %2477

2477:                                             ; preds = %2476, %2464
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %398) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %397) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #7
  br label %2478

2478:                                             ; preds = %2477, %2460
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %395) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #7
  br label %2479

2479:                                             ; preds = %2478, %2456
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %394) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %393) #7
  br label %2563

2480:                                             ; preds = %2423
  call void @llvm.lifetime.start.p0(i64 32, ptr %401) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %402) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %403) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %402, ptr noundef @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %403)
          to label %2481 unwind label %2495

2481:                                             ; preds = %2480
  call void @llvm.lifetime.start.p0(i64 32, ptr %404) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %405) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %405)
          to label %2482 unwind label %2499

2482:                                             ; preds = %2481
  call void @llvm.lifetime.start.p0(i64 32, ptr %406) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %407) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %407)
          to label %2483 unwind label %2503

2483:                                             ; preds = %2482
  invoke void @_ZN3cgp3strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EERKS6_SD_SD_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %401, ptr noundef nonnull align 8 dereferenceable(24) %368, ptr noundef nonnull align 8 dereferenceable(32) %402, ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef nonnull align 8 dereferenceable(32) %406)
          to label %2484 unwind label %2507

2484:                                             ; preds = %2483
  %2485 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef @.str.47)
          to label %2486 unwind label %2511

2486:                                             ; preds = %2484
  %2487 = zext i1 %2485 to i32
  %2488 = icmp eq i32 %2487, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %407) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %406) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %405) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %402) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %403) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %402) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %401) #7
  br i1 %2488, label %2489, label %2543

2489:                                             ; preds = %2486
  call void @llvm.lifetime.start.p0(i64 32, ptr %408) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %409) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %409)
          to label %2490 unwind label %2519

2490:                                             ; preds = %2489
  call void @llvm.lifetime.start.p0(i64 32, ptr %410) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %411) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %411)
          to label %2491 unwind label %2523

2491:                                             ; preds = %2490
  call void @llvm.lifetime.start.p0(i64 32, ptr %412) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %413) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %413)
          to label %2492 unwind label %2527

2492:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 32, ptr %414) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %415) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %414, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %415)
          to label %2493 unwind label %2531

2493:                                             ; preds = %2492
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull align 8 dereferenceable(32) %414, i32 noundef 78) #8
          to label %2494 unwind label %2535

2494:                                             ; preds = %2493
  unreachable

2495:                                             ; preds = %2480
  %2496 = landingpad { ptr, i32 }
          cleanup
  %2497 = extractvalue { ptr, i32 } %2496, 0
  store ptr %2497, ptr %7, align 8
  %2498 = extractvalue { ptr, i32 } %2496, 1
  store i32 %2498, ptr %8, align 4
  br label %2518

2499:                                             ; preds = %2481
  %2500 = landingpad { ptr, i32 }
          cleanup
  %2501 = extractvalue { ptr, i32 } %2500, 0
  store ptr %2501, ptr %7, align 8
  %2502 = extractvalue { ptr, i32 } %2500, 1
  store i32 %2502, ptr %8, align 4
  br label %2517

2503:                                             ; preds = %2482
  %2504 = landingpad { ptr, i32 }
          cleanup
  %2505 = extractvalue { ptr, i32 } %2504, 0
  store ptr %2505, ptr %7, align 8
  %2506 = extractvalue { ptr, i32 } %2504, 1
  store i32 %2506, ptr %8, align 4
  br label %2516

2507:                                             ; preds = %2483
  %2508 = landingpad { ptr, i32 }
          cleanup
  %2509 = extractvalue { ptr, i32 } %2508, 0
  store ptr %2509, ptr %7, align 8
  %2510 = extractvalue { ptr, i32 } %2508, 1
  store i32 %2510, ptr %8, align 4
  br label %2515

2511:                                             ; preds = %2484
  %2512 = landingpad { ptr, i32 }
          cleanup
  %2513 = extractvalue { ptr, i32 } %2512, 0
  store ptr %2513, ptr %7, align 8
  %2514 = extractvalue { ptr, i32 } %2512, 1
  store i32 %2514, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #7
  br label %2515

2515:                                             ; preds = %2511, %2507
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #7
  br label %2516

2516:                                             ; preds = %2515, %2503
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %407) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %406) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #7
  br label %2517

2517:                                             ; preds = %2516, %2499
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %405) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %402) #7
  br label %2518

2518:                                             ; preds = %2517, %2495
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %403) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %402) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %401) #7
  br label %2563

2519:                                             ; preds = %2489
  %2520 = landingpad { ptr, i32 }
          cleanup
  %2521 = extractvalue { ptr, i32 } %2520, 0
  store ptr %2521, ptr %7, align 8
  %2522 = extractvalue { ptr, i32 } %2520, 1
  store i32 %2522, ptr %8, align 4
  br label %2542

2523:                                             ; preds = %2490
  %2524 = landingpad { ptr, i32 }
          cleanup
  %2525 = extractvalue { ptr, i32 } %2524, 0
  store ptr %2525, ptr %7, align 8
  %2526 = extractvalue { ptr, i32 } %2524, 1
  store i32 %2526, ptr %8, align 4
  br label %2541

2527:                                             ; preds = %2491
  %2528 = landingpad { ptr, i32 }
          cleanup
  %2529 = extractvalue { ptr, i32 } %2528, 0
  store ptr %2529, ptr %7, align 8
  %2530 = extractvalue { ptr, i32 } %2528, 1
  store i32 %2530, ptr %8, align 4
  br label %2540

2531:                                             ; preds = %2492
  %2532 = landingpad { ptr, i32 }
          cleanup
  %2533 = extractvalue { ptr, i32 } %2532, 0
  store ptr %2533, ptr %7, align 8
  %2534 = extractvalue { ptr, i32 } %2532, 1
  store i32 %2534, ptr %8, align 4
  br label %2539

2535:                                             ; preds = %2493
  %2536 = landingpad { ptr, i32 }
          cleanup
  %2537 = extractvalue { ptr, i32 } %2536, 0
  store ptr %2537, ptr %7, align 8
  %2538 = extractvalue { ptr, i32 } %2536, 1
  store i32 %2538, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #7
  br label %2539

2539:                                             ; preds = %2535, %2531
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %415) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %414) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  br label %2540

2540:                                             ; preds = %2539, %2527
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %413) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %412) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #7
  br label %2541

2541:                                             ; preds = %2540, %2523
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %411) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %410) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #7
  br label %2542

2542:                                             ; preds = %2541, %2519
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %409) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %408) #7
  br label %2563

2543:                                             ; preds = %2486
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %368) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %368) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %416) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %418) #7
  store i32 4, ptr %418, align 4, !tbaa !5
  %2544 = getelementptr inbounds i32, ptr %418, i64 1
  store i32 5, ptr %2544, align 4, !tbaa !5
  %2545 = getelementptr inbounds i32, ptr %418, i64 2
  store i32 6, ptr %2545, align 4, !tbaa !5
  %2546 = getelementptr inbounds %"class.std::initializer_list", ptr %417, i32 0, i32 0
  store ptr %418, ptr %2546, align 8, !tbaa !9
  %2547 = getelementptr inbounds %"class.std::initializer_list", ptr %417, i32 0, i32 1
  store i64 3, ptr %2547, align 8, !tbaa !13
  %2548 = getelementptr inbounds { ptr, i64 }, ptr %417, i32 0, i32 0
  %2549 = load ptr, ptr %2548, align 8
  %2550 = getelementptr inbounds { ptr, i64 }, ptr %417, i32 0, i32 1
  %2551 = load i64, ptr %2550, align 8
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %416, ptr %2549, i64 %2551)
  call void @llvm.lifetime.end.p0(i64 12, ptr %418) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %419) #7
  store i32 0, ptr %419, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %420) #7
  store ptr %416, ptr %420, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %421) #7
  %2552 = load ptr, ptr %420, align 8, !tbaa !24
  %2553 = invoke ptr @_ZN3cgp8numarrayIiE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2552)
          to label %2554 unwind label %2564

2554:                                             ; preds = %2543
  %2555 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %421, i32 0, i32 0
  store ptr %2553, ptr %2555, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %422) #7
  %2556 = load ptr, ptr %420, align 8, !tbaa !24
  %2557 = invoke ptr @_ZN3cgp8numarrayIiE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2556)
          to label %2558 unwind label %2568

2558:                                             ; preds = %2554
  %2559 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %422, i32 0, i32 0
  store ptr %2557, ptr %2559, align 8
  br label %2560

2560:                                             ; preds = %2694, %2558
  %2561 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %421, ptr noundef nonnull align 8 dereferenceable(8) %422) #7
  br i1 %2561, label %2572, label %2562

2562:                                             ; preds = %2560
  call void @llvm.lifetime.end.p0(i64 8, ptr %422) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %421) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %420) #7
  br label %2699

2563:                                             ; preds = %2542, %2518, %2479, %2455, %2416, %2392
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %368) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %368) #7
  br label %3147

2564:                                             ; preds = %2543
  %2565 = landingpad { ptr, i32 }
          cleanup
  %2566 = extractvalue { ptr, i32 } %2565, 0
  store ptr %2566, ptr %7, align 8
  %2567 = extractvalue { ptr, i32 } %2565, 1
  store i32 %2567, ptr %8, align 4
  br label %2698

2568:                                             ; preds = %2554
  %2569 = landingpad { ptr, i32 }
          cleanup
  %2570 = extractvalue { ptr, i32 } %2569, 0
  store ptr %2570, ptr %7, align 8
  %2571 = extractvalue { ptr, i32 } %2569, 1
  store i32 %2571, ptr %8, align 4
  br label %2697

2572:                                             ; preds = %2560
  call void @llvm.lifetime.start.p0(i64 4, ptr %423) #7
  %2573 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %421) #7
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  store i32 %2574, ptr %423, align 4, !tbaa !5
  %2575 = load i32, ptr %419, align 4, !tbaa !5
  %2576 = icmp eq i32 %2575, 0
  br i1 %2576, label %2577, label %2613

2577:                                             ; preds = %2572
  %2578 = load i32, ptr %423, align 4, !tbaa !5
  %2579 = icmp eq i32 %2578, 4
  %2580 = zext i1 %2579 to i32
  %2581 = icmp eq i32 %2580, 0
  br i1 %2581, label %2582, label %2612

2582:                                             ; preds = %2577
  call void @llvm.lifetime.start.p0(i64 32, ptr %424) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %425) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %425) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %425)
          to label %2583 unwind label %2588

2583:                                             ; preds = %2582
  call void @llvm.lifetime.start.p0(i64 32, ptr %426) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %427) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %427) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %426, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %427)
          to label %2584 unwind label %2592

2584:                                             ; preds = %2583
  call void @llvm.lifetime.start.p0(i64 32, ptr %428) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %429) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %429) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %429)
          to label %2585 unwind label %2596

2585:                                             ; preds = %2584
  call void @llvm.lifetime.start.p0(i64 32, ptr %430) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %431) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %430, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %431)
          to label %2586 unwind label %2600

2586:                                             ; preds = %2585
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef nonnull align 8 dereferenceable(32) %426, ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef nonnull align 8 dereferenceable(32) %430, i32 noundef 85) #8
          to label %2587 unwind label %2604

2587:                                             ; preds = %2586
  unreachable

2588:                                             ; preds = %2582
  %2589 = landingpad { ptr, i32 }
          cleanup
  %2590 = extractvalue { ptr, i32 } %2589, 0
  store ptr %2590, ptr %7, align 8
  %2591 = extractvalue { ptr, i32 } %2589, 1
  store i32 %2591, ptr %8, align 4
  br label %2611

2592:                                             ; preds = %2583
  %2593 = landingpad { ptr, i32 }
          cleanup
  %2594 = extractvalue { ptr, i32 } %2593, 0
  store ptr %2594, ptr %7, align 8
  %2595 = extractvalue { ptr, i32 } %2593, 1
  store i32 %2595, ptr %8, align 4
  br label %2610

2596:                                             ; preds = %2584
  %2597 = landingpad { ptr, i32 }
          cleanup
  %2598 = extractvalue { ptr, i32 } %2597, 0
  store ptr %2598, ptr %7, align 8
  %2599 = extractvalue { ptr, i32 } %2597, 1
  store i32 %2599, ptr %8, align 4
  br label %2609

2600:                                             ; preds = %2585
  %2601 = landingpad { ptr, i32 }
          cleanup
  %2602 = extractvalue { ptr, i32 } %2601, 0
  store ptr %2602, ptr %7, align 8
  %2603 = extractvalue { ptr, i32 } %2601, 1
  store i32 %2603, ptr %8, align 4
  br label %2608

2604:                                             ; preds = %2586
  %2605 = landingpad { ptr, i32 }
          cleanup
  %2606 = extractvalue { ptr, i32 } %2605, 0
  store ptr %2606, ptr %7, align 8
  %2607 = extractvalue { ptr, i32 } %2605, 1
  store i32 %2607, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %430) #7
  br label %2608

2608:                                             ; preds = %2604, %2600
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %431) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %430) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #7
  br label %2609

2609:                                             ; preds = %2608, %2596
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %429) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %429) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %428) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %426) #7
  br label %2610

2610:                                             ; preds = %2609, %2592
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %427) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %427) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %426) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #7
  br label %2611

2611:                                             ; preds = %2610, %2588
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %425) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %425) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %424) #7
  br label %2696

2612:                                             ; preds = %2577
  br label %2613

2613:                                             ; preds = %2612, %2572
  %2614 = load i32, ptr %419, align 4, !tbaa !5
  %2615 = icmp eq i32 %2614, 1
  br i1 %2615, label %2616, label %2652

2616:                                             ; preds = %2613
  %2617 = load i32, ptr %423, align 4, !tbaa !5
  %2618 = icmp eq i32 %2617, 5
  %2619 = zext i1 %2618 to i32
  %2620 = icmp eq i32 %2619, 0
  br i1 %2620, label %2621, label %2651

2621:                                             ; preds = %2616
  call void @llvm.lifetime.start.p0(i64 32, ptr %432) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %433) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %433) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %433)
          to label %2622 unwind label %2627

2622:                                             ; preds = %2621
  call void @llvm.lifetime.start.p0(i64 32, ptr %434) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %435) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %435)
          to label %2623 unwind label %2631

2623:                                             ; preds = %2622
  call void @llvm.lifetime.start.p0(i64 32, ptr %436) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %437) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %437)
          to label %2624 unwind label %2635

2624:                                             ; preds = %2623
  call void @llvm.lifetime.start.p0(i64 32, ptr %438) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %439) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %439) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %439)
          to label %2625 unwind label %2639

2625:                                             ; preds = %2624
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef nonnull align 8 dereferenceable(32) %438, i32 noundef 86) #8
          to label %2626 unwind label %2643

2626:                                             ; preds = %2625
  unreachable

2627:                                             ; preds = %2621
  %2628 = landingpad { ptr, i32 }
          cleanup
  %2629 = extractvalue { ptr, i32 } %2628, 0
  store ptr %2629, ptr %7, align 8
  %2630 = extractvalue { ptr, i32 } %2628, 1
  store i32 %2630, ptr %8, align 4
  br label %2650

2631:                                             ; preds = %2622
  %2632 = landingpad { ptr, i32 }
          cleanup
  %2633 = extractvalue { ptr, i32 } %2632, 0
  store ptr %2633, ptr %7, align 8
  %2634 = extractvalue { ptr, i32 } %2632, 1
  store i32 %2634, ptr %8, align 4
  br label %2649

2635:                                             ; preds = %2623
  %2636 = landingpad { ptr, i32 }
          cleanup
  %2637 = extractvalue { ptr, i32 } %2636, 0
  store ptr %2637, ptr %7, align 8
  %2638 = extractvalue { ptr, i32 } %2636, 1
  store i32 %2638, ptr %8, align 4
  br label %2648

2639:                                             ; preds = %2624
  %2640 = landingpad { ptr, i32 }
          cleanup
  %2641 = extractvalue { ptr, i32 } %2640, 0
  store ptr %2641, ptr %7, align 8
  %2642 = extractvalue { ptr, i32 } %2640, 1
  store i32 %2642, ptr %8, align 4
  br label %2647

2643:                                             ; preds = %2625
  %2644 = landingpad { ptr, i32 }
          cleanup
  %2645 = extractvalue { ptr, i32 } %2644, 0
  store ptr %2645, ptr %7, align 8
  %2646 = extractvalue { ptr, i32 } %2644, 1
  store i32 %2646, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #7
  br label %2647

2647:                                             ; preds = %2643, %2639
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %439) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %439) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #7
  br label %2648

2648:                                             ; preds = %2647, %2635
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %437) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #7
  br label %2649

2649:                                             ; preds = %2648, %2631
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %435) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %434) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #7
  br label %2650

2650:                                             ; preds = %2649, %2627
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %433) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %433) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %432) #7
  br label %2696

2651:                                             ; preds = %2616
  br label %2652

2652:                                             ; preds = %2651, %2613
  %2653 = load i32, ptr %419, align 4, !tbaa !5
  %2654 = icmp eq i32 %2653, 2
  br i1 %2654, label %2655, label %2691

2655:                                             ; preds = %2652
  %2656 = load i32, ptr %423, align 4, !tbaa !5
  %2657 = icmp eq i32 %2656, 6
  %2658 = zext i1 %2657 to i32
  %2659 = icmp eq i32 %2658, 0
  br i1 %2659, label %2660, label %2690

2660:                                             ; preds = %2655
  call void @llvm.lifetime.start.p0(i64 32, ptr %440) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %441) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %441) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %440, ptr noundef @.str.51, ptr noundef nonnull align 1 dereferenceable(1) %441)
          to label %2661 unwind label %2666

2661:                                             ; preds = %2660
  call void @llvm.lifetime.start.p0(i64 32, ptr %442) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %443) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %443) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %442, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %443)
          to label %2662 unwind label %2670

2662:                                             ; preds = %2661
  call void @llvm.lifetime.start.p0(i64 32, ptr %444) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %445) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %445) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %444, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %445)
          to label %2663 unwind label %2674

2663:                                             ; preds = %2662
  call void @llvm.lifetime.start.p0(i64 32, ptr %446) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %447) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %447)
          to label %2664 unwind label %2678

2664:                                             ; preds = %2663
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %440, ptr noundef nonnull align 8 dereferenceable(32) %442, ptr noundef nonnull align 8 dereferenceable(32) %444, ptr noundef nonnull align 8 dereferenceable(32) %446, i32 noundef 87) #8
          to label %2665 unwind label %2682

2665:                                             ; preds = %2664
  unreachable

2666:                                             ; preds = %2660
  %2667 = landingpad { ptr, i32 }
          cleanup
  %2668 = extractvalue { ptr, i32 } %2667, 0
  store ptr %2668, ptr %7, align 8
  %2669 = extractvalue { ptr, i32 } %2667, 1
  store i32 %2669, ptr %8, align 4
  br label %2689

2670:                                             ; preds = %2661
  %2671 = landingpad { ptr, i32 }
          cleanup
  %2672 = extractvalue { ptr, i32 } %2671, 0
  store ptr %2672, ptr %7, align 8
  %2673 = extractvalue { ptr, i32 } %2671, 1
  store i32 %2673, ptr %8, align 4
  br label %2688

2674:                                             ; preds = %2662
  %2675 = landingpad { ptr, i32 }
          cleanup
  %2676 = extractvalue { ptr, i32 } %2675, 0
  store ptr %2676, ptr %7, align 8
  %2677 = extractvalue { ptr, i32 } %2675, 1
  store i32 %2677, ptr %8, align 4
  br label %2687

2678:                                             ; preds = %2663
  %2679 = landingpad { ptr, i32 }
          cleanup
  %2680 = extractvalue { ptr, i32 } %2679, 0
  store ptr %2680, ptr %7, align 8
  %2681 = extractvalue { ptr, i32 } %2679, 1
  store i32 %2681, ptr %8, align 4
  br label %2686

2682:                                             ; preds = %2664
  %2683 = landingpad { ptr, i32 }
          cleanup
  %2684 = extractvalue { ptr, i32 } %2683, 0
  store ptr %2684, ptr %7, align 8
  %2685 = extractvalue { ptr, i32 } %2683, 1
  store i32 %2685, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #7
  br label %2686

2686:                                             ; preds = %2682, %2678
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %447) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %446) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  br label %2687

2687:                                             ; preds = %2686, %2674
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %445) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %445) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %444) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %442) #7
  br label %2688

2688:                                             ; preds = %2687, %2670
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %443) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %443) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %442) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #7
  br label %2689

2689:                                             ; preds = %2688, %2666
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %441) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %441) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %440) #7
  br label %2696

2690:                                             ; preds = %2655
  br label %2691

2691:                                             ; preds = %2690, %2652
  %2692 = load i32, ptr %419, align 4, !tbaa !5
  %2693 = add nsw i32 %2692, 1
  store i32 %2693, ptr %419, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %423) #7
  br label %2694

2694:                                             ; preds = %2691
  %2695 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %421) #7
  br label %2560

2696:                                             ; preds = %2689, %2650, %2611
  call void @llvm.lifetime.end.p0(i64 4, ptr %423) #7
  br label %2697

2697:                                             ; preds = %2696, %2568
  call void @llvm.lifetime.end.p0(i64 8, ptr %422) #7
  br label %2698

2698:                                             ; preds = %2697, %2564
  call void @llvm.lifetime.end.p0(i64 8, ptr %421) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %420) #7
  br label %2755

2699:                                             ; preds = %2562
  %2700 = load i32, ptr %419, align 4, !tbaa !5
  %2701 = icmp eq i32 %2700, 3
  %2702 = zext i1 %2701 to i32
  %2703 = icmp eq i32 %2702, 0
  br i1 %2703, label %2704, label %2734

2704:                                             ; preds = %2699
  call void @llvm.lifetime.start.p0(i64 32, ptr %448) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %449) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %449)
          to label %2705 unwind label %2710

2705:                                             ; preds = %2704
  call void @llvm.lifetime.start.p0(i64 32, ptr %450) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %451) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %451)
          to label %2706 unwind label %2714

2706:                                             ; preds = %2705
  call void @llvm.lifetime.start.p0(i64 32, ptr %452) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %453) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %453) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %453)
          to label %2707 unwind label %2718

2707:                                             ; preds = %2706
  call void @llvm.lifetime.start.p0(i64 32, ptr %454) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %455) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %455)
          to label %2708 unwind label %2722

2708:                                             ; preds = %2707
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef nonnull align 8 dereferenceable(32) %454, i32 noundef 90) #8
          to label %2709 unwind label %2726

2709:                                             ; preds = %2708
  unreachable

2710:                                             ; preds = %2704
  %2711 = landingpad { ptr, i32 }
          cleanup
  %2712 = extractvalue { ptr, i32 } %2711, 0
  store ptr %2712, ptr %7, align 8
  %2713 = extractvalue { ptr, i32 } %2711, 1
  store i32 %2713, ptr %8, align 4
  br label %2733

2714:                                             ; preds = %2705
  %2715 = landingpad { ptr, i32 }
          cleanup
  %2716 = extractvalue { ptr, i32 } %2715, 0
  store ptr %2716, ptr %7, align 8
  %2717 = extractvalue { ptr, i32 } %2715, 1
  store i32 %2717, ptr %8, align 4
  br label %2732

2718:                                             ; preds = %2706
  %2719 = landingpad { ptr, i32 }
          cleanup
  %2720 = extractvalue { ptr, i32 } %2719, 0
  store ptr %2720, ptr %7, align 8
  %2721 = extractvalue { ptr, i32 } %2719, 1
  store i32 %2721, ptr %8, align 4
  br label %2731

2722:                                             ; preds = %2707
  %2723 = landingpad { ptr, i32 }
          cleanup
  %2724 = extractvalue { ptr, i32 } %2723, 0
  store ptr %2724, ptr %7, align 8
  %2725 = extractvalue { ptr, i32 } %2723, 1
  store i32 %2725, ptr %8, align 4
  br label %2730

2726:                                             ; preds = %2708
  %2727 = landingpad { ptr, i32 }
          cleanup
  %2728 = extractvalue { ptr, i32 } %2727, 0
  store ptr %2728, ptr %7, align 8
  %2729 = extractvalue { ptr, i32 } %2727, 1
  store i32 %2729, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #7
  br label %2730

2730:                                             ; preds = %2726, %2722
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %455) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %454) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #7
  br label %2731

2731:                                             ; preds = %2730, %2718
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %453) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %453) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %452) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #7
  br label %2732

2732:                                             ; preds = %2731, %2714
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %451) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %450) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #7
  br label %2733

2733:                                             ; preds = %2732, %2710
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %449) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %448) #7
  br label %2755

2734:                                             ; preds = %2699
  call void @llvm.lifetime.end.p0(i64 4, ptr %419) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %416) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %416) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %456) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %458) #7
  store i32 7, ptr %458, align 4, !tbaa !5
  %2735 = getelementptr inbounds i32, ptr %458, i64 1
  store i32 5, ptr %2735, align 4, !tbaa !5
  %2736 = getelementptr inbounds i32, ptr %458, i64 2
  store i32 -1, ptr %2736, align 4, !tbaa !5
  %2737 = getelementptr inbounds %"class.std::initializer_list", ptr %457, i32 0, i32 0
  store ptr %458, ptr %2737, align 8, !tbaa !9
  %2738 = getelementptr inbounds %"class.std::initializer_list", ptr %457, i32 0, i32 1
  store i64 3, ptr %2738, align 8, !tbaa !13
  %2739 = getelementptr inbounds { ptr, i64 }, ptr %457, i32 0, i32 0
  %2740 = load ptr, ptr %2739, align 8
  %2741 = getelementptr inbounds { ptr, i64 }, ptr %457, i32 0, i32 1
  %2742 = load i64, ptr %2741, align 8
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %456, ptr %2740, i64 %2742)
  call void @llvm.lifetime.end.p0(i64 12, ptr %458) #7
  %2743 = invoke noundef i32 @_ZN3cgp14size_in_memoryIiEEiRKNS_8numarrayIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %456)
          to label %2744 unwind label %2756

2744:                                             ; preds = %2734
  %2745 = sext i32 %2743 to i64
  %2746 = icmp eq i64 %2745, 12
  %2747 = zext i1 %2746 to i32
  %2748 = icmp eq i32 %2747, 0
  br i1 %2748, label %2749, label %2784

2749:                                             ; preds = %2744
  call void @llvm.lifetime.start.p0(i64 32, ptr %459) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %460) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %460) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %459, ptr noundef @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %460)
          to label %2750 unwind label %2760

2750:                                             ; preds = %2749
  call void @llvm.lifetime.start.p0(i64 32, ptr %461) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %462) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %462) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %461, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %462)
          to label %2751 unwind label %2764

2751:                                             ; preds = %2750
  call void @llvm.lifetime.start.p0(i64 32, ptr %463) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %464) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %463, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %464)
          to label %2752 unwind label %2768

2752:                                             ; preds = %2751
  call void @llvm.lifetime.start.p0(i64 32, ptr %465) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %466) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %466) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %465, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %466)
          to label %2753 unwind label %2772

2753:                                             ; preds = %2752
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %459, ptr noundef nonnull align 8 dereferenceable(32) %461, ptr noundef nonnull align 8 dereferenceable(32) %463, ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef 95) #8
          to label %2754 unwind label %2776

2754:                                             ; preds = %2753
  unreachable

2755:                                             ; preds = %2733, %2698
  call void @llvm.lifetime.end.p0(i64 4, ptr %419) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %416) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %416) #7
  br label %3147

2756:                                             ; preds = %2734
  %2757 = landingpad { ptr, i32 }
          cleanup
  %2758 = extractvalue { ptr, i32 } %2757, 0
  store ptr %2758, ptr %7, align 8
  %2759 = extractvalue { ptr, i32 } %2757, 1
  store i32 %2759, ptr %8, align 4
  br label %2915

2760:                                             ; preds = %2749
  %2761 = landingpad { ptr, i32 }
          cleanup
  %2762 = extractvalue { ptr, i32 } %2761, 0
  store ptr %2762, ptr %7, align 8
  %2763 = extractvalue { ptr, i32 } %2761, 1
  store i32 %2763, ptr %8, align 4
  br label %2783

2764:                                             ; preds = %2750
  %2765 = landingpad { ptr, i32 }
          cleanup
  %2766 = extractvalue { ptr, i32 } %2765, 0
  store ptr %2766, ptr %7, align 8
  %2767 = extractvalue { ptr, i32 } %2765, 1
  store i32 %2767, ptr %8, align 4
  br label %2782

2768:                                             ; preds = %2751
  %2769 = landingpad { ptr, i32 }
          cleanup
  %2770 = extractvalue { ptr, i32 } %2769, 0
  store ptr %2770, ptr %7, align 8
  %2771 = extractvalue { ptr, i32 } %2769, 1
  store i32 %2771, ptr %8, align 4
  br label %2781

2772:                                             ; preds = %2752
  %2773 = landingpad { ptr, i32 }
          cleanup
  %2774 = extractvalue { ptr, i32 } %2773, 0
  store ptr %2774, ptr %7, align 8
  %2775 = extractvalue { ptr, i32 } %2773, 1
  store i32 %2775, ptr %8, align 4
  br label %2780

2776:                                             ; preds = %2753
  %2777 = landingpad { ptr, i32 }
          cleanup
  %2778 = extractvalue { ptr, i32 } %2777, 0
  store ptr %2778, ptr %7, align 8
  %2779 = extractvalue { ptr, i32 } %2777, 1
  store i32 %2779, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %465) #7
  br label %2780

2780:                                             ; preds = %2776, %2772
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %466) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %466) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %465) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #7
  br label %2781

2781:                                             ; preds = %2780, %2768
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %464) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %463) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #7
  br label %2782

2782:                                             ; preds = %2781, %2764
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %462) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %462) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %461) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %459) #7
  br label %2783

2783:                                             ; preds = %2782, %2760
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %460) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %460) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %459) #7
  br label %2915

2784:                                             ; preds = %2744
  call void @llvm.lifetime.start.p0(i64 24, ptr %467) #7
  call void @llvm.lifetime.start.p0(i64 72, ptr %469) #7
  store i1 true, ptr %477, align 1
  store ptr %469, ptr %470, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %472) #7
  store i32 1, ptr %472, align 4, !tbaa !5
  %2785 = getelementptr inbounds i32, ptr %472, i64 1
  store i32 2, ptr %2785, align 4, !tbaa !5
  %2786 = getelementptr inbounds %"class.std::initializer_list", ptr %471, i32 0, i32 0
  store ptr %472, ptr %2786, align 8, !tbaa !9
  %2787 = getelementptr inbounds %"class.std::initializer_list", ptr %471, i32 0, i32 1
  store i64 2, ptr %2787, align 8, !tbaa !13
  %2788 = getelementptr inbounds { ptr, i64 }, ptr %471, i32 0, i32 0
  %2789 = load ptr, ptr %2788, align 8
  %2790 = getelementptr inbounds { ptr, i64 }, ptr %471, i32 0, i32 1
  %2791 = load i64, ptr %2790, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %469, ptr %2789, i64 %2791)
          to label %2792 unwind label %2837

2792:                                             ; preds = %2784
  %2793 = getelementptr inbounds %"struct.cgp::numarray", ptr %469, i64 1
  store ptr %2793, ptr %470, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr %474) #7
  store i32 2, ptr %474, align 4, !tbaa !5
  %2794 = getelementptr inbounds i32, ptr %474, i64 1
  store i32 3, ptr %2794, align 4, !tbaa !5
  %2795 = getelementptr inbounds i32, ptr %474, i64 2
  store i32 4, ptr %2795, align 4, !tbaa !5
  %2796 = getelementptr inbounds %"class.std::initializer_list", ptr %473, i32 0, i32 0
  store ptr %474, ptr %2796, align 8, !tbaa !9
  %2797 = getelementptr inbounds %"class.std::initializer_list", ptr %473, i32 0, i32 1
  store i64 3, ptr %2797, align 8, !tbaa !13
  %2798 = getelementptr inbounds { ptr, i64 }, ptr %473, i32 0, i32 0
  %2799 = load ptr, ptr %2798, align 8
  %2800 = getelementptr inbounds { ptr, i64 }, ptr %473, i32 0, i32 1
  %2801 = load i64, ptr %2800, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %2793, ptr %2799, i64 %2801)
          to label %2802 unwind label %2841

2802:                                             ; preds = %2792
  %2803 = getelementptr inbounds %"struct.cgp::numarray", ptr %469, i64 2
  store ptr %2803, ptr %470, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %476) #7
  store i32 -1, ptr %476, align 4, !tbaa !5
  %2804 = getelementptr inbounds %"class.std::initializer_list", ptr %475, i32 0, i32 0
  store ptr %476, ptr %2804, align 8, !tbaa !9
  %2805 = getelementptr inbounds %"class.std::initializer_list", ptr %475, i32 0, i32 1
  store i64 1, ptr %2805, align 8, !tbaa !13
  %2806 = getelementptr inbounds { ptr, i64 }, ptr %475, i32 0, i32 0
  %2807 = load ptr, ptr %2806, align 8
  %2808 = getelementptr inbounds { ptr, i64 }, ptr %475, i32 0, i32 1
  %2809 = load i64, ptr %2808, align 8
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %2803, ptr %2807, i64 %2809)
          to label %2810 unwind label %2845

2810:                                             ; preds = %2802
  store i1 false, ptr %477, align 1
  %2811 = getelementptr inbounds %"class.std::initializer_list.16", ptr %468, i32 0, i32 0
  store ptr %469, ptr %2811, align 8, !tbaa !21
  %2812 = getelementptr inbounds %"class.std::initializer_list.16", ptr %468, i32 0, i32 1
  store i64 3, ptr %2812, align 8, !tbaa !23
  %2813 = getelementptr inbounds { ptr, i64 }, ptr %468, i32 0, i32 0
  %2814 = load ptr, ptr %2813, align 8
  %2815 = getelementptr inbounds { ptr, i64 }, ptr %468, i32 0, i32 1
  %2816 = load i64, ptr %2815, align 8
  invoke void @_ZN3cgp8numarrayINS0_IiEEEC2ESt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(24) %467, ptr %2814, i64 %2816)
          to label %2817 unwind label %2849

2817:                                             ; preds = %2810
  %2818 = getelementptr inbounds [3 x %"struct.cgp::numarray"], ptr %469, i32 0, i32 0
  %2819 = getelementptr inbounds %"struct.cgp::numarray", ptr %2818, i64 3
  br label %2820

2820:                                             ; preds = %2820, %2817
  %2821 = phi ptr [ %2819, %2817 ], [ %2822, %2820 ]
  %2822 = getelementptr inbounds %"struct.cgp::numarray", ptr %2821, i64 -1
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2822) #7
  %2823 = icmp eq ptr %2822, %2818
  br i1 %2823, label %2824, label %2820

2824:                                             ; preds = %2820
  call void @llvm.lifetime.end.p0(i64 4, ptr %476) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %474) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %472) #7
  call void @llvm.lifetime.end.p0(i64 72, ptr %469) #7
  %2825 = invoke noundef i32 @_ZN3cgp14size_in_memoryINS_8numarrayIiEEEEiRKNS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(24) %467)
          to label %2826 unwind label %2873

2826:                                             ; preds = %2824
  %2827 = sext i32 %2825 to i64
  %2828 = icmp eq i64 %2827, 24
  %2829 = zext i1 %2828 to i32
  %2830 = icmp eq i32 %2829, 0
  br i1 %2830, label %2831, label %2901

2831:                                             ; preds = %2826
  call void @llvm.lifetime.start.p0(i64 32, ptr %478) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %479) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %479)
          to label %2832 unwind label %2877

2832:                                             ; preds = %2831
  call void @llvm.lifetime.start.p0(i64 32, ptr %480) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %481) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %481)
          to label %2833 unwind label %2881

2833:                                             ; preds = %2832
  call void @llvm.lifetime.start.p0(i64 32, ptr %482) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %483) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %483)
          to label %2834 unwind label %2885

2834:                                             ; preds = %2833
  call void @llvm.lifetime.start.p0(i64 32, ptr %484) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %485) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %485)
          to label %2835 unwind label %2889

2835:                                             ; preds = %2834
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef nonnull align 8 dereferenceable(32) %484, i32 noundef 98) #8
          to label %2836 unwind label %2893

2836:                                             ; preds = %2835
  unreachable

2837:                                             ; preds = %2784
  %2838 = landingpad { ptr, i32 }
          cleanup
  %2839 = extractvalue { ptr, i32 } %2838, 0
  store ptr %2839, ptr %7, align 8
  %2840 = extractvalue { ptr, i32 } %2838, 1
  store i32 %2840, ptr %8, align 4
  br label %2862

2841:                                             ; preds = %2792
  %2842 = landingpad { ptr, i32 }
          cleanup
  %2843 = extractvalue { ptr, i32 } %2842, 0
  store ptr %2843, ptr %7, align 8
  %2844 = extractvalue { ptr, i32 } %2842, 1
  store i32 %2844, ptr %8, align 4
  br label %2861

2845:                                             ; preds = %2802
  %2846 = landingpad { ptr, i32 }
          cleanup
  %2847 = extractvalue { ptr, i32 } %2846, 0
  store ptr %2847, ptr %7, align 8
  %2848 = extractvalue { ptr, i32 } %2846, 1
  store i32 %2848, ptr %8, align 4
  br label %2860

2849:                                             ; preds = %2810
  %2850 = landingpad { ptr, i32 }
          cleanup
  %2851 = extractvalue { ptr, i32 } %2850, 0
  store ptr %2851, ptr %7, align 8
  %2852 = extractvalue { ptr, i32 } %2850, 1
  store i32 %2852, ptr %8, align 4
  %2853 = getelementptr inbounds [3 x %"struct.cgp::numarray"], ptr %469, i32 0, i32 0
  %2854 = getelementptr inbounds %"struct.cgp::numarray", ptr %2853, i64 3
  br label %2855

2855:                                             ; preds = %2855, %2849
  %2856 = phi ptr [ %2854, %2849 ], [ %2857, %2855 ]
  %2857 = getelementptr inbounds %"struct.cgp::numarray", ptr %2856, i64 -1
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2857) #7
  %2858 = icmp eq ptr %2857, %2853
  br i1 %2858, label %2859, label %2855

2859:                                             ; preds = %2855
  br label %2860

2860:                                             ; preds = %2859, %2845
  call void @llvm.lifetime.end.p0(i64 4, ptr %476) #7
  br label %2861

2861:                                             ; preds = %2860, %2841
  call void @llvm.lifetime.end.p0(i64 12, ptr %474) #7
  br label %2862

2862:                                             ; preds = %2861, %2837
  call void @llvm.lifetime.end.p0(i64 8, ptr %472) #7
  %2863 = load i1, ptr %477, align 1
  br i1 %2863, label %2864, label %2872

2864:                                             ; preds = %2862
  %2865 = load ptr, ptr %470, align 8
  %2866 = icmp eq ptr %469, %2865
  br i1 %2866, label %2871, label %2867

2867:                                             ; preds = %2867, %2864
  %2868 = phi ptr [ %2865, %2864 ], [ %2869, %2867 ]
  %2869 = getelementptr inbounds %"struct.cgp::numarray", ptr %2868, i64 -1
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2869) #7
  %2870 = icmp eq ptr %2869, %469
  br i1 %2870, label %2871, label %2867

2871:                                             ; preds = %2867, %2864
  br label %2872

2872:                                             ; preds = %2871, %2862
  call void @llvm.lifetime.end.p0(i64 72, ptr %469) #7
  br label %2914

2873:                                             ; preds = %2824
  %2874 = landingpad { ptr, i32 }
          cleanup
  %2875 = extractvalue { ptr, i32 } %2874, 0
  store ptr %2875, ptr %7, align 8
  %2876 = extractvalue { ptr, i32 } %2874, 1
  store i32 %2876, ptr %8, align 4
  br label %2913

2877:                                             ; preds = %2831
  %2878 = landingpad { ptr, i32 }
          cleanup
  %2879 = extractvalue { ptr, i32 } %2878, 0
  store ptr %2879, ptr %7, align 8
  %2880 = extractvalue { ptr, i32 } %2878, 1
  store i32 %2880, ptr %8, align 4
  br label %2900

2881:                                             ; preds = %2832
  %2882 = landingpad { ptr, i32 }
          cleanup
  %2883 = extractvalue { ptr, i32 } %2882, 0
  store ptr %2883, ptr %7, align 8
  %2884 = extractvalue { ptr, i32 } %2882, 1
  store i32 %2884, ptr %8, align 4
  br label %2899

2885:                                             ; preds = %2833
  %2886 = landingpad { ptr, i32 }
          cleanup
  %2887 = extractvalue { ptr, i32 } %2886, 0
  store ptr %2887, ptr %7, align 8
  %2888 = extractvalue { ptr, i32 } %2886, 1
  store i32 %2888, ptr %8, align 4
  br label %2898

2889:                                             ; preds = %2834
  %2890 = landingpad { ptr, i32 }
          cleanup
  %2891 = extractvalue { ptr, i32 } %2890, 0
  store ptr %2891, ptr %7, align 8
  %2892 = extractvalue { ptr, i32 } %2890, 1
  store i32 %2892, ptr %8, align 4
  br label %2897

2893:                                             ; preds = %2835
  %2894 = landingpad { ptr, i32 }
          cleanup
  %2895 = extractvalue { ptr, i32 } %2894, 0
  store ptr %2895, ptr %7, align 8
  %2896 = extractvalue { ptr, i32 } %2894, 1
  store i32 %2896, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #7
  br label %2897

2897:                                             ; preds = %2893, %2889
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %485) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %484) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #7
  br label %2898

2898:                                             ; preds = %2897, %2885
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %483) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %482) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %480) #7
  br label %2899

2899:                                             ; preds = %2898, %2881
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %481) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %480) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %478) #7
  br label %2900

2900:                                             ; preds = %2899, %2877
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %479) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %478) #7
  br label %2913

2901:                                             ; preds = %2826
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %467) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %467) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %456) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %456) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %486) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %487) #7
  store float 4.500000e+00, ptr %487, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %488) #7
  store float 0x4020666660000000, ptr %488, align 4, !tbaa !14
  call void @_ZN3cgp8numarrayIfE9linespaceERKfS3_i(ptr dead_on_unwind writable sret(%"struct.cgp::numarray.3") align 8 %486, ptr noundef nonnull align 4 dereferenceable(4) %487, ptr noundef nonnull align 4 dereferenceable(4) %488, i32 noundef 6)
  call void @llvm.lifetime.end.p0(i64 4, ptr %488) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %487) #7
  %2902 = invoke noundef i32 @_ZNK3cgp8numarrayIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %486)
          to label %2903 unwind label %2916

2903:                                             ; preds = %2901
  %2904 = icmp eq i32 %2902, 6
  %2905 = zext i1 %2904 to i32
  %2906 = icmp eq i32 %2905, 0
  br i1 %2906, label %2907, label %2944

2907:                                             ; preds = %2903
  call void @llvm.lifetime.start.p0(i64 32, ptr %489) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %490) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %489, ptr noundef @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %490)
          to label %2908 unwind label %2920

2908:                                             ; preds = %2907
  call void @llvm.lifetime.start.p0(i64 32, ptr %491) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %492) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %492)
          to label %2909 unwind label %2924

2909:                                             ; preds = %2908
  call void @llvm.lifetime.start.p0(i64 32, ptr %493) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %494) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %494) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %493, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %494)
          to label %2910 unwind label %2928

2910:                                             ; preds = %2909
  call void @llvm.lifetime.start.p0(i64 32, ptr %495) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %496) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %496) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %495, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %496)
          to label %2911 unwind label %2932

2911:                                             ; preds = %2910
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %489, ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef nonnull align 8 dereferenceable(32) %493, ptr noundef nonnull align 8 dereferenceable(32) %495, i32 noundef 104) #8
          to label %2912 unwind label %2936

2912:                                             ; preds = %2911
  unreachable

2913:                                             ; preds = %2900, %2873
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %467) #7
  br label %2914

2914:                                             ; preds = %2913, %2872
  call void @llvm.lifetime.end.p0(i64 24, ptr %467) #7
  br label %2915

2915:                                             ; preds = %2914, %2783, %2756
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %456) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %456) #7
  br label %3147

2916:                                             ; preds = %2984, %2982, %2946, %2944, %2901
  %2917 = landingpad { ptr, i32 }
          cleanup
  %2918 = extractvalue { ptr, i32 } %2917, 0
  store ptr %2918, ptr %7, align 8
  %2919 = extractvalue { ptr, i32 } %2917, 1
  store i32 %2919, ptr %8, align 4
  br label %3042

2920:                                             ; preds = %2907
  %2921 = landingpad { ptr, i32 }
          cleanup
  %2922 = extractvalue { ptr, i32 } %2921, 0
  store ptr %2922, ptr %7, align 8
  %2923 = extractvalue { ptr, i32 } %2921, 1
  store i32 %2923, ptr %8, align 4
  br label %2943

2924:                                             ; preds = %2908
  %2925 = landingpad { ptr, i32 }
          cleanup
  %2926 = extractvalue { ptr, i32 } %2925, 0
  store ptr %2926, ptr %7, align 8
  %2927 = extractvalue { ptr, i32 } %2925, 1
  store i32 %2927, ptr %8, align 4
  br label %2942

2928:                                             ; preds = %2909
  %2929 = landingpad { ptr, i32 }
          cleanup
  %2930 = extractvalue { ptr, i32 } %2929, 0
  store ptr %2930, ptr %7, align 8
  %2931 = extractvalue { ptr, i32 } %2929, 1
  store i32 %2931, ptr %8, align 4
  br label %2941

2932:                                             ; preds = %2910
  %2933 = landingpad { ptr, i32 }
          cleanup
  %2934 = extractvalue { ptr, i32 } %2933, 0
  store ptr %2934, ptr %7, align 8
  %2935 = extractvalue { ptr, i32 } %2933, 1
  store i32 %2935, ptr %8, align 4
  br label %2940

2936:                                             ; preds = %2911
  %2937 = landingpad { ptr, i32 }
          cleanup
  %2938 = extractvalue { ptr, i32 } %2937, 0
  store ptr %2938, ptr %7, align 8
  %2939 = extractvalue { ptr, i32 } %2937, 1
  store i32 %2939, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %495) #7
  br label %2940

2940:                                             ; preds = %2936, %2932
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %496) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %496) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %495) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %493) #7
  br label %2941

2941:                                             ; preds = %2940, %2928
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %494) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %494) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %493) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %491) #7
  br label %2942

2942:                                             ; preds = %2941, %2924
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %492) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %491) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %489) #7
  br label %2943

2943:                                             ; preds = %2942, %2920
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %490) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %489) #7
  br label %3042

2944:                                             ; preds = %2903
  %2945 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIfEixEi(ptr noundef nonnull align 8 dereferenceable(24) %486, i32 noundef 0)
          to label %2946 unwind label %2916

2946:                                             ; preds = %2944
  %2947 = load float, ptr %2945, align 4, !tbaa !14
  %2948 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %2947, float noundef 4.500000e+00)
          to label %2949 unwind label %2916

2949:                                             ; preds = %2946
  %2950 = zext i1 %2948 to i32
  %2951 = icmp eq i32 %2950, 0
  br i1 %2951, label %2952, label %2982

2952:                                             ; preds = %2949
  call void @llvm.lifetime.start.p0(i64 32, ptr %497) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %498) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %498) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %497, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %498)
          to label %2953 unwind label %2958

2953:                                             ; preds = %2952
  call void @llvm.lifetime.start.p0(i64 32, ptr %499) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %500) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %499, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %500)
          to label %2954 unwind label %2962

2954:                                             ; preds = %2953
  call void @llvm.lifetime.start.p0(i64 32, ptr %501) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %502) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %502) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %501, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %502)
          to label %2955 unwind label %2966

2955:                                             ; preds = %2954
  call void @llvm.lifetime.start.p0(i64 32, ptr %503) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %504) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %504) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %503, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %504)
          to label %2956 unwind label %2970

2956:                                             ; preds = %2955
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %497, ptr noundef nonnull align 8 dereferenceable(32) %499, ptr noundef nonnull align 8 dereferenceable(32) %501, ptr noundef nonnull align 8 dereferenceable(32) %503, i32 noundef 105) #8
          to label %2957 unwind label %2974

2957:                                             ; preds = %2956
  unreachable

2958:                                             ; preds = %2952
  %2959 = landingpad { ptr, i32 }
          cleanup
  %2960 = extractvalue { ptr, i32 } %2959, 0
  store ptr %2960, ptr %7, align 8
  %2961 = extractvalue { ptr, i32 } %2959, 1
  store i32 %2961, ptr %8, align 4
  br label %2981

2962:                                             ; preds = %2953
  %2963 = landingpad { ptr, i32 }
          cleanup
  %2964 = extractvalue { ptr, i32 } %2963, 0
  store ptr %2964, ptr %7, align 8
  %2965 = extractvalue { ptr, i32 } %2963, 1
  store i32 %2965, ptr %8, align 4
  br label %2980

2966:                                             ; preds = %2954
  %2967 = landingpad { ptr, i32 }
          cleanup
  %2968 = extractvalue { ptr, i32 } %2967, 0
  store ptr %2968, ptr %7, align 8
  %2969 = extractvalue { ptr, i32 } %2967, 1
  store i32 %2969, ptr %8, align 4
  br label %2979

2970:                                             ; preds = %2955
  %2971 = landingpad { ptr, i32 }
          cleanup
  %2972 = extractvalue { ptr, i32 } %2971, 0
  store ptr %2972, ptr %7, align 8
  %2973 = extractvalue { ptr, i32 } %2971, 1
  store i32 %2973, ptr %8, align 4
  br label %2978

2974:                                             ; preds = %2956
  %2975 = landingpad { ptr, i32 }
          cleanup
  %2976 = extractvalue { ptr, i32 } %2975, 0
  store ptr %2976, ptr %7, align 8
  %2977 = extractvalue { ptr, i32 } %2975, 1
  store i32 %2977, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %503) #7
  br label %2978

2978:                                             ; preds = %2974, %2970
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %504) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %504) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %503) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %501) #7
  br label %2979

2979:                                             ; preds = %2978, %2966
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %502) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %502) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %501) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %499) #7
  br label %2980

2980:                                             ; preds = %2979, %2962
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %500) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %499) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %497) #7
  br label %2981

2981:                                             ; preds = %2980, %2958
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %498) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %498) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %497) #7
  br label %3042

2982:                                             ; preds = %2949
  %2983 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIfEixEi(ptr noundef nonnull align 8 dereferenceable(24) %486, i32 noundef 5)
          to label %2984 unwind label %2916

2984:                                             ; preds = %2982
  %2985 = load float, ptr %2983, align 4, !tbaa !14
  %2986 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %2985, float noundef 0x4020666660000000)
          to label %2987 unwind label %2916

2987:                                             ; preds = %2984
  %2988 = zext i1 %2986 to i32
  %2989 = icmp eq i32 %2988, 0
  br i1 %2989, label %2990, label %3020

2990:                                             ; preds = %2987
  call void @llvm.lifetime.start.p0(i64 32, ptr %505) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %506) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %506) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %505, ptr noundef @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %506)
          to label %2991 unwind label %2996

2991:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 32, ptr %507) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %508) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %508) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %507, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %508)
          to label %2992 unwind label %3000

2992:                                             ; preds = %2991
  call void @llvm.lifetime.start.p0(i64 32, ptr %509) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %510) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %510) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %509, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %510)
          to label %2993 unwind label %3004

2993:                                             ; preds = %2992
  call void @llvm.lifetime.start.p0(i64 32, ptr %511) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %512) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %512) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %511, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %512)
          to label %2994 unwind label %3008

2994:                                             ; preds = %2993
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %505, ptr noundef nonnull align 8 dereferenceable(32) %507, ptr noundef nonnull align 8 dereferenceable(32) %509, ptr noundef nonnull align 8 dereferenceable(32) %511, i32 noundef 106) #8
          to label %2995 unwind label %3012

2995:                                             ; preds = %2994
  unreachable

2996:                                             ; preds = %2990
  %2997 = landingpad { ptr, i32 }
          cleanup
  %2998 = extractvalue { ptr, i32 } %2997, 0
  store ptr %2998, ptr %7, align 8
  %2999 = extractvalue { ptr, i32 } %2997, 1
  store i32 %2999, ptr %8, align 4
  br label %3019

3000:                                             ; preds = %2991
  %3001 = landingpad { ptr, i32 }
          cleanup
  %3002 = extractvalue { ptr, i32 } %3001, 0
  store ptr %3002, ptr %7, align 8
  %3003 = extractvalue { ptr, i32 } %3001, 1
  store i32 %3003, ptr %8, align 4
  br label %3018

3004:                                             ; preds = %2992
  %3005 = landingpad { ptr, i32 }
          cleanup
  %3006 = extractvalue { ptr, i32 } %3005, 0
  store ptr %3006, ptr %7, align 8
  %3007 = extractvalue { ptr, i32 } %3005, 1
  store i32 %3007, ptr %8, align 4
  br label %3017

3008:                                             ; preds = %2993
  %3009 = landingpad { ptr, i32 }
          cleanup
  %3010 = extractvalue { ptr, i32 } %3009, 0
  store ptr %3010, ptr %7, align 8
  %3011 = extractvalue { ptr, i32 } %3009, 1
  store i32 %3011, ptr %8, align 4
  br label %3016

3012:                                             ; preds = %2994
  %3013 = landingpad { ptr, i32 }
          cleanup
  %3014 = extractvalue { ptr, i32 } %3013, 0
  store ptr %3014, ptr %7, align 8
  %3015 = extractvalue { ptr, i32 } %3013, 1
  store i32 %3015, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %511) #7
  br label %3016

3016:                                             ; preds = %3012, %3008
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %512) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %512) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %511) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %509) #7
  br label %3017

3017:                                             ; preds = %3016, %3004
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %510) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %510) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %509) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %507) #7
  br label %3018

3018:                                             ; preds = %3017, %3000
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %508) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %508) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %507) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %505) #7
  br label %3019

3019:                                             ; preds = %3018, %2996
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %506) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %506) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %505) #7
  br label %3042

3020:                                             ; preds = %2987
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %486) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %486) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %513) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %515) #7
  store float 4.500000e+00, ptr %515, align 4, !tbaa !14
  %3021 = getelementptr inbounds float, ptr %515, i64 1
  store float 0x4020666660000000, ptr %3021, align 4, !tbaa !14
  %3022 = getelementptr inbounds float, ptr %515, i64 2
  store float 0x4018666660000000, ptr %3022, align 4, !tbaa !14
  %3023 = getelementptr inbounds float, ptr %515, i64 3
  store float 0xC00CCCCCC0000000, ptr %3023, align 4, !tbaa !14
  %3024 = getelementptr inbounds %"class.std::initializer_list.9", ptr %514, i32 0, i32 0
  store ptr %515, ptr %3024, align 8, !tbaa !16
  %3025 = getelementptr inbounds %"class.std::initializer_list.9", ptr %514, i32 0, i32 1
  store i64 4, ptr %3025, align 8, !tbaa !18
  %3026 = getelementptr inbounds { ptr, i64 }, ptr %514, i32 0, i32 0
  %3027 = load ptr, ptr %3026, align 8
  %3028 = getelementptr inbounds { ptr, i64 }, ptr %514, i32 0, i32 1
  %3029 = load i64, ptr %3028, align 8
  call void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %513, ptr %3027, i64 %3029)
  call void @llvm.lifetime.end.p0(i64 16, ptr %515) #7
  %3030 = invoke noundef float @_ZN3cgp3minIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %513)
          to label %3031 unwind label %3043

3031:                                             ; preds = %3020
  %3032 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %3030, float noundef 0xC00CCCCCC0000000)
          to label %3033 unwind label %3043

3033:                                             ; preds = %3031
  %3034 = zext i1 %3032 to i32
  %3035 = icmp eq i32 %3034, 0
  br i1 %3035, label %3036, label %3071

3036:                                             ; preds = %3033
  call void @llvm.lifetime.start.p0(i64 32, ptr %516) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %517) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %516, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %517)
          to label %3037 unwind label %3047

3037:                                             ; preds = %3036
  call void @llvm.lifetime.start.p0(i64 32, ptr %518) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %519) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %519) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %519)
          to label %3038 unwind label %3051

3038:                                             ; preds = %3037
  call void @llvm.lifetime.start.p0(i64 32, ptr %520) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %521) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %521) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %520, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %521)
          to label %3039 unwind label %3055

3039:                                             ; preds = %3038
  call void @llvm.lifetime.start.p0(i64 32, ptr %522) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %523) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %522, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %523)
          to label %3040 unwind label %3059

3040:                                             ; preds = %3039
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %516, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %520, ptr noundef nonnull align 8 dereferenceable(32) %522, i32 noundef 112) #8
          to label %3041 unwind label %3063

3041:                                             ; preds = %3040
  unreachable

3042:                                             ; preds = %3019, %2981, %2943, %2916
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %486) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %486) #7
  br label %3147

3043:                                             ; preds = %3110, %3108, %3073, %3071, %3031, %3020
  %3044 = landingpad { ptr, i32 }
          cleanup
  %3045 = extractvalue { ptr, i32 } %3044, 0
  store ptr %3045, ptr %7, align 8
  %3046 = extractvalue { ptr, i32 } %3044, 1
  store i32 %3046, ptr %8, align 4
  br label %3146

3047:                                             ; preds = %3036
  %3048 = landingpad { ptr, i32 }
          cleanup
  %3049 = extractvalue { ptr, i32 } %3048, 0
  store ptr %3049, ptr %7, align 8
  %3050 = extractvalue { ptr, i32 } %3048, 1
  store i32 %3050, ptr %8, align 4
  br label %3070

3051:                                             ; preds = %3037
  %3052 = landingpad { ptr, i32 }
          cleanup
  %3053 = extractvalue { ptr, i32 } %3052, 0
  store ptr %3053, ptr %7, align 8
  %3054 = extractvalue { ptr, i32 } %3052, 1
  store i32 %3054, ptr %8, align 4
  br label %3069

3055:                                             ; preds = %3038
  %3056 = landingpad { ptr, i32 }
          cleanup
  %3057 = extractvalue { ptr, i32 } %3056, 0
  store ptr %3057, ptr %7, align 8
  %3058 = extractvalue { ptr, i32 } %3056, 1
  store i32 %3058, ptr %8, align 4
  br label %3068

3059:                                             ; preds = %3039
  %3060 = landingpad { ptr, i32 }
          cleanup
  %3061 = extractvalue { ptr, i32 } %3060, 0
  store ptr %3061, ptr %7, align 8
  %3062 = extractvalue { ptr, i32 } %3060, 1
  store i32 %3062, ptr %8, align 4
  br label %3067

3063:                                             ; preds = %3040
  %3064 = landingpad { ptr, i32 }
          cleanup
  %3065 = extractvalue { ptr, i32 } %3064, 0
  store ptr %3065, ptr %7, align 8
  %3066 = extractvalue { ptr, i32 } %3064, 1
  store i32 %3066, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #7
  br label %3067

3067:                                             ; preds = %3063, %3059
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %523) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %522) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %520) #7
  br label %3068

3068:                                             ; preds = %3067, %3055
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %521) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %521) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %520) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %518) #7
  br label %3069

3069:                                             ; preds = %3068, %3051
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %519) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %519) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %518) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %516) #7
  br label %3070

3070:                                             ; preds = %3069, %3047
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %517) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %516) #7
  br label %3146

3071:                                             ; preds = %3033
  %3072 = invoke noundef float @_ZN3cgp3maxIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %513)
          to label %3073 unwind label %3043

3073:                                             ; preds = %3071
  %3074 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %3072, float noundef 0x4020666660000000)
          to label %3075 unwind label %3043

3075:                                             ; preds = %3073
  %3076 = zext i1 %3074 to i32
  %3077 = icmp eq i32 %3076, 0
  br i1 %3077, label %3078, label %3108

3078:                                             ; preds = %3075
  call void @llvm.lifetime.start.p0(i64 32, ptr %524) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %525) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %525) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %524, ptr noundef @.str.59, ptr noundef nonnull align 1 dereferenceable(1) %525)
          to label %3079 unwind label %3084

3079:                                             ; preds = %3078
  call void @llvm.lifetime.start.p0(i64 32, ptr %526) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %527) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %527) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %526, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %527)
          to label %3080 unwind label %3088

3080:                                             ; preds = %3079
  call void @llvm.lifetime.start.p0(i64 32, ptr %528) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %529) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %529) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %529)
          to label %3081 unwind label %3092

3081:                                             ; preds = %3080
  call void @llvm.lifetime.start.p0(i64 32, ptr %530) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %531) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %531) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %530, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %531)
          to label %3082 unwind label %3096

3082:                                             ; preds = %3081
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %524, ptr noundef nonnull align 8 dereferenceable(32) %526, ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef nonnull align 8 dereferenceable(32) %530, i32 noundef 113) #8
          to label %3083 unwind label %3100

3083:                                             ; preds = %3082
  unreachable

3084:                                             ; preds = %3078
  %3085 = landingpad { ptr, i32 }
          cleanup
  %3086 = extractvalue { ptr, i32 } %3085, 0
  store ptr %3086, ptr %7, align 8
  %3087 = extractvalue { ptr, i32 } %3085, 1
  store i32 %3087, ptr %8, align 4
  br label %3107

3088:                                             ; preds = %3079
  %3089 = landingpad { ptr, i32 }
          cleanup
  %3090 = extractvalue { ptr, i32 } %3089, 0
  store ptr %3090, ptr %7, align 8
  %3091 = extractvalue { ptr, i32 } %3089, 1
  store i32 %3091, ptr %8, align 4
  br label %3106

3092:                                             ; preds = %3080
  %3093 = landingpad { ptr, i32 }
          cleanup
  %3094 = extractvalue { ptr, i32 } %3093, 0
  store ptr %3094, ptr %7, align 8
  %3095 = extractvalue { ptr, i32 } %3093, 1
  store i32 %3095, ptr %8, align 4
  br label %3105

3096:                                             ; preds = %3081
  %3097 = landingpad { ptr, i32 }
          cleanup
  %3098 = extractvalue { ptr, i32 } %3097, 0
  store ptr %3098, ptr %7, align 8
  %3099 = extractvalue { ptr, i32 } %3097, 1
  store i32 %3099, ptr %8, align 4
  br label %3104

3100:                                             ; preds = %3082
  %3101 = landingpad { ptr, i32 }
          cleanup
  %3102 = extractvalue { ptr, i32 } %3101, 0
  store ptr %3102, ptr %7, align 8
  %3103 = extractvalue { ptr, i32 } %3101, 1
  store i32 %3103, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %530) #7
  br label %3104

3104:                                             ; preds = %3100, %3096
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %531) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %531) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %530) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %528) #7
  br label %3105

3105:                                             ; preds = %3104, %3092
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %529) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %529) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %528) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %526) #7
  br label %3106

3106:                                             ; preds = %3105, %3088
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %527) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %527) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %526) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #7
  br label %3107

3107:                                             ; preds = %3106, %3084
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %525) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %525) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %524) #7
  br label %3146

3108:                                             ; preds = %3075
  %3109 = invoke noundef float @_ZN3cgp3sumIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %513)
          to label %3110 unwind label %3043

3110:                                             ; preds = %3108
  %3111 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEfd(float noundef %3109, double noundef 0x402E66664CCCCCCD)
          to label %3112 unwind label %3043

3112:                                             ; preds = %3110
  %3113 = zext i1 %3111 to i32
  %3114 = icmp eq i32 %3113, 0
  br i1 %3114, label %3115, label %3145

3115:                                             ; preds = %3112
  call void @llvm.lifetime.start.p0(i64 32, ptr %532) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %533) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %533) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %532, ptr noundef @.str.60, ptr noundef nonnull align 1 dereferenceable(1) %533)
          to label %3116 unwind label %3121

3116:                                             ; preds = %3115
  call void @llvm.lifetime.start.p0(i64 32, ptr %534) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %535) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %535) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %534, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %535)
          to label %3117 unwind label %3125

3117:                                             ; preds = %3116
  call void @llvm.lifetime.start.p0(i64 32, ptr %536) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %537) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %537)
          to label %3118 unwind label %3129

3118:                                             ; preds = %3117
  call void @llvm.lifetime.start.p0(i64 32, ptr %538) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %539) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %539) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %539)
          to label %3119 unwind label %3133

3119:                                             ; preds = %3118
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %532, ptr noundef nonnull align 8 dereferenceable(32) %534, ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef nonnull align 8 dereferenceable(32) %538, i32 noundef 114) #8
          to label %3120 unwind label %3137

3120:                                             ; preds = %3119
  unreachable

3121:                                             ; preds = %3115
  %3122 = landingpad { ptr, i32 }
          cleanup
  %3123 = extractvalue { ptr, i32 } %3122, 0
  store ptr %3123, ptr %7, align 8
  %3124 = extractvalue { ptr, i32 } %3122, 1
  store i32 %3124, ptr %8, align 4
  br label %3144

3125:                                             ; preds = %3116
  %3126 = landingpad { ptr, i32 }
          cleanup
  %3127 = extractvalue { ptr, i32 } %3126, 0
  store ptr %3127, ptr %7, align 8
  %3128 = extractvalue { ptr, i32 } %3126, 1
  store i32 %3128, ptr %8, align 4
  br label %3143

3129:                                             ; preds = %3117
  %3130 = landingpad { ptr, i32 }
          cleanup
  %3131 = extractvalue { ptr, i32 } %3130, 0
  store ptr %3131, ptr %7, align 8
  %3132 = extractvalue { ptr, i32 } %3130, 1
  store i32 %3132, ptr %8, align 4
  br label %3142

3133:                                             ; preds = %3118
  %3134 = landingpad { ptr, i32 }
          cleanup
  %3135 = extractvalue { ptr, i32 } %3134, 0
  store ptr %3135, ptr %7, align 8
  %3136 = extractvalue { ptr, i32 } %3134, 1
  store i32 %3136, ptr %8, align 4
  br label %3141

3137:                                             ; preds = %3119
  %3138 = landingpad { ptr, i32 }
          cleanup
  %3139 = extractvalue { ptr, i32 } %3138, 0
  store ptr %3139, ptr %7, align 8
  %3140 = extractvalue { ptr, i32 } %3138, 1
  store i32 %3140, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %538) #7
  br label %3141

3141:                                             ; preds = %3137, %3133
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %539) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %539) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %538) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %536) #7
  br label %3142

3142:                                             ; preds = %3141, %3129
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %537) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %536) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %534) #7
  br label %3143

3143:                                             ; preds = %3142, %3125
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %535) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %535) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %534) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %532) #7
  br label %3144

3144:                                             ; preds = %3143, %3121
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %533) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %533) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %532) #7
  br label %3146

3145:                                             ; preds = %3112
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %513) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %513) #7
  ret void

3146:                                             ; preds = %3144, %3107, %3070, %3043
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %513) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %513) #7
  br label %3147

3147:                                             ; preds = %3146, %3042, %2915, %2755, %2563, %2368, %2207, %1778, %1568, %1209, %970, %736
  %3148 = load ptr, ptr %7, align 8
  %3149 = load i32, ptr %8, align 4
  %3150 = insertvalue { ptr, i32 } poison, ptr %3148, 0
  %3151 = insertvalue { ptr, i32 } %3150, i32 %3149, 1
  resume { ptr, i32 } %3151
}

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #0

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: noreturn
declare void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #0 align 2

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3cgp14size_in_memoryIiEEiRKNS_8numarrayIT_EE(ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3cgp14size_in_memoryINS_8numarrayIiEEEEiRKNS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp8numarrayIfE9linespaceERKfS3_i(ptr dead_on_unwind noalias writable sret(%"struct.cgp::numarray.3") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #0 align 2

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

declare noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef, float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIfEixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN3cgp3minIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN3cgp3maxIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) #0

declare noundef zeroext i1 @_ZN3cgp8is_equalEfd(float noundef, double noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN3cgp3sumIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { "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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSSt16initializer_listIiE", !11, i64 0, !12, i64 8}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!10, !12, i64 8}
!14 = !{!15, !15, i64 0}
!15 = !{!"float", !7, i64 0}
!16 = !{!17, !11, i64 0}
!17 = !{!"_ZTSSt16initializer_listIfE", !11, i64 0, !12, i64 8}
!18 = !{!17, !12, i64 8}
!19 = !{i64 0, i64 20, !20}
!20 = !{!7, !7, i64 0}
!21 = !{!22, !11, i64 0}
!22 = !{!"_ZTSSt16initializer_listIN3cgp8numarrayIiEEE", !11, i64 0, !12, i64 8}
!23 = !{!22, !12, i64 8}
!24 = !{!11, !11, i64 0}


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

%"struct.cgp::numarray" = type { %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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::__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::allocator.0" = type { i8 }
%"struct.cgp::numarray.3" = type { %"class.std::vector.4" }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.cgp::numarray.10" = type { %"class.std::vector.11" }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cgp::numarray<int>, std::allocator<cgp::numarray<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@__func__._ZN8cgp_test13test_numarrayEv = external hidden unnamed_addr constant [14 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [26 x i8], align 1
@constinit = external hidden local_unnamed_addr constant [5 x i32], align 4
@.str.11 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8cgp_test13test_numarrayEv() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"struct.cgp::numarray", align 8
  %2 = alloca [3 x i32], align 4
  %3 = alloca %"struct.cgp::numarray", align 8
  %4 = alloca [3 x i32], align 4
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator.0", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.0", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator.0", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.0", align 1
  %13 = alloca %"struct.cgp::numarray", align 8
  %14 = alloca [4 x i32], align 16
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.0", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.0", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.0", align 1
  %23 = alloca %"struct.cgp::numarray", align 8
  %24 = alloca [2 x i32], align 4
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.0", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.0", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.0", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.0", align 1
  %33 = alloca %"struct.cgp::numarray.3", align 8
  %34 = alloca [3 x float], align 8
  %35 = alloca %"struct.cgp::numarray.3", align 8
  %36 = alloca [3 x float], align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.0", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.0", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.0", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.0", align 1
  %45 = alloca %"struct.cgp::numarray.3", align 8
  %46 = alloca [4 x float], align 16
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.0", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.0", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.0", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator.0", align 1
  %55 = alloca %"struct.cgp::numarray.3", align 8
  %56 = alloca [2 x float], align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator.0", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator.0", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator.0", align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator.0", align 1
  %65 = alloca %"struct.cgp::numarray.3", align 8
  %66 = alloca [3 x float], align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator.0", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator.0", align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator.0", align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator.0", align 1
  %75 = alloca %"struct.cgp::numarray", align 8
  %76 = alloca [3 x i32], align 4
  %77 = alloca %"struct.cgp::numarray", align 8
  %78 = alloca [3 x i32], align 4
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator.0", align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator.0", align 1
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator.0", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator.0", align 1
  %87 = alloca %"struct.cgp::numarray", align 8
  %88 = alloca [4 x i32], align 16
  %89 = alloca %"struct.cgp::numarray", align 8
  %90 = alloca [4 x i32], align 16
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::allocator.0", align 1
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator.0", align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator.0", align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator.0", align 1
  %99 = alloca i32, align 4
  %100 = alloca %"struct.cgp::numarray", align 8
  %101 = alloca [5 x i32], align 4
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator.0", align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator.0", align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator.0", align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator.0", align 1
  %110 = alloca %"struct.cgp::numarray", align 8
  %111 = alloca [2 x i32], align 4
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator.0", align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator.0", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator.0", align 1
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator.0", align 1
  %120 = alloca %"struct.cgp::numarray", align 8
  %121 = alloca [3 x i32], align 4
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator.0", align 1
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::allocator.0", align 1
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator.0", align 1
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator.0", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator.0", align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::allocator.0", align 1
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator.0", align 1
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator.0", align 1
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator.0", align 1
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::allocator.0", align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator.0", align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator.0", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator.0", align 1
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::allocator.0", align 1
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator.0", align 1
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator.0", align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator.0", align 1
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::allocator.0", align 1
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator.0", align 1
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator.0", align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator.0", align 1
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::allocator.0", align 1
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::allocator.0", align 1
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::allocator.0", align 1
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::allocator.0", align 1
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator.0", align 1
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::allocator.0", align 1
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::allocator.0", align 1
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator.0", align 1
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::allocator.0", align 1
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::allocator.0", align 1
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::allocator.0", align 1
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::allocator.0", align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::allocator.0", align 1
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::allocator.0", align 1
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator.0", align 1
  %194 = alloca %"struct.cgp::numarray", align 8
  %195 = alloca [3 x i32], align 4
  %196 = alloca %"struct.cgp::numarray", align 8
  %197 = alloca [3 x i32], align 4
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator.0", align 1
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::allocator.0", align 1
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::allocator.0", align 1
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::allocator.0", align 1
  %206 = alloca %"struct.cgp::numarray", align 8
  %207 = alloca [3 x i32], align 4
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::allocator.0", align 1
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::allocator.0", align 1
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::allocator.0", align 1
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::allocator.0", align 1
  %216 = alloca %"struct.cgp::numarray", align 8
  %217 = alloca [3 x i32], align 4
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.std::allocator.0", align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::allocator.0", align 1
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::allocator.0", align 1
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::allocator.0", align 1
  %226 = alloca %"struct.cgp::numarray.10", align 8
  %227 = alloca [3 x %"struct.cgp::numarray"], align 8
  %228 = alloca [2 x i32], align 4
  %229 = alloca [3 x i32], align 4
  %230 = alloca [1 x i32], align 4
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::allocator.0", align 1
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::allocator.0", align 1
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::allocator.0", align 1
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::allocator.0", align 1
  %239 = alloca %"struct.cgp::numarray", align 8
  %240 = alloca [2 x i32], align 4
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::allocator.0", align 1
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::allocator.0", align 1
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::allocator.0", align 1
  %247 = alloca %"class.std::__cxx11::basic_string", align 8
  %248 = alloca %"class.std::allocator.0", align 1
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca %"class.std::allocator.0", align 1
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.std::allocator.0", align 1
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::allocator.0", align 1
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.std::allocator.0", align 1
  %257 = alloca %"struct.cgp::numarray", align 8
  %258 = alloca [3 x i32], align 4
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator.0", align 1
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::allocator.0", align 1
  %263 = alloca %"class.std::__cxx11::basic_string", align 8
  %264 = alloca %"class.std::allocator.0", align 1
  %265 = alloca %"class.std::__cxx11::basic_string", align 8
  %266 = alloca %"class.std::allocator.0", align 1
  %267 = alloca %"class.std::__cxx11::basic_string", align 8
  %268 = alloca %"class.std::allocator.0", align 1
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.std::allocator.0", align 1
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::allocator.0", align 1
  %273 = alloca %"class.std::__cxx11::basic_string", align 8
  %274 = alloca %"class.std::allocator.0", align 1
  %275 = alloca %"struct.cgp::numarray", align 8
  %276 = alloca [1 x i32], align 4
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.std::allocator.0", align 1
  %279 = alloca %"class.std::__cxx11::basic_string", align 8
  %280 = alloca %"class.std::allocator.0", align 1
  %281 = alloca %"class.std::__cxx11::basic_string", align 8
  %282 = alloca %"class.std::allocator.0", align 1
  %283 = alloca %"class.std::__cxx11::basic_string", align 8
  %284 = alloca %"class.std::allocator.0", align 1
  %285 = alloca %"struct.cgp::numarray", align 8
  %286 = alloca [3 x i32], align 4
  %287 = alloca %"class.std::__cxx11::basic_string", align 8
  %288 = alloca %"class.std::allocator.0", align 1
  %289 = alloca %"class.std::__cxx11::basic_string", align 8
  %290 = alloca %"class.std::allocator.0", align 1
  %291 = alloca %"class.std::__cxx11::basic_string", align 8
  %292 = alloca %"class.std::allocator.0", align 1
  %293 = alloca %"class.std::__cxx11::basic_string", align 8
  %294 = alloca %"class.std::allocator.0", align 1
  %295 = alloca %"struct.cgp::numarray", align 8
  %296 = alloca [3 x i32], align 4
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::allocator.0", align 1
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.std::allocator.0", align 1
  %301 = alloca %"class.std::__cxx11::basic_string", align 8
  %302 = alloca %"class.std::allocator.0", align 1
  %303 = alloca %"class.std::__cxx11::basic_string", align 8
  %304 = alloca %"class.std::allocator.0", align 1
  %305 = alloca %"struct.cgp::numarray", align 8
  %306 = alloca %"class.std::__cxx11::basic_string", align 8
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca %"class.std::allocator.0", align 1
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca %"class.std::allocator.0", align 1
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.std::allocator.0", align 1
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::allocator.0", align 1
  %315 = alloca %"struct.cgp::numarray.3", align 8
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::__cxx11::basic_string", align 8
  %318 = alloca %"class.std::allocator.0", align 1
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::allocator.0", align 1
  %321 = alloca %"class.std::__cxx11::basic_string", align 8
  %322 = alloca %"class.std::allocator.0", align 1
  %323 = alloca %"class.std::__cxx11::basic_string", align 8
  %324 = alloca %"class.std::allocator.0", align 1
  %325 = alloca %"struct.cgp::numarray.10", align 8
  %326 = alloca %"class.std::__cxx11::basic_string", align 8
  %327 = alloca %"class.std::__cxx11::basic_string", align 8
  %328 = alloca %"class.std::allocator.0", align 1
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::allocator.0", align 1
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.std::allocator.0", align 1
  %333 = alloca %"class.std::__cxx11::basic_string", align 8
  %334 = alloca %"class.std::allocator.0", align 1
  %335 = alloca %"struct.cgp::numarray", align 8
  %336 = alloca [3 x i32], align 4
  %337 = alloca %"class.std::__cxx11::basic_string", align 8
  %338 = alloca %"class.std::__cxx11::basic_string", align 8
  %339 = alloca %"class.std::allocator.0", align 1
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::allocator.0", align 1
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator.0", align 1
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca %"class.std::allocator.0", align 1
  %346 = alloca %"class.std::__cxx11::basic_string", align 8
  %347 = alloca %"class.std::allocator.0", align 1
  %348 = alloca %"class.std::__cxx11::basic_string", align 8
  %349 = alloca %"class.std::allocator.0", align 1
  %350 = alloca %"class.std::__cxx11::basic_string", align 8
  %351 = alloca %"class.std::allocator.0", align 1
  %352 = alloca %"class.std::__cxx11::basic_string", align 8
  %353 = alloca %"class.std::__cxx11::basic_string", align 8
  %354 = alloca %"class.std::allocator.0", align 1
  %355 = alloca %"class.std::__cxx11::basic_string", align 8
  %356 = alloca %"class.std::allocator.0", align 1
  %357 = alloca %"class.std::__cxx11::basic_string", align 8
  %358 = alloca %"class.std::allocator.0", align 1
  %359 = alloca %"class.std::__cxx11::basic_string", align 8
  %360 = alloca %"class.std::allocator.0", align 1
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.std::allocator.0", align 1
  %363 = alloca %"class.std::__cxx11::basic_string", align 8
  %364 = alloca %"class.std::allocator.0", align 1
  %365 = alloca %"class.std::__cxx11::basic_string", align 8
  %366 = alloca %"class.std::allocator.0", align 1
  %367 = alloca %"class.std::__cxx11::basic_string", align 8
  %368 = alloca %"class.std::__cxx11::basic_string", align 8
  %369 = alloca %"class.std::allocator.0", align 1
  %370 = alloca %"class.std::__cxx11::basic_string", align 8
  %371 = alloca %"class.std::allocator.0", align 1
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca %"class.std::allocator.0", align 1
  %374 = alloca %"class.std::__cxx11::basic_string", align 8
  %375 = alloca %"class.std::allocator.0", align 1
  %376 = alloca %"class.std::__cxx11::basic_string", align 8
  %377 = alloca %"class.std::allocator.0", align 1
  %378 = alloca %"class.std::__cxx11::basic_string", align 8
  %379 = alloca %"class.std::allocator.0", align 1
  %380 = alloca %"class.std::__cxx11::basic_string", align 8
  %381 = alloca %"class.std::allocator.0", align 1
  %382 = alloca %"struct.cgp::numarray", align 8
  %383 = alloca [3 x i32], align 4
  %384 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %385 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %386 = alloca %"class.std::__cxx11::basic_string", align 8
  %387 = alloca %"class.std::allocator.0", align 1
  %388 = alloca %"class.std::__cxx11::basic_string", align 8
  %389 = alloca %"class.std::allocator.0", align 1
  %390 = alloca %"class.std::__cxx11::basic_string", align 8
  %391 = alloca %"class.std::allocator.0", align 1
  %392 = alloca %"class.std::__cxx11::basic_string", align 8
  %393 = alloca %"class.std::allocator.0", align 1
  %394 = alloca %"class.std::__cxx11::basic_string", align 8
  %395 = alloca %"class.std::allocator.0", align 1
  %396 = alloca %"class.std::__cxx11::basic_string", align 8
  %397 = alloca %"class.std::allocator.0", align 1
  %398 = alloca %"class.std::__cxx11::basic_string", align 8
  %399 = alloca %"class.std::allocator.0", align 1
  %400 = alloca %"class.std::__cxx11::basic_string", align 8
  %401 = alloca %"class.std::allocator.0", align 1
  %402 = alloca %"class.std::__cxx11::basic_string", align 8
  %403 = alloca %"class.std::allocator.0", align 1
  %404 = alloca %"class.std::__cxx11::basic_string", align 8
  %405 = alloca %"class.std::allocator.0", align 1
  %406 = alloca %"class.std::__cxx11::basic_string", align 8
  %407 = alloca %"class.std::allocator.0", align 1
  %408 = alloca %"class.std::__cxx11::basic_string", align 8
  %409 = alloca %"class.std::allocator.0", align 1
  %410 = alloca %"class.std::__cxx11::basic_string", align 8
  %411 = alloca %"class.std::allocator.0", align 1
  %412 = alloca %"class.std::__cxx11::basic_string", align 8
  %413 = alloca %"class.std::allocator.0", align 1
  %414 = alloca %"class.std::__cxx11::basic_string", align 8
  %415 = alloca %"class.std::allocator.0", align 1
  %416 = alloca %"class.std::__cxx11::basic_string", align 8
  %417 = alloca %"class.std::allocator.0", align 1
  %418 = alloca %"struct.cgp::numarray", align 8
  %419 = alloca [3 x i32], align 4
  %420 = alloca %"class.std::__cxx11::basic_string", align 8
  %421 = alloca %"class.std::allocator.0", align 1
  %422 = alloca %"class.std::__cxx11::basic_string", align 8
  %423 = alloca %"class.std::allocator.0", align 1
  %424 = alloca %"class.std::__cxx11::basic_string", align 8
  %425 = alloca %"class.std::allocator.0", align 1
  %426 = alloca %"class.std::__cxx11::basic_string", align 8
  %427 = alloca %"class.std::allocator.0", align 1
  %428 = alloca %"struct.cgp::numarray.10", align 8
  %429 = alloca [3 x %"struct.cgp::numarray"], align 8
  %430 = alloca [2 x i32], align 4
  %431 = alloca [3 x i32], align 4
  %432 = alloca [1 x i32], align 4
  %433 = alloca %"class.std::__cxx11::basic_string", align 8
  %434 = alloca %"class.std::allocator.0", align 1
  %435 = alloca %"class.std::__cxx11::basic_string", align 8
  %436 = alloca %"class.std::allocator.0", align 1
  %437 = alloca %"class.std::__cxx11::basic_string", align 8
  %438 = alloca %"class.std::allocator.0", align 1
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::allocator.0", align 1
  %441 = alloca %"struct.cgp::numarray.3", align 8
  %442 = alloca float, align 4
  %443 = alloca float, align 4
  %444 = alloca %"class.std::__cxx11::basic_string", align 8
  %445 = alloca %"class.std::allocator.0", align 1
  %446 = alloca %"class.std::__cxx11::basic_string", align 8
  %447 = alloca %"class.std::allocator.0", align 1
  %448 = alloca %"class.std::__cxx11::basic_string", align 8
  %449 = alloca %"class.std::allocator.0", align 1
  %450 = alloca %"class.std::__cxx11::basic_string", align 8
  %451 = alloca %"class.std::allocator.0", align 1
  %452 = alloca %"class.std::__cxx11::basic_string", align 8
  %453 = alloca %"class.std::allocator.0", align 1
  %454 = alloca %"class.std::__cxx11::basic_string", align 8
  %455 = alloca %"class.std::allocator.0", align 1
  %456 = alloca %"class.std::__cxx11::basic_string", align 8
  %457 = alloca %"class.std::allocator.0", align 1
  %458 = alloca %"class.std::__cxx11::basic_string", align 8
  %459 = alloca %"class.std::allocator.0", align 1
  %460 = alloca %"class.std::__cxx11::basic_string", align 8
  %461 = alloca %"class.std::allocator.0", align 1
  %462 = alloca %"class.std::__cxx11::basic_string", align 8
  %463 = alloca %"class.std::allocator.0", align 1
  %464 = alloca %"class.std::__cxx11::basic_string", align 8
  %465 = alloca %"class.std::allocator.0", align 1
  %466 = alloca %"class.std::__cxx11::basic_string", align 8
  %467 = alloca %"class.std::allocator.0", align 1
  %468 = alloca %"struct.cgp::numarray.3", align 8
  %469 = alloca [4 x float], align 16
  %470 = alloca %"class.std::__cxx11::basic_string", align 8
  %471 = alloca %"class.std::allocator.0", align 1
  %472 = alloca %"class.std::__cxx11::basic_string", align 8
  %473 = alloca %"class.std::allocator.0", align 1
  %474 = alloca %"class.std::__cxx11::basic_string", align 8
  %475 = alloca %"class.std::allocator.0", align 1
  %476 = alloca %"class.std::__cxx11::basic_string", align 8
  %477 = alloca %"class.std::allocator.0", align 1
  %478 = alloca %"class.std::__cxx11::basic_string", align 8
  %479 = alloca %"class.std::allocator.0", align 1
  %480 = alloca %"class.std::__cxx11::basic_string", align 8
  %481 = alloca %"class.std::allocator.0", align 1
  %482 = alloca %"class.std::__cxx11::basic_string", align 8
  %483 = alloca %"class.std::allocator.0", align 1
  %484 = alloca %"class.std::__cxx11::basic_string", align 8
  %485 = alloca %"class.std::allocator.0", align 1
  %486 = alloca %"class.std::__cxx11::basic_string", align 8
  %487 = alloca %"class.std::allocator.0", align 1
  %488 = alloca %"class.std::__cxx11::basic_string", align 8
  %489 = alloca %"class.std::allocator.0", align 1
  %490 = alloca %"class.std::__cxx11::basic_string", align 8
  %491 = alloca %"class.std::allocator.0", align 1
  %492 = alloca %"class.std::__cxx11::basic_string", align 8
  %493 = alloca %"class.std::allocator.0", align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %2) #7
  store i32 1, ptr %2, align 4, !tbaa !5
  %494 = getelementptr inbounds i8, ptr %2, i64 4
  store i32 2, ptr %494, align 4, !tbaa !5
  %495 = getelementptr inbounds i8, ptr %2, i64 8
  store i32 3, ptr %495, align 4, !tbaa !5
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr nonnull %2, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %4) #7
  store i32 1, ptr %4, align 4, !tbaa !5
  %496 = getelementptr inbounds i8, ptr %4, i64 4
  store i32 2, ptr %496, align 4, !tbaa !5
  %497 = getelementptr inbounds i8, ptr %4, i64 8
  store i32 3, ptr %497, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr nonnull %4, i64 3)
          to label %498 unwind label %507

498:                                              ; preds = %0
  %499 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %500 unwind label %509

500:                                              ; preds = %498
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  br i1 %499, label %526, label %501

501:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %502 unwind label %512

502:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %503 unwind label %514

503:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %504 unwind label %516

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %505 unwind label %518

505:                                              ; preds = %504
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 14) #8
          to label %506 unwind label %520

506:                                              ; preds = %505
  unreachable

507:                                              ; preds = %0
  %508 = landingpad { ptr, i32 }
          cleanup
  br label %511

509:                                              ; preds = %498
  %510 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  br label %511

511:                                              ; preds = %509, %507
  %.pn = phi { ptr, i32 } [ %510, %509 ], [ %508, %507 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  br label %597

512:                                              ; preds = %501
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %525

514:                                              ; preds = %502
  %515 = landingpad { ptr, i32 }
          cleanup
  br label %524

516:                                              ; preds = %503
  %517 = landingpad { ptr, i32 }
          cleanup
  br label %523

518:                                              ; preds = %504
  %519 = landingpad { ptr, i32 }
          cleanup
  br label %522

520:                                              ; preds = %505
  %521 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %522

522:                                              ; preds = %520, %518
  %.pn709 = phi { ptr, i32 } [ %521, %520 ], [ %519, %518 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %523

523:                                              ; preds = %522, %516
  %.pn709.pn = phi { ptr, i32 } [ %.pn709, %522 ], [ %517, %516 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr nonnull %9) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %524

524:                                              ; preds = %523, %514
  %.pn709.pn.pn = phi { ptr, i32 } [ %.pn709.pn, %523 ], [ %515, %514 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %525

525:                                              ; preds = %524, %512
  %.pn709.pn.pn.pn = phi { ptr, i32 } [ %.pn709.pn.pn, %524 ], [ %513, %512 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br label %597

526:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  store <4 x i32> <i32 1, i32 2, i32 3, i32 4>, ptr %14, align 16, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr nonnull %14, i64 4)
          to label %527 unwind label %536

527:                                              ; preds = %526
  %528 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %529 unwind label %538

529:                                              ; preds = %527
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  br i1 %528, label %530, label %555

530:                                              ; preds = %529
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %531 unwind label %541

531:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %532 unwind label %543

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %533 unwind label %545

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %534 unwind label %547

534:                                              ; preds = %533
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %21, i32 noundef 15) #8
          to label %535 unwind label %549

535:                                              ; preds = %534
  unreachable

536:                                              ; preds = %526
  %537 = landingpad { ptr, i32 }
          cleanup
  br label %540

538:                                              ; preds = %527
  %539 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  br label %540

540:                                              ; preds = %538, %536
  %.pn368 = phi { ptr, i32 } [ %539, %538 ], [ %537, %536 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  br label %597

541:                                              ; preds = %530
  %542 = landingpad { ptr, i32 }
          cleanup
  br label %554

543:                                              ; preds = %531
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %553

545:                                              ; preds = %532
  %546 = landingpad { ptr, i32 }
          cleanup
  br label %552

547:                                              ; preds = %533
  %548 = landingpad { ptr, i32 }
          cleanup
  br label %551

549:                                              ; preds = %534
  %550 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %551

551:                                              ; preds = %549, %547
  %.pn704 = phi { ptr, i32 } [ %550, %549 ], [ %548, %547 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr nonnull %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %552

552:                                              ; preds = %551, %545
  %.pn704.pn = phi { ptr, i32 } [ %.pn704, %551 ], [ %546, %545 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %553

553:                                              ; preds = %552, %543
  %.pn704.pn.pn = phi { ptr, i32 } [ %.pn704.pn, %552 ], [ %544, %543 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %554

554:                                              ; preds = %553, %541
  %.pn704.pn.pn.pn = phi { ptr, i32 } [ %.pn704.pn.pn, %553 ], [ %542, %541 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr nonnull %15) #7
  br label %597

555:                                              ; preds = %529
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  store i32 1, ptr %24, align 4, !tbaa !5
  %556 = getelementptr inbounds i8, ptr %24, i64 4
  store i32 2, ptr %556, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr nonnull %24, i64 2)
          to label %557 unwind label %566

557:                                              ; preds = %555
  %558 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %559 unwind label %568

559:                                              ; preds = %557
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #7
  br i1 %558, label %560, label %585

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %561 unwind label %571

561:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %562 unwind label %573

562:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %563 unwind label %575

563:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %564 unwind label %577

564:                                              ; preds = %563
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %31, i32 noundef 16) #8
          to label %565 unwind label %579

565:                                              ; preds = %564
  unreachable

566:                                              ; preds = %555
  %567 = landingpad { ptr, i32 }
          cleanup
  br label %570

568:                                              ; preds = %557
  %569 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  br label %570

570:                                              ; preds = %568, %566
  %.pn370 = phi { ptr, i32 } [ %569, %568 ], [ %567, %566 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #7
  br label %597

571:                                              ; preds = %560
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %584

573:                                              ; preds = %561
  %574 = landingpad { ptr, i32 }
          cleanup
  br label %583

575:                                              ; preds = %562
  %576 = landingpad { ptr, i32 }
          cleanup
  br label %582

577:                                              ; preds = %563
  %578 = landingpad { ptr, i32 }
          cleanup
  br label %581

579:                                              ; preds = %564
  %580 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %581

581:                                              ; preds = %579, %577
  %.pn699 = phi { ptr, i32 } [ %580, %579 ], [ %578, %577 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %582

582:                                              ; preds = %581, %575
  %.pn699.pn = phi { ptr, i32 } [ %.pn699, %581 ], [ %576, %575 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %583

583:                                              ; preds = %582, %573
  %.pn699.pn.pn = phi { ptr, i32 } [ %.pn699.pn, %582 ], [ %574, %573 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %584

584:                                              ; preds = %583, %571
  %.pn699.pn.pn.pn = phi { ptr, i32 } [ %.pn699.pn.pn, %583 ], [ %572, %571 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %597

585:                                              ; preds = %559
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %34) #7
  store <2 x float> <float 0x3FF19999A0000000, float 0x40019999A0000000>, ptr %34, align 8, !tbaa !9
  %586 = getelementptr inbounds i8, ptr %34, i64 8
  store float 0x4008CCCCC0000000, ptr %586, align 8, !tbaa !9
  call void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr nonnull %34, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %36) #7
  store <2 x float> <float 0x3FF19999A0000000, float 0x40019999A0000000>, ptr %36, align 8, !tbaa !9
  %587 = getelementptr inbounds i8, ptr %36, i64 8
  store float 0x4008CCCCC0000000, ptr %587, align 8, !tbaa !9
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr nonnull %36, i64 3)
          to label %588 unwind label %598

588:                                              ; preds = %585
  %589 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %35)
          to label %590 unwind label %600

590:                                              ; preds = %588
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #7
  br i1 %589, label %617, label %591

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %592 unwind label %603

592:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %593 unwind label %605

593:                                              ; preds = %592
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %594 unwind label %607

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %595 unwind label %609

595:                                              ; preds = %594
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %43, i32 noundef 21) #8
          to label %596 unwind label %611

596:                                              ; preds = %595
  unreachable

597:                                              ; preds = %584, %570, %554, %540, %525, %511
  %.pn709.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn709.pn.pn.pn, %525 ], [ %.pn704.pn.pn.pn, %554 ], [ %.pn699.pn.pn.pn, %584 ], [ %.pn370, %570 ], [ %.pn368, %540 ], [ %.pn, %511 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #7
  br label %1998

598:                                              ; preds = %585
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %602

600:                                              ; preds = %588
  %601 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  br label %602

602:                                              ; preds = %600, %598
  %.pn372 = phi { ptr, i32 } [ %601, %600 ], [ %599, %598 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #7
  br label %729

603:                                              ; preds = %591
  %604 = landingpad { ptr, i32 }
          cleanup
  br label %616

605:                                              ; preds = %592
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %615

607:                                              ; preds = %593
  %608 = landingpad { ptr, i32 }
          cleanup
  br label %614

609:                                              ; preds = %594
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %613

611:                                              ; preds = %595
  %612 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %613

613:                                              ; preds = %611, %609
  %.pn693 = phi { ptr, i32 } [ %612, %611 ], [ %610, %609 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %614

614:                                              ; preds = %613, %607
  %.pn693.pn = phi { ptr, i32 } [ %.pn693, %613 ], [ %608, %607 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %615

615:                                              ; preds = %614, %605
  %.pn693.pn.pn = phi { ptr, i32 } [ %.pn693.pn, %614 ], [ %606, %605 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %616

616:                                              ; preds = %615, %603
  %.pn693.pn.pn.pn = phi { ptr, i32 } [ %.pn693.pn.pn, %615 ], [ %604, %603 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br label %729

617:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #7
  store <4 x float> <float 0x3FF19999A0000000, float 0x40019999A0000000, float 0x4008CCCCC0000000, float 4.500000e+00>, ptr %46, align 16, !tbaa !9
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr nonnull %46, i64 4)
          to label %618 unwind label %627

618:                                              ; preds = %617
  %619 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %620 unwind label %629

620:                                              ; preds = %618
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  br i1 %619, label %621, label %646

621:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %622 unwind label %632

622:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %623 unwind label %634

623:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %624 unwind label %636

624:                                              ; preds = %623
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %625 unwind label %638

625:                                              ; preds = %624
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %53, i32 noundef 22) #8
          to label %626 unwind label %640

626:                                              ; preds = %625
  unreachable

627:                                              ; preds = %617
  %628 = landingpad { ptr, i32 }
          cleanup
  br label %631

629:                                              ; preds = %618
  %630 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  br label %631

631:                                              ; preds = %629, %627
  %.pn374 = phi { ptr, i32 } [ %630, %629 ], [ %628, %627 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  br label %729

632:                                              ; preds = %621
  %633 = landingpad { ptr, i32 }
          cleanup
  br label %645

634:                                              ; preds = %622
  %635 = landingpad { ptr, i32 }
          cleanup
  br label %644

636:                                              ; preds = %623
  %637 = landingpad { ptr, i32 }
          cleanup
  br label %643

638:                                              ; preds = %624
  %639 = landingpad { ptr, i32 }
          cleanup
  br label %642

640:                                              ; preds = %625
  %641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %642

642:                                              ; preds = %640, %638
  %.pn688 = phi { ptr, i32 } [ %641, %640 ], [ %639, %638 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %643

643:                                              ; preds = %642, %636
  %.pn688.pn = phi { ptr, i32 } [ %.pn688, %642 ], [ %637, %636 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %644

644:                                              ; preds = %643, %634
  %.pn688.pn.pn = phi { ptr, i32 } [ %.pn688.pn, %643 ], [ %635, %634 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %645

645:                                              ; preds = %644, %632
  %.pn688.pn.pn.pn = phi { ptr, i32 } [ %.pn688.pn.pn, %644 ], [ %633, %632 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  br label %729

646:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #7
  store <2 x float> <float 0x3FF19999A0000000, float 0x40019999A0000000>, ptr %56, align 8, !tbaa !9
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr nonnull %56, i64 2)
          to label %647 unwind label %656

647:                                              ; preds = %646
  %648 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %649 unwind label %658

649:                                              ; preds = %647
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #7
  br i1 %648, label %650, label %675

650:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %651 unwind label %661

651:                                              ; preds = %650
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %652 unwind label %663

652:                                              ; preds = %651
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %62) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %653 unwind label %665

653:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %654 unwind label %667

654:                                              ; preds = %653
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %63, i32 noundef 23) #8
          to label %655 unwind label %669

655:                                              ; preds = %654
  unreachable

656:                                              ; preds = %646
  %657 = landingpad { ptr, i32 }
          cleanup
  br label %660

658:                                              ; preds = %647
  %659 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  br label %660

660:                                              ; preds = %658, %656
  %.pn376 = phi { ptr, i32 } [ %659, %658 ], [ %657, %656 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #7
  br label %729

661:                                              ; preds = %650
  %662 = landingpad { ptr, i32 }
          cleanup
  br label %674

663:                                              ; preds = %651
  %664 = landingpad { ptr, i32 }
          cleanup
  br label %673

665:                                              ; preds = %652
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %672

667:                                              ; preds = %653
  %668 = landingpad { ptr, i32 }
          cleanup
  br label %671

669:                                              ; preds = %654
  %670 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %671

671:                                              ; preds = %669, %667
  %.pn683 = phi { ptr, i32 } [ %670, %669 ], [ %668, %667 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %672

672:                                              ; preds = %671, %665
  %.pn683.pn = phi { ptr, i32 } [ %.pn683, %671 ], [ %666, %665 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %673

673:                                              ; preds = %672, %663
  %.pn683.pn.pn = phi { ptr, i32 } [ %.pn683.pn, %672 ], [ %664, %663 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %674

674:                                              ; preds = %673, %661
  %.pn683.pn.pn.pn = phi { ptr, i32 } [ %.pn683.pn.pn, %673 ], [ %662, %661 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #7
  br label %729

675:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %65) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %66) #7
  store <2 x float> <float 0x3FF19999A0000000, float 0x4001AE1480000000>, ptr %66, align 8, !tbaa !9
  %676 = getelementptr inbounds i8, ptr %66, i64 8
  store float 0x4008CCCCC0000000, ptr %676, align 8, !tbaa !9
  invoke void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr nonnull %66, i64 3)
          to label %677 unwind label %686

677:                                              ; preds = %675
  %678 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %65)
          to label %679 unwind label %688

679:                                              ; preds = %677
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #7
  br i1 %678, label %680, label %705

680:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %681 unwind label %691

681:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %682 unwind label %693

682:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %683 unwind label %695

683:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %684 unwind label %697

684:                                              ; preds = %683
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %73, i32 noundef 24) #8
          to label %685 unwind label %699

685:                                              ; preds = %684
  unreachable

686:                                              ; preds = %675
  %687 = landingpad { ptr, i32 }
          cleanup
  br label %690

688:                                              ; preds = %677
  %689 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #7
  br label %690

690:                                              ; preds = %688, %686
  %.pn378 = phi { ptr, i32 } [ %689, %688 ], [ %687, %686 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #7
  br label %729

691:                                              ; preds = %680
  %692 = landingpad { ptr, i32 }
          cleanup
  br label %704

693:                                              ; preds = %681
  %694 = landingpad { ptr, i32 }
          cleanup
  br label %703

695:                                              ; preds = %682
  %696 = landingpad { ptr, i32 }
          cleanup
  br label %702

697:                                              ; preds = %683
  %698 = landingpad { ptr, i32 }
          cleanup
  br label %701

699:                                              ; preds = %684
  %700 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %701

701:                                              ; preds = %699, %697
  %.pn678 = phi { ptr, i32 } [ %700, %699 ], [ %698, %697 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %702

702:                                              ; preds = %701, %695
  %.pn678.pn = phi { ptr, i32 } [ %.pn678, %701 ], [ %696, %695 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %703

703:                                              ; preds = %702, %693
  %.pn678.pn.pn = phi { ptr, i32 } [ %.pn678.pn, %702 ], [ %694, %693 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %704

704:                                              ; preds = %703, %691
  %.pn678.pn.pn.pn = phi { ptr, i32 } [ %.pn678.pn.pn, %703 ], [ %692, %691 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  br label %729

705:                                              ; preds = %679
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %76) #7
  store i32 1, ptr %76, align 4, !tbaa !5
  %706 = getelementptr inbounds i8, ptr %76, i64 4
  store i32 2, ptr %706, align 4, !tbaa !5
  %707 = getelementptr inbounds i8, ptr %76, i64 8
  store i32 3, ptr %707, align 4, !tbaa !5
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr nonnull %76, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %76) #7
  %708 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %75, i32 noundef 0)
          to label %709 unwind label %730

709:                                              ; preds = %705
  store i32 -1, ptr %708, align 4, !tbaa !5
  %710 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %75, i32 noundef 1)
          to label %711 unwind label %730

711:                                              ; preds = %709
  store i32 5, ptr %710, align 4, !tbaa !5
  %712 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %75, i32 noundef 1)
          to label %713 unwind label %730

713:                                              ; preds = %711
  %714 = load i32, ptr %712, align 4, !tbaa !5
  %715 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %75, i32 noundef 2)
          to label %716 unwind label %730

716:                                              ; preds = %713
  %717 = add nsw i32 %714, 1
  store i32 %717, ptr %715, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %78) #7
  store i32 -1, ptr %78, align 4, !tbaa !5
  %718 = getelementptr inbounds i8, ptr %78, i64 4
  store i32 5, ptr %718, align 4, !tbaa !5
  %719 = getelementptr inbounds i8, ptr %78, i64 8
  store i32 6, ptr %719, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %77, ptr nonnull %78, i64 3)
          to label %720 unwind label %732

720:                                              ; preds = %716
  %721 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull align 8 dereferenceable(24) %77)
          to label %722 unwind label %734

722:                                              ; preds = %720
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %77) #7
  br i1 %721, label %751, label %723

723:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %724 unwind label %737

724:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %82) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %725 unwind label %739

725:                                              ; preds = %724
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %726 unwind label %741

726:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %727 unwind label %743

727:                                              ; preds = %726
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %85, i32 noundef 32) #8
          to label %728 unwind label %745

728:                                              ; preds = %727
  unreachable

729:                                              ; preds = %704, %690, %674, %660, %645, %631, %616, %602
  %.pn693.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn693.pn.pn.pn, %616 ], [ %.pn688.pn.pn.pn, %645 ], [ %.pn683.pn.pn.pn, %674 ], [ %.pn678.pn.pn.pn, %704 ], [ %.pn378, %690 ], [ %.pn376, %660 ], [ %.pn374, %631 ], [ %.pn372, %602 ]
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  br label %1998

730:                                              ; preds = %817, %713, %711, %709, %705
  %731 = landingpad { ptr, i32 }
          cleanup
  br label %861

732:                                              ; preds = %716
  %733 = landingpad { ptr, i32 }
          cleanup
  br label %736

734:                                              ; preds = %720
  %735 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  br label %736

736:                                              ; preds = %734, %732
  %.pn380 = phi { ptr, i32 } [ %735, %734 ], [ %733, %732 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %77) #7
  br label %861

737:                                              ; preds = %723
  %738 = landingpad { ptr, i32 }
          cleanup
  br label %750

739:                                              ; preds = %724
  %740 = landingpad { ptr, i32 }
          cleanup
  br label %749

741:                                              ; preds = %725
  %742 = landingpad { ptr, i32 }
          cleanup
  br label %748

743:                                              ; preds = %726
  %744 = landingpad { ptr, i32 }
          cleanup
  br label %747

745:                                              ; preds = %727
  %746 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %747

747:                                              ; preds = %745, %743
  %.pn672 = phi { ptr, i32 } [ %746, %745 ], [ %744, %743 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %748

748:                                              ; preds = %747, %741
  %.pn672.pn = phi { ptr, i32 } [ %.pn672, %747 ], [ %742, %741 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %749

749:                                              ; preds = %748, %739
  %.pn672.pn.pn = phi { ptr, i32 } [ %.pn672.pn, %748 ], [ %740, %739 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %750

750:                                              ; preds = %749, %737
  %.pn672.pn.pn.pn = phi { ptr, i32 } [ %.pn672.pn.pn, %749 ], [ %738, %737 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  br label %861

751:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %87) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %88) #7
  store <4 x i32> <i32 7, i32 8, i32 -2, i32 3>, ptr %88, align 16, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr nonnull %88, i64 4)
          to label %752 unwind label %763

752:                                              ; preds = %751
  %753 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayIiEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull align 8 dereferenceable(24) %87) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %87) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %87) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %89) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %90) #7
  store <4 x i32> <i32 7, i32 8, i32 -2, i32 3>, ptr %90, align 16, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr nonnull %90, i64 4)
          to label %754 unwind label %765

754:                                              ; preds = %752
  %755 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %756 unwind label %767

756:                                              ; preds = %754
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #7
  br i1 %755, label %784, label %757

757:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %758 unwind label %770

758:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %94) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %759 unwind label %772

759:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %760 unwind label %774

760:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %98) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %761 unwind label %776

761:                                              ; preds = %760
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %97, i32 noundef 34) #8
          to label %762 unwind label %778

762:                                              ; preds = %761
  unreachable

763:                                              ; preds = %751
  %764 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %87) #7
  br label %861

765:                                              ; preds = %752
  %766 = landingpad { ptr, i32 }
          cleanup
  br label %769

767:                                              ; preds = %754
  %768 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  br label %769

769:                                              ; preds = %767, %765
  %.pn382 = phi { ptr, i32 } [ %768, %767 ], [ %766, %765 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #7
  br label %861

770:                                              ; preds = %757
  %771 = landingpad { ptr, i32 }
          cleanup
  br label %783

772:                                              ; preds = %758
  %773 = landingpad { ptr, i32 }
          cleanup
  br label %782

774:                                              ; preds = %759
  %775 = landingpad { ptr, i32 }
          cleanup
  br label %781

776:                                              ; preds = %760
  %777 = landingpad { ptr, i32 }
          cleanup
  br label %780

778:                                              ; preds = %761
  %779 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %780

780:                                              ; preds = %778, %776
  %.pn667 = phi { ptr, i32 } [ %779, %778 ], [ %777, %776 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %781

781:                                              ; preds = %780, %774
  %.pn667.pn = phi { ptr, i32 } [ %.pn667, %780 ], [ %775, %774 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %782

782:                                              ; preds = %781, %772
  %.pn667.pn.pn = phi { ptr, i32 } [ %.pn667.pn, %781 ], [ %773, %772 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %783

783:                                              ; preds = %782, %770
  %.pn667.pn.pn.pn = phi { ptr, i32 } [ %.pn667.pn.pn, %782 ], [ %771, %770 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  br label %861

784:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %99) #7
  store i32 9, ptr %99, align 4, !tbaa !5
  %785 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull align 4 dereferenceable(4) %99)
          to label %786 unwind label %796

786:                                              ; preds = %784
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %99) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %100) #7
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %101) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %101, ptr noundef nonnull align 4 dereferenceable(20) @constinit, i64 20, i1 false), !tbaa.struct !11
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %100, ptr nonnull %101, i64 5)
          to label %787 unwind label %798

787:                                              ; preds = %786
  %788 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull align 8 dereferenceable(24) %100)
          to label %789 unwind label %800

789:                                              ; preds = %787
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %100) #7
  br i1 %788, label %817, label %790

790:                                              ; preds = %789
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %103) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %791 unwind label %803

791:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %105) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %792 unwind label %805

792:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %107) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %793 unwind label %807

793:                                              ; preds = %792
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %109) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %794 unwind label %809

794:                                              ; preds = %793
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %108, i32 noundef 36) #8
          to label %795 unwind label %811

795:                                              ; preds = %794
  unreachable

796:                                              ; preds = %784
  %797 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %99) #7
  br label %861

798:                                              ; preds = %786
  %799 = landingpad { ptr, i32 }
          cleanup
  br label %802

800:                                              ; preds = %787
  %801 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  br label %802

802:                                              ; preds = %800, %798
  %.pn384 = phi { ptr, i32 } [ %801, %800 ], [ %799, %798 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %100) #7
  br label %861

803:                                              ; preds = %790
  %804 = landingpad { ptr, i32 }
          cleanup
  br label %816

805:                                              ; preds = %791
  %806 = landingpad { ptr, i32 }
          cleanup
  br label %815

807:                                              ; preds = %792
  %808 = landingpad { ptr, i32 }
          cleanup
  br label %814

809:                                              ; preds = %793
  %810 = landingpad { ptr, i32 }
          cleanup
  br label %813

811:                                              ; preds = %794
  %812 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %813

813:                                              ; preds = %811, %809
  %.pn662 = phi { ptr, i32 } [ %812, %811 ], [ %810, %809 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %814

814:                                              ; preds = %813, %807
  %.pn662.pn = phi { ptr, i32 } [ %.pn662, %813 ], [ %808, %807 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  br label %815

815:                                              ; preds = %814, %805
  %.pn662.pn.pn = phi { ptr, i32 } [ %.pn662.pn, %814 ], [ %806, %805 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %816

816:                                              ; preds = %815, %803
  %.pn662.pn.pn.pn = phi { ptr, i32 } [ %.pn662.pn.pn, %815 ], [ %804, %803 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #7
  br label %861

817:                                              ; preds = %789
  %818 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayIiE12resize_clearEi(ptr noundef nonnull align 8 dereferenceable(24) %75, i32 noundef 2)
          to label %819 unwind label %730

819:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %110) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #7
  store i32 0, ptr %111, align 4, !tbaa !5
  %820 = getelementptr inbounds i8, ptr %111, i64 4
  store i32 0, ptr %820, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr nonnull %111, i64 2)
          to label %821 unwind label %830

821:                                              ; preds = %819
  %822 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull align 8 dereferenceable(24) %110)
          to label %823 unwind label %832

823:                                              ; preds = %821
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %110) #7
  br i1 %822, label %849, label %824

824:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %113) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %825 unwind label %835

825:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %115) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %826 unwind label %837

826:                                              ; preds = %825
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %117) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %827 unwind label %839

827:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %828 unwind label %841

828:                                              ; preds = %827
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %118, i32 noundef 38) #8
          to label %829 unwind label %843

829:                                              ; preds = %828
  unreachable

830:                                              ; preds = %819
  %831 = landingpad { ptr, i32 }
          cleanup
  br label %834

832:                                              ; preds = %821
  %833 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #7
  br label %834

834:                                              ; preds = %832, %830
  %.pn386 = phi { ptr, i32 } [ %833, %832 ], [ %831, %830 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %110) #7
  br label %861

835:                                              ; preds = %824
  %836 = landingpad { ptr, i32 }
          cleanup
  br label %848

837:                                              ; preds = %825
  %838 = landingpad { ptr, i32 }
          cleanup
  br label %847

839:                                              ; preds = %826
  %840 = landingpad { ptr, i32 }
          cleanup
  br label %846

841:                                              ; preds = %827
  %842 = landingpad { ptr, i32 }
          cleanup
  br label %845

843:                                              ; preds = %828
  %844 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %845

845:                                              ; preds = %843, %841
  %.pn657 = phi { ptr, i32 } [ %844, %843 ], [ %842, %841 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %846

846:                                              ; preds = %845, %839
  %.pn657.pn = phi { ptr, i32 } [ %.pn657, %845 ], [ %840, %839 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  br label %847

847:                                              ; preds = %846, %837
  %.pn657.pn.pn = phi { ptr, i32 } [ %.pn657.pn, %846 ], [ %838, %837 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  br label %848

848:                                              ; preds = %847, %835
  %.pn657.pn.pn.pn = phi { ptr, i32 } [ %.pn657.pn.pn, %847 ], [ %836, %835 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #7
  br label %861

849:                                              ; preds = %823
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %120) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %121) #7
  store i32 1, ptr %121, align 4, !tbaa !5
  %850 = getelementptr inbounds i8, ptr %121, i64 4
  store i32 2, ptr %850, align 4, !tbaa !5
  %851 = getelementptr inbounds i8, ptr %121, i64 8
  store i32 3, ptr %851, align 4, !tbaa !5
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %120, ptr nonnull %121, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %121) #7
  %852 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 0)
          to label %853 unwind label %862

853:                                              ; preds = %849
  %854 = load i32, ptr %852, align 4, !tbaa !5
  %.not388 = icmp eq i32 %854, 1
  br i1 %.not388, label %878, label %855

855:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %123) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %856 unwind label %864

856:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %125) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %857 unwind label %866

857:                                              ; preds = %856
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %127) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %858 unwind label %868

858:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %859 unwind label %870

859:                                              ; preds = %858
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %128, i32 noundef 43) #8
          to label %860 unwind label %872

860:                                              ; preds = %859
  unreachable

861:                                              ; preds = %848, %834, %816, %802, %796, %783, %769, %763, %750, %736, %730
  %.pn672.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn672.pn.pn.pn, %750 ], [ %.pn667.pn.pn.pn, %783 ], [ %.pn662.pn.pn.pn, %816 ], [ %.pn657.pn.pn.pn, %848 ], [ %.pn386, %834 ], [ %731, %730 ], [ %.pn384, %802 ], [ %797, %796 ], [ %.pn382, %769 ], [ %764, %763 ], [ %.pn380, %736 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #7
  br label %1998

862:                                              ; preds = %1020, %996, %949, %925, %878, %849
  %863 = landingpad { ptr, i32 }
          cleanup
  br label %1087

864:                                              ; preds = %855
  %865 = landingpad { ptr, i32 }
          cleanup
  br label %877

866:                                              ; preds = %856
  %867 = landingpad { ptr, i32 }
          cleanup
  br label %876

868:                                              ; preds = %857
  %869 = landingpad { ptr, i32 }
          cleanup
  br label %875

870:                                              ; preds = %858
  %871 = landingpad { ptr, i32 }
          cleanup
  br label %874

872:                                              ; preds = %859
  %873 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  br label %874

874:                                              ; preds = %872, %870
  %.pn651 = phi { ptr, i32 } [ %873, %872 ], [ %871, %870 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %875

875:                                              ; preds = %874, %868
  %.pn651.pn = phi { ptr, i32 } [ %.pn651, %874 ], [ %869, %868 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %876

876:                                              ; preds = %875, %866
  %.pn651.pn.pn = phi { ptr, i32 } [ %.pn651.pn, %875 ], [ %867, %866 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  br label %877

877:                                              ; preds = %876, %864
  %.pn651.pn.pn.pn = phi { ptr, i32 } [ %.pn651.pn.pn, %876 ], [ %865, %864 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #7
  br label %1087

878:                                              ; preds = %853
  %879 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 0)
          to label %880 unwind label %862

880:                                              ; preds = %878
  %881 = load i32, ptr %879, align 4, !tbaa !5
  %.not389 = icmp eq i32 %881, 1
  br i1 %.not389, label %902, label %882

882:                                              ; preds = %880
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %131) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %883 unwind label %888

883:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %133) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %884 unwind label %890

884:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %135) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %885 unwind label %892

885:                                              ; preds = %884
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %137) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %886 unwind label %894

886:                                              ; preds = %885
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(32) %136, i32 noundef 43) #8
          to label %887 unwind label %896

887:                                              ; preds = %886
  unreachable

888:                                              ; preds = %882
  %889 = landingpad { ptr, i32 }
          cleanup
  br label %901

890:                                              ; preds = %883
  %891 = landingpad { ptr, i32 }
          cleanup
  br label %900

892:                                              ; preds = %884
  %893 = landingpad { ptr, i32 }
          cleanup
  br label %899

894:                                              ; preds = %885
  %895 = landingpad { ptr, i32 }
          cleanup
  br label %898

896:                                              ; preds = %886
  %897 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  br label %898

898:                                              ; preds = %896, %894
  %.pn646 = phi { ptr, i32 } [ %897, %896 ], [ %895, %894 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  br label %899

899:                                              ; preds = %898, %892
  %.pn646.pn = phi { ptr, i32 } [ %.pn646, %898 ], [ %893, %892 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %900

900:                                              ; preds = %899, %890
  %.pn646.pn.pn = phi { ptr, i32 } [ %.pn646.pn, %899 ], [ %891, %890 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %133) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #7
  br label %901

901:                                              ; preds = %900, %888
  %.pn646.pn.pn.pn = phi { ptr, i32 } [ %.pn646.pn.pn, %900 ], [ %889, %888 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #7
  br label %1087

902:                                              ; preds = %880
  %903 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 0)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %.not390 = icmp eq i32 %904, 1
  br i1 %.not390, label %925, label %905

905:                                              ; preds = %902
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %138) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %139) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %906 unwind label %911

906:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %140) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %141) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %907 unwind label %913

907:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %143) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %908 unwind label %915

908:                                              ; preds = %907
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %145) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %909 unwind label %917

909:                                              ; preds = %908
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %144, i32 noundef 43) #8
          to label %910 unwind label %919

910:                                              ; preds = %909
  unreachable

911:                                              ; preds = %905
  %912 = landingpad { ptr, i32 }
          cleanup
  br label %924

913:                                              ; preds = %906
  %914 = landingpad { ptr, i32 }
          cleanup
  br label %923

915:                                              ; preds = %907
  %916 = landingpad { ptr, i32 }
          cleanup
  br label %922

917:                                              ; preds = %908
  %918 = landingpad { ptr, i32 }
          cleanup
  br label %921

919:                                              ; preds = %909
  %920 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #7
  br label %921

921:                                              ; preds = %919, %917
  %.pn641 = phi { ptr, i32 } [ %920, %919 ], [ %918, %917 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %922

922:                                              ; preds = %921, %915
  %.pn641.pn = phi { ptr, i32 } [ %.pn641, %921 ], [ %916, %915 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %923

923:                                              ; preds = %922, %913
  %.pn641.pn.pn = phi { ptr, i32 } [ %.pn641.pn, %922 ], [ %914, %913 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #7
  br label %924

924:                                              ; preds = %923, %911
  %.pn641.pn.pn.pn = phi { ptr, i32 } [ %.pn641.pn.pn, %923 ], [ %912, %911 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %139) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #7
  br label %1087

925:                                              ; preds = %902
  %926 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 1)
          to label %927 unwind label %862

927:                                              ; preds = %925
  %928 = load i32, ptr %926, align 4, !tbaa !5
  %.not391 = icmp eq i32 %928, 2
  br i1 %.not391, label %949, label %929

929:                                              ; preds = %927
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %147) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %930 unwind label %935

930:                                              ; preds = %929
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %149) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %149)
          to label %931 unwind label %937

931:                                              ; preds = %930
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %151) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %932 unwind label %939

932:                                              ; preds = %931
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %152) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %153) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %933 unwind label %941

933:                                              ; preds = %932
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull align 8 dereferenceable(32) %152, i32 noundef 44) #8
          to label %934 unwind label %943

934:                                              ; preds = %933
  unreachable

935:                                              ; preds = %929
  %936 = landingpad { ptr, i32 }
          cleanup
  br label %948

937:                                              ; preds = %930
  %938 = landingpad { ptr, i32 }
          cleanup
  br label %947

939:                                              ; preds = %931
  %940 = landingpad { ptr, i32 }
          cleanup
  br label %946

941:                                              ; preds = %932
  %942 = landingpad { ptr, i32 }
          cleanup
  br label %945

943:                                              ; preds = %933
  %944 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #7
  br label %945

945:                                              ; preds = %943, %941
  %.pn636 = phi { ptr, i32 } [ %944, %943 ], [ %942, %941 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %153) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  br label %946

946:                                              ; preds = %945, %939
  %.pn636.pn = phi { ptr, i32 } [ %.pn636, %945 ], [ %940, %939 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %947

947:                                              ; preds = %946, %937
  %.pn636.pn.pn = phi { ptr, i32 } [ %.pn636.pn, %946 ], [ %938, %937 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #7
  br label %948

948:                                              ; preds = %947, %935
  %.pn636.pn.pn.pn = phi { ptr, i32 } [ %.pn636.pn.pn, %947 ], [ %936, %935 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #7
  br label %1087

949:                                              ; preds = %927
  %950 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 1)
          to label %951 unwind label %862

951:                                              ; preds = %949
  %952 = load i32, ptr %950, align 4, !tbaa !5
  %.not392 = icmp eq i32 %952, 2
  br i1 %.not392, label %973, label %953

953:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %155) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %954 unwind label %959

954:                                              ; preds = %953
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %157) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %955 unwind label %961

955:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %158) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %159) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %956 unwind label %963

956:                                              ; preds = %955
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %160) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %161) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %957 unwind label %965

957:                                              ; preds = %956
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 8 dereferenceable(32) %160, i32 noundef 44) #8
          to label %958 unwind label %967

958:                                              ; preds = %957
  unreachable

959:                                              ; preds = %953
  %960 = landingpad { ptr, i32 }
          cleanup
  br label %972

961:                                              ; preds = %954
  %962 = landingpad { ptr, i32 }
          cleanup
  br label %971

963:                                              ; preds = %955
  %964 = landingpad { ptr, i32 }
          cleanup
  br label %970

965:                                              ; preds = %956
  %966 = landingpad { ptr, i32 }
          cleanup
  br label %969

967:                                              ; preds = %957
  %968 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #7
  br label %969

969:                                              ; preds = %967, %965
  %.pn631 = phi { ptr, i32 } [ %968, %967 ], [ %966, %965 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %161) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  br label %970

970:                                              ; preds = %969, %963
  %.pn631.pn = phi { ptr, i32 } [ %.pn631, %969 ], [ %964, %963 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %971

971:                                              ; preds = %970, %961
  %.pn631.pn.pn = phi { ptr, i32 } [ %.pn631.pn, %970 ], [ %962, %961 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #7
  br label %972

972:                                              ; preds = %971, %959
  %.pn631.pn.pn.pn = phi { ptr, i32 } [ %.pn631.pn.pn, %971 ], [ %960, %959 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #7
  br label %1087

973:                                              ; preds = %951
  %974 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 1)
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %.not393 = icmp eq i32 %975, 2
  br i1 %.not393, label %996, label %976

976:                                              ; preds = %973
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %162) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %163) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %977 unwind label %982

977:                                              ; preds = %976
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %164) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %165) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %165)
          to label %978 unwind label %984

978:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %166) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %167) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %167)
          to label %979 unwind label %986

979:                                              ; preds = %978
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %168) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %169) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %169)
          to label %980 unwind label %988

980:                                              ; preds = %979
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %168, i32 noundef 44) #8
          to label %981 unwind label %990

981:                                              ; preds = %980
  unreachable

982:                                              ; preds = %976
  %983 = landingpad { ptr, i32 }
          cleanup
  br label %995

984:                                              ; preds = %977
  %985 = landingpad { ptr, i32 }
          cleanup
  br label %994

986:                                              ; preds = %978
  %987 = landingpad { ptr, i32 }
          cleanup
  br label %993

988:                                              ; preds = %979
  %989 = landingpad { ptr, i32 }
          cleanup
  br label %992

990:                                              ; preds = %980
  %991 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  br label %992

992:                                              ; preds = %990, %988
  %.pn626 = phi { ptr, i32 } [ %991, %990 ], [ %989, %988 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %993

993:                                              ; preds = %992, %986
  %.pn626.pn = phi { ptr, i32 } [ %.pn626, %992 ], [ %987, %986 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %166) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %994

994:                                              ; preds = %993, %984
  %.pn626.pn.pn = phi { ptr, i32 } [ %.pn626.pn, %993 ], [ %985, %984 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #7
  br label %995

995:                                              ; preds = %994, %982
  %.pn626.pn.pn.pn = phi { ptr, i32 } [ %.pn626.pn.pn, %994 ], [ %983, %982 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %163) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #7
  br label %1087

996:                                              ; preds = %973
  %997 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 2)
          to label %998 unwind label %862

998:                                              ; preds = %996
  %999 = load i32, ptr %997, align 4, !tbaa !5
  %.not394 = icmp eq i32 %999, 3
  br i1 %.not394, label %1020, label %1000

1000:                                             ; preds = %998
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %170) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %171) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %171)
          to label %1001 unwind label %1006

1001:                                             ; preds = %1000
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %172) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %173) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %1002 unwind label %1008

1002:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %174) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %175) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %1003 unwind label %1010

1003:                                             ; preds = %1002
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %176) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %177) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %177)
          to label %1004 unwind label %1012

1004:                                             ; preds = %1003
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull align 8 dereferenceable(32) %176, i32 noundef 45) #8
          to label %1005 unwind label %1014

1005:                                             ; preds = %1004
  unreachable

1006:                                             ; preds = %1000
  %1007 = landingpad { ptr, i32 }
          cleanup
  br label %1019

1008:                                             ; preds = %1001
  %1009 = landingpad { ptr, i32 }
          cleanup
  br label %1018

1010:                                             ; preds = %1002
  %1011 = landingpad { ptr, i32 }
          cleanup
  br label %1017

1012:                                             ; preds = %1003
  %1013 = landingpad { ptr, i32 }
          cleanup
  br label %1016

1014:                                             ; preds = %1004
  %1015 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #7
  br label %1016

1016:                                             ; preds = %1014, %1012
  %.pn621 = phi { ptr, i32 } [ %1015, %1014 ], [ %1013, %1012 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %177) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #7
  br label %1017

1017:                                             ; preds = %1016, %1010
  %.pn621.pn = phi { ptr, i32 } [ %.pn621, %1016 ], [ %1011, %1010 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %1018

1018:                                             ; preds = %1017, %1008
  %.pn621.pn.pn = phi { ptr, i32 } [ %.pn621.pn, %1017 ], [ %1009, %1008 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #7
  br label %1019

1019:                                             ; preds = %1018, %1006
  %.pn621.pn.pn.pn = phi { ptr, i32 } [ %.pn621.pn.pn, %1018 ], [ %1007, %1006 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %171) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %170) #7
  br label %1087

1020:                                             ; preds = %998
  %1021 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 2)
          to label %1022 unwind label %862

1022:                                             ; preds = %1020
  %1023 = load i32, ptr %1021, align 4, !tbaa !5
  %.not395 = icmp eq i32 %1023, 3
  br i1 %.not395, label %1044, label %1024

1024:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %179) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %1025 unwind label %1030

1025:                                             ; preds = %1024
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %180) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %181) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %181)
          to label %1026 unwind label %1032

1026:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %182) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %183) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %183)
          to label %1027 unwind label %1034

1027:                                             ; preds = %1026
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %184) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %185) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %1028 unwind label %1036

1028:                                             ; preds = %1027
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 8 dereferenceable(32) %184, i32 noundef 45) #8
          to label %1029 unwind label %1038

1029:                                             ; preds = %1028
  unreachable

1030:                                             ; preds = %1024
  %1031 = landingpad { ptr, i32 }
          cleanup
  br label %1043

1032:                                             ; preds = %1025
  %1033 = landingpad { ptr, i32 }
          cleanup
  br label %1042

1034:                                             ; preds = %1026
  %1035 = landingpad { ptr, i32 }
          cleanup
  br label %1041

1036:                                             ; preds = %1027
  %1037 = landingpad { ptr, i32 }
          cleanup
  br label %1040

1038:                                             ; preds = %1028
  %1039 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #7
  br label %1040

1040:                                             ; preds = %1038, %1036
  %.pn616 = phi { ptr, i32 } [ %1039, %1038 ], [ %1037, %1036 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %185) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #7
  br label %1041

1041:                                             ; preds = %1040, %1034
  %.pn616.pn = phi { ptr, i32 } [ %.pn616, %1040 ], [ %1035, %1034 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %183) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %1042

1042:                                             ; preds = %1041, %1032
  %.pn616.pn.pn = phi { ptr, i32 } [ %.pn616.pn, %1041 ], [ %1033, %1032 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #7
  br label %1043

1043:                                             ; preds = %1042, %1030
  %.pn616.pn.pn.pn = phi { ptr, i32 } [ %.pn616.pn.pn, %1042 ], [ %1031, %1030 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #7
  br label %1087

1044:                                             ; preds = %1022
  %1045 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef 2)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %.not396 = icmp eq i32 %1046, 3
  br i1 %.not396, label %1067, label %1047

1047:                                             ; preds = %1044
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %186) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %187) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %1048 unwind label %1053

1048:                                             ; preds = %1047
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %188) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %189) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %189)
          to label %1049 unwind label %1055

1049:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %190) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %191) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %1050 unwind label %1057

1050:                                             ; preds = %1049
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %192) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %193) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1051 unwind label %1059

1051:                                             ; preds = %1050
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %192, i32 noundef 45) #8
          to label %1052 unwind label %1061

1052:                                             ; preds = %1051
  unreachable

1053:                                             ; preds = %1047
  %1054 = landingpad { ptr, i32 }
          cleanup
  br label %1066

1055:                                             ; preds = %1048
  %1056 = landingpad { ptr, i32 }
          cleanup
  br label %1065

1057:                                             ; preds = %1049
  %1058 = landingpad { ptr, i32 }
          cleanup
  br label %1064

1059:                                             ; preds = %1050
  %1060 = landingpad { ptr, i32 }
          cleanup
  br label %1063

1061:                                             ; preds = %1051
  %1062 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #7
  br label %1063

1063:                                             ; preds = %1061, %1059
  %.pn611 = phi { ptr, i32 } [ %1062, %1061 ], [ %1060, %1059 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %193) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #7
  br label %1064

1064:                                             ; preds = %1063, %1057
  %.pn611.pn = phi { ptr, i32 } [ %.pn611, %1063 ], [ %1058, %1057 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %191) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %1065

1065:                                             ; preds = %1064, %1055
  %.pn611.pn.pn = phi { ptr, i32 } [ %.pn611.pn, %1064 ], [ %1056, %1055 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %189) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %188) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #7
  br label %1066

1066:                                             ; preds = %1065, %1053
  %.pn611.pn.pn.pn = phi { ptr, i32 } [ %.pn611.pn.pn, %1065 ], [ %1054, %1053 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %187) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %186) #7
  br label %1087

1067:                                             ; preds = %1044
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %120) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %194) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %195) #7
  store i32 1, ptr %195, align 4, !tbaa !5
  %1068 = getelementptr inbounds i8, ptr %195, i64 4
  store i32 2, ptr %1068, align 4, !tbaa !5
  %1069 = getelementptr inbounds i8, ptr %195, i64 8
  store i32 3, ptr %1069, align 4, !tbaa !5
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr nonnull %195, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %195) #7
  %1070 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 0)
          to label %1071 unwind label %1088

1071:                                             ; preds = %1067
  store i32 5, ptr %1070, align 4, !tbaa !5
  %1072 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 1)
          to label %1073 unwind label %1088

1073:                                             ; preds = %1071
  store i32 6, ptr %1072, align 4, !tbaa !5
  %1074 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 2)
          to label %1075 unwind label %1088

1075:                                             ; preds = %1073
  store i32 7, ptr %1074, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %196) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %197) #7
  store i32 5, ptr %197, align 4, !tbaa !5
  %1076 = getelementptr inbounds i8, ptr %197, i64 4
  store i32 6, ptr %1076, align 4, !tbaa !5
  %1077 = getelementptr inbounds i8, ptr %197, i64 8
  store i32 7, ptr %1077, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %196, ptr nonnull %197, i64 3)
          to label %1078 unwind label %1090

1078:                                             ; preds = %1075
  %1079 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr noundef nonnull align 8 dereferenceable(24) %196)
          to label %1080 unwind label %1092

1080:                                             ; preds = %1078
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %196) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %197) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %196) #7
  br i1 %1079, label %1109, label %1081

1081:                                             ; preds = %1080
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %198) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %199) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %1082 unwind label %1095

1082:                                             ; preds = %1081
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %200) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %201) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %1083 unwind label %1097

1083:                                             ; preds = %1082
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %202) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %203) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %203)
          to label %1084 unwind label %1099

1084:                                             ; preds = %1083
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %204) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %205) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %1085 unwind label %1101

1085:                                             ; preds = %1084
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull align 8 dereferenceable(32) %204, i32 noundef 51) #8
          to label %1086 unwind label %1103

1086:                                             ; preds = %1085
  unreachable

1087:                                             ; preds = %1066, %1043, %1019, %995, %972, %948, %924, %901, %877, %862
  %.pn651.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn651.pn.pn.pn, %877 ], [ %.pn646.pn.pn.pn, %901 ], [ %.pn641.pn.pn.pn, %924 ], [ %.pn636.pn.pn.pn, %948 ], [ %.pn631.pn.pn.pn, %972 ], [ %.pn626.pn.pn.pn, %995 ], [ %.pn621.pn.pn.pn, %1019 ], [ %.pn616.pn.pn.pn, %1043 ], [ %.pn611.pn.pn.pn, %1066 ], [ %863, %862 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %120) #7
  br label %1998

1088:                                             ; preds = %1113, %1111, %1109, %1073, %1071, %1067
  %1089 = landingpad { ptr, i32 }
          cleanup
  br label %1201

1090:                                             ; preds = %1075
  %1091 = landingpad { ptr, i32 }
          cleanup
  br label %1094

1092:                                             ; preds = %1078
  %1093 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %196) #7
  br label %1094

1094:                                             ; preds = %1092, %1090
  %.pn397 = phi { ptr, i32 } [ %1093, %1092 ], [ %1091, %1090 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %197) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %196) #7
  br label %1201

1095:                                             ; preds = %1081
  %1096 = landingpad { ptr, i32 }
          cleanup
  br label %1108

1097:                                             ; preds = %1082
  %1098 = landingpad { ptr, i32 }
          cleanup
  br label %1107

1099:                                             ; preds = %1083
  %1100 = landingpad { ptr, i32 }
          cleanup
  br label %1106

1101:                                             ; preds = %1084
  %1102 = landingpad { ptr, i32 }
          cleanup
  br label %1105

1103:                                             ; preds = %1085
  %1104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %1105

1105:                                             ; preds = %1103, %1101
  %.pn605 = phi { ptr, i32 } [ %1104, %1103 ], [ %1102, %1101 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %205) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #7
  br label %1106

1106:                                             ; preds = %1105, %1099
  %.pn605.pn = phi { ptr, i32 } [ %.pn605, %1105 ], [ %1100, %1099 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %203) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #7
  br label %1107

1107:                                             ; preds = %1106, %1097
  %.pn605.pn.pn = phi { ptr, i32 } [ %.pn605.pn, %1106 ], [ %1098, %1097 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #7
  br label %1108

1108:                                             ; preds = %1107, %1095
  %.pn605.pn.pn.pn = phi { ptr, i32 } [ %.pn605.pn.pn, %1107 ], [ %1096, %1095 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #7
  br label %1201

1109:                                             ; preds = %1080
  %1110 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 0)
          to label %1111 unwind label %1088

1111:                                             ; preds = %1109
  store i32 2, ptr %1110, align 4, !tbaa !5
  %1112 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 1)
          to label %1113 unwind label %1088

1113:                                             ; preds = %1111
  store i32 1, ptr %1112, align 4, !tbaa !5
  %1114 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 2)
          to label %1115 unwind label %1088

1115:                                             ; preds = %1113
  store i32 -7, ptr %1114, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %206) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %207) #7
  store i32 2, ptr %207, align 4, !tbaa !5
  %1116 = getelementptr inbounds i8, ptr %207, i64 4
  store i32 1, ptr %1116, align 4, !tbaa !5
  %1117 = getelementptr inbounds i8, ptr %207, i64 8
  store i32 -7, ptr %1117, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %206, ptr nonnull %207, i64 3)
          to label %1118 unwind label %1127

1118:                                             ; preds = %1115
  %1119 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr noundef nonnull align 8 dereferenceable(24) %206)
          to label %1120 unwind label %1129

1120:                                             ; preds = %1118
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %206) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %207) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %206) #7
  br i1 %1119, label %1146, label %1121

1121:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %209) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %1122 unwind label %1132

1122:                                             ; preds = %1121
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %210) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %211) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %211)
          to label %1123 unwind label %1134

1123:                                             ; preds = %1122
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %212) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %213) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %213)
          to label %1124 unwind label %1136

1124:                                             ; preds = %1123
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %214) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %215) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %1125 unwind label %1138

1125:                                             ; preds = %1124
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %214, i32 noundef 53) #8
          to label %1126 unwind label %1140

1126:                                             ; preds = %1125
  unreachable

1127:                                             ; preds = %1115
  %1128 = landingpad { ptr, i32 }
          cleanup
  br label %1131

1129:                                             ; preds = %1118
  %1130 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %206) #7
  br label %1131

1131:                                             ; preds = %1129, %1127
  %.pn399 = phi { ptr, i32 } [ %1130, %1129 ], [ %1128, %1127 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %207) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %206) #7
  br label %1201

1132:                                             ; preds = %1121
  %1133 = landingpad { ptr, i32 }
          cleanup
  br label %1145

1134:                                             ; preds = %1122
  %1135 = landingpad { ptr, i32 }
          cleanup
  br label %1144

1136:                                             ; preds = %1123
  %1137 = landingpad { ptr, i32 }
          cleanup
  br label %1143

1138:                                             ; preds = %1124
  %1139 = landingpad { ptr, i32 }
          cleanup
  br label %1142

1140:                                             ; preds = %1125
  %1141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  br label %1142

1142:                                             ; preds = %1140, %1138
  %.pn600 = phi { ptr, i32 } [ %1141, %1140 ], [ %1139, %1138 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %215) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #7
  br label %1143

1143:                                             ; preds = %1142, %1136
  %.pn600.pn = phi { ptr, i32 } [ %.pn600, %1142 ], [ %1137, %1136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %213) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #7
  br label %1144

1144:                                             ; preds = %1143, %1134
  %.pn600.pn.pn = phi { ptr, i32 } [ %.pn600.pn, %1143 ], [ %1135, %1134 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %211) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  br label %1145

1145:                                             ; preds = %1144, %1132
  %.pn600.pn.pn.pn = phi { ptr, i32 } [ %.pn600.pn.pn, %1144 ], [ %1133, %1132 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #7
  br label %1201

1146:                                             ; preds = %1120
  %1147 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 0)
  store i32 -1, ptr %1147, align 4, !tbaa !5
  %1148 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 1)
  store i32 9, ptr %1148, align 4, !tbaa !5
  %1149 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiE2atEi(ptr noundef nonnull align 8 dereferenceable(24) %194, i32 noundef 2)
  store i32 -7, ptr %1149, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %216) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %217) #7
  store i32 -1, ptr %217, align 4, !tbaa !5
  %1150 = getelementptr inbounds i8, ptr %217, i64 4
  store i32 9, ptr %1150, align 4, !tbaa !5
  %1151 = getelementptr inbounds i8, ptr %217, i64 8
  store i32 -7, ptr %1151, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %216, ptr nonnull %217, i64 3)
          to label %1152 unwind label %1161

1152:                                             ; preds = %1146
  %1153 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr noundef nonnull align 8 dereferenceable(24) %216)
          to label %1154 unwind label %1163

1154:                                             ; preds = %1152
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %216) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %217) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %216) #7
  br i1 %1153, label %1180, label %1155

1155:                                             ; preds = %1154
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %218) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %219) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %219)
          to label %1156 unwind label %1166

1156:                                             ; preds = %1155
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %220) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %221) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %221)
          to label %1157 unwind label %1168

1157:                                             ; preds = %1156
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %222) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %223) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %1158 unwind label %1170

1158:                                             ; preds = %1157
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %224) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %225) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %225)
          to label %1159 unwind label %1172

1159:                                             ; preds = %1158
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 8 dereferenceable(32) %224, i32 noundef 55) #8
          to label %1160 unwind label %1174

1160:                                             ; preds = %1159
  unreachable

1161:                                             ; preds = %1146
  %1162 = landingpad { ptr, i32 }
          cleanup
  br label %1165

1163:                                             ; preds = %1152
  %1164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %216) #7
  br label %1165

1165:                                             ; preds = %1163, %1161
  %.pn401 = phi { ptr, i32 } [ %1164, %1163 ], [ %1162, %1161 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %217) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %216) #7
  br label %1201

1166:                                             ; preds = %1155
  %1167 = landingpad { ptr, i32 }
          cleanup
  br label %1179

1168:                                             ; preds = %1156
  %1169 = landingpad { ptr, i32 }
          cleanup
  br label %1178

1170:                                             ; preds = %1157
  %1171 = landingpad { ptr, i32 }
          cleanup
  br label %1177

1172:                                             ; preds = %1158
  %1173 = landingpad { ptr, i32 }
          cleanup
  br label %1176

1174:                                             ; preds = %1159
  %1175 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  br label %1176

1176:                                             ; preds = %1174, %1172
  %.pn595 = phi { ptr, i32 } [ %1175, %1174 ], [ %1173, %1172 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %225) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #7
  br label %1177

1177:                                             ; preds = %1176, %1170
  %.pn595.pn = phi { ptr, i32 } [ %.pn595, %1176 ], [ %1171, %1170 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %223) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %1178

1178:                                             ; preds = %1177, %1168
  %.pn595.pn.pn = phi { ptr, i32 } [ %.pn595.pn, %1177 ], [ %1169, %1168 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %221) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #7
  br label %1179

1179:                                             ; preds = %1178, %1166
  %.pn595.pn.pn.pn = phi { ptr, i32 } [ %.pn595.pn.pn, %1178 ], [ %1167, %1166 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %219) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %218) #7
  br label %1201

1180:                                             ; preds = %1154
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %194) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %226) #7
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %227) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %228) #7
  store i32 1, ptr %228, align 4, !tbaa !5
  %1181 = getelementptr inbounds i8, ptr %228, i64 4
  store i32 2, ptr %1181, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %227, ptr nonnull %228, i64 2)
          to label %1182 unwind label %.thread

1182:                                             ; preds = %1180
  %1183 = getelementptr inbounds i8, ptr %227, i64 24
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %229) #7
  store i32 2, ptr %229, align 4, !tbaa !5
  %1184 = getelementptr inbounds i8, ptr %229, i64 4
  store i32 3, ptr %1184, align 4, !tbaa !5
  %1185 = getelementptr inbounds i8, ptr %229, i64 8
  store i32 4, ptr %1185, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1183, ptr nonnull %229, i64 3)
          to label %1186 unwind label %.thread762

1186:                                             ; preds = %1182
  %1187 = getelementptr inbounds i8, ptr %227, i64 48
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %230) #7
  store i32 -1, ptr %230, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1187, ptr nonnull %230, i64 1)
          to label %1188 unwind label %1207

1188:                                             ; preds = %1186
  invoke void @_ZN3cgp8numarrayINS0_IiEEEC2ESt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(24) %226, ptr nonnull %227, i64 3)
          to label %1189 unwind label %.thread768

1189:                                             ; preds = %1188
  %1190 = getelementptr inbounds i8, ptr %227, i64 48
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1190) #7
  %1191 = getelementptr inbounds i8, ptr %227, i64 24
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1191) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %227) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %229) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #7
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %227) #7
  %1192 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 0)
          to label %1193 unwind label %1212

1193:                                             ; preds = %1189
  %1194 = call noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1192)
  %.not = icmp eq i32 %1194, 2
  br i1 %.not, label %1228, label %1195

1195:                                             ; preds = %1193
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %231) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %232) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %232)
          to label %1196 unwind label %1214

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %233) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %234) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %234)
          to label %1197 unwind label %1216

1197:                                             ; preds = %1196
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %235) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %236) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %236)
          to label %1198 unwind label %1218

1198:                                             ; preds = %1197
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %237) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %238) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %238)
          to label %1199 unwind label %1220

1199:                                             ; preds = %1198
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull align 8 dereferenceable(32) %237, i32 noundef 61) #8
          to label %1200 unwind label %1222

1200:                                             ; preds = %1199
  unreachable

1201:                                             ; preds = %1179, %1165, %1145, %1131, %1108, %1094, %1088
  %.pn605.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn605.pn.pn.pn, %1108 ], [ %.pn600.pn.pn.pn, %1145 ], [ %.pn595.pn.pn.pn, %1179 ], [ %.pn401, %1165 ], [ %.pn399, %1131 ], [ %1089, %1088 ], [ %.pn397, %1094 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %194) #7
  br label %1998

.thread:                                          ; preds = %1180
  %1202 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #7
  br label %.loopexit732

.thread762:                                       ; preds = %1182
  %1203 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %229) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #7
  br label %.preheader731.preheader

.thread768:                                       ; preds = %1188
  %1204 = landingpad { ptr, i32 }
          cleanup
  %1205 = getelementptr inbounds i8, ptr %227, i64 48
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1205) #7
  %1206 = getelementptr inbounds i8, ptr %227, i64 24
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1206) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %227) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %229) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #7
  br label %.loopexit732

1207:                                             ; preds = %1186
  %1208 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %229) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #7
  br label %.preheader731.preheader

.preheader731.preheader:                          ; preds = %1207, %.thread762
  %.pn403.pn767 = phi { ptr, i32 } [ %1203, %.thread762 ], [ %1208, %1207 ]
  %.0357766 = phi ptr [ %1183, %.thread762 ], [ %1187, %1207 ]
  br label %.preheader731

.preheader731:                                    ; preds = %.preheader731.preheader, %.preheader731
  %1209 = phi ptr [ %1210, %.preheader731 ], [ %.0357766, %.preheader731.preheader ]
  %1210 = getelementptr inbounds i8, ptr %1209, i64 -24
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1210) #7
  %1211 = icmp eq ptr %1210, %227
  br i1 %1211, label %.loopexit732, label %.preheader731

.loopexit732:                                     ; preds = %.preheader731, %.thread768, %.thread
  %.pn403.pn.pn723 = phi { ptr, i32 } [ %1202, %.thread ], [ %1204, %.thread768 ], [ %.pn403.pn767, %.preheader731 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %227) #7
  br label %1450

1212:                                             ; preds = %1406, %1377, %1341, %1317, %1284, %1260, %1228, %1189
  %1213 = landingpad { ptr, i32 }
          cleanup
  br label %1449

1214:                                             ; preds = %1195
  %1215 = landingpad { ptr, i32 }
          cleanup
  br label %1227

1216:                                             ; preds = %1196
  %1217 = landingpad { ptr, i32 }
          cleanup
  br label %1226

1218:                                             ; preds = %1197
  %1219 = landingpad { ptr, i32 }
          cleanup
  br label %1225

1220:                                             ; preds = %1198
  %1221 = landingpad { ptr, i32 }
          cleanup
  br label %1224

1222:                                             ; preds = %1199
  %1223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  br label %1224

1224:                                             ; preds = %1222, %1220
  %.pn588 = phi { ptr, i32 } [ %1223, %1222 ], [ %1221, %1220 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %238) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %237) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  br label %1225

1225:                                             ; preds = %1224, %1218
  %.pn588.pn = phi { ptr, i32 } [ %.pn588, %1224 ], [ %1219, %1218 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %236) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  br label %1226

1226:                                             ; preds = %1225, %1216
  %.pn588.pn.pn = phi { ptr, i32 } [ %.pn588.pn, %1225 ], [ %1217, %1216 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %233) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #7
  br label %1227

1227:                                             ; preds = %1226, %1214
  %.pn588.pn.pn.pn = phi { ptr, i32 } [ %.pn588.pn.pn, %1226 ], [ %1215, %1214 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %232) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %231) #7
  br label %1449

1228:                                             ; preds = %1193
  %1229 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 0)
          to label %1230 unwind label %1212

1230:                                             ; preds = %1228
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %239) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %240) #7
  store i32 1, ptr %240, align 4, !tbaa !5
  %1231 = getelementptr inbounds i8, ptr %240, i64 4
  store i32 2, ptr %1231, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %239, ptr nonnull %240, i64 2)
          to label %1232 unwind label %1241

1232:                                             ; preds = %1230
  %1233 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1229, ptr noundef nonnull align 8 dereferenceable(24) %239)
          to label %1234 unwind label %1243

1234:                                             ; preds = %1232
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %239) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %240) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %239) #7
  br i1 %1233, label %1260, label %1235

1235:                                             ; preds = %1234
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %241) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %242) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %242)
          to label %1236 unwind label %1246

1236:                                             ; preds = %1235
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %243) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %244) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %244)
          to label %1237 unwind label %1248

1237:                                             ; preds = %1236
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %245) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %246) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %246)
          to label %1238 unwind label %1250

1238:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %247) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %248) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %248)
          to label %1239 unwind label %1252

1239:                                             ; preds = %1238
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 8 dereferenceable(32) %247, i32 noundef 61) #8
          to label %1240 unwind label %1254

1240:                                             ; preds = %1239
  unreachable

1241:                                             ; preds = %1230
  %1242 = landingpad { ptr, i32 }
          cleanup
  br label %1245

1243:                                             ; preds = %1232
  %1244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %239) #7
  br label %1245

1245:                                             ; preds = %1243, %1241
  %.pn407 = phi { ptr, i32 } [ %1244, %1243 ], [ %1242, %1241 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %240) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %239) #7
  br label %1449

1246:                                             ; preds = %1235
  %1247 = landingpad { ptr, i32 }
          cleanup
  br label %1259

1248:                                             ; preds = %1236
  %1249 = landingpad { ptr, i32 }
          cleanup
  br label %1258

1250:                                             ; preds = %1237
  %1251 = landingpad { ptr, i32 }
          cleanup
  br label %1257

1252:                                             ; preds = %1238
  %1253 = landingpad { ptr, i32 }
          cleanup
  br label %1256

1254:                                             ; preds = %1239
  %1255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #7
  br label %1256

1256:                                             ; preds = %1254, %1252
  %.pn583 = phi { ptr, i32 } [ %1255, %1254 ], [ %1253, %1252 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %248) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %247) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  br label %1257

1257:                                             ; preds = %1256, %1250
  %.pn583.pn = phi { ptr, i32 } [ %.pn583, %1256 ], [ %1251, %1250 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %246) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  br label %1258

1258:                                             ; preds = %1257, %1248
  %.pn583.pn.pn = phi { ptr, i32 } [ %.pn583.pn, %1257 ], [ %1249, %1248 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %244) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #7
  br label %1259

1259:                                             ; preds = %1258, %1246
  %.pn583.pn.pn.pn = phi { ptr, i32 } [ %.pn583.pn.pn, %1258 ], [ %1247, %1246 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %242) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #7
  br label %1449

1260:                                             ; preds = %1234
  %1261 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 1)
          to label %1262 unwind label %1212

1262:                                             ; preds = %1260
  %1263 = call noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1261)
  %.not409 = icmp eq i32 %1263, 3
  br i1 %.not409, label %1284, label %1264

1264:                                             ; preds = %1262
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %249) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %250) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %250)
          to label %1265 unwind label %1270

1265:                                             ; preds = %1264
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %251) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %252) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %252)
          to label %1266 unwind label %1272

1266:                                             ; preds = %1265
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %253) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %254) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %254)
          to label %1267 unwind label %1274

1267:                                             ; preds = %1266
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %255) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %256) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %256) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %256)
          to label %1268 unwind label %1276

1268:                                             ; preds = %1267
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef nonnull align 8 dereferenceable(32) %255, i32 noundef 62) #8
          to label %1269 unwind label %1278

1269:                                             ; preds = %1268
  unreachable

1270:                                             ; preds = %1264
  %1271 = landingpad { ptr, i32 }
          cleanup
  br label %1283

1272:                                             ; preds = %1265
  %1273 = landingpad { ptr, i32 }
          cleanup
  br label %1282

1274:                                             ; preds = %1266
  %1275 = landingpad { ptr, i32 }
          cleanup
  br label %1281

1276:                                             ; preds = %1267
  %1277 = landingpad { ptr, i32 }
          cleanup
  br label %1280

1278:                                             ; preds = %1268
  %1279 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #7
  br label %1280

1280:                                             ; preds = %1278, %1276
  %.pn578 = phi { ptr, i32 } [ %1279, %1278 ], [ %1277, %1276 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %256) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %256) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  br label %1281

1281:                                             ; preds = %1280, %1274
  %.pn578.pn = phi { ptr, i32 } [ %.pn578, %1280 ], [ %1275, %1274 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %254) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #7
  br label %1282

1282:                                             ; preds = %1281, %1272
  %.pn578.pn.pn = phi { ptr, i32 } [ %.pn578.pn, %1281 ], [ %1273, %1272 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %251) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #7
  br label %1283

1283:                                             ; preds = %1282, %1270
  %.pn578.pn.pn.pn = phi { ptr, i32 } [ %.pn578.pn.pn, %1282 ], [ %1271, %1270 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %250) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #7
  br label %1449

1284:                                             ; preds = %1262
  %1285 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 1)
          to label %1286 unwind label %1212

1286:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %257) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %258) #7
  store i32 2, ptr %258, align 4, !tbaa !5
  %1287 = getelementptr inbounds i8, ptr %258, i64 4
  store i32 3, ptr %1287, align 4, !tbaa !5
  %1288 = getelementptr inbounds i8, ptr %258, i64 8
  store i32 4, ptr %1288, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %257, ptr nonnull %258, i64 3)
          to label %1289 unwind label %1298

1289:                                             ; preds = %1286
  %1290 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1285, ptr noundef nonnull align 8 dereferenceable(24) %257)
          to label %1291 unwind label %1300

1291:                                             ; preds = %1289
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %257) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %258) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %257) #7
  br i1 %1290, label %1317, label %1292

1292:                                             ; preds = %1291
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %259) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %260) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %1293 unwind label %1303

1293:                                             ; preds = %1292
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %261) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %262) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %262)
          to label %1294 unwind label %1305

1294:                                             ; preds = %1293
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %263) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %264) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %264)
          to label %1295 unwind label %1307

1295:                                             ; preds = %1294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %265) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %266) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %266)
          to label %1296 unwind label %1309

1296:                                             ; preds = %1295
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef nonnull align 8 dereferenceable(32) %265, i32 noundef 62) #8
          to label %1297 unwind label %1311

1297:                                             ; preds = %1296
  unreachable

1298:                                             ; preds = %1286
  %1299 = landingpad { ptr, i32 }
          cleanup
  br label %1302

1300:                                             ; preds = %1289
  %1301 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %257) #7
  br label %1302

1302:                                             ; preds = %1300, %1298
  %.pn410 = phi { ptr, i32 } [ %1301, %1300 ], [ %1299, %1298 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %258) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %257) #7
  br label %1449

1303:                                             ; preds = %1292
  %1304 = landingpad { ptr, i32 }
          cleanup
  br label %1316

1305:                                             ; preds = %1293
  %1306 = landingpad { ptr, i32 }
          cleanup
  br label %1315

1307:                                             ; preds = %1294
  %1308 = landingpad { ptr, i32 }
          cleanup
  br label %1314

1309:                                             ; preds = %1295
  %1310 = landingpad { ptr, i32 }
          cleanup
  br label %1313

1311:                                             ; preds = %1296
  %1312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #7
  br label %1313

1313:                                             ; preds = %1311, %1309
  %.pn573 = phi { ptr, i32 } [ %1312, %1311 ], [ %1310, %1309 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %266) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %265) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #7
  br label %1314

1314:                                             ; preds = %1313, %1307
  %.pn573.pn = phi { ptr, i32 } [ %.pn573, %1313 ], [ %1308, %1307 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %264) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %263) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  br label %1315

1315:                                             ; preds = %1314, %1305
  %.pn573.pn.pn = phi { ptr, i32 } [ %.pn573.pn, %1314 ], [ %1306, %1305 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %261) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  br label %1316

1316:                                             ; preds = %1315, %1303
  %.pn573.pn.pn.pn = phi { ptr, i32 } [ %.pn573.pn.pn, %1315 ], [ %1304, %1303 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %259) #7
  br label %1449

1317:                                             ; preds = %1291
  %1318 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 2)
          to label %1319 unwind label %1212

1319:                                             ; preds = %1317
  %1320 = call noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1318)
  %.not412 = icmp eq i32 %1320, 1
  br i1 %.not412, label %1341, label %1321

1321:                                             ; preds = %1319
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %267) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %268) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %268) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %267, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %268)
          to label %1322 unwind label %1327

1322:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %269) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %270) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %270)
          to label %1323 unwind label %1329

1323:                                             ; preds = %1322
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %271) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %272) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %272)
          to label %1324 unwind label %1331

1324:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %273) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %274) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %274) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %273, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %274)
          to label %1325 unwind label %1333

1325:                                             ; preds = %1324
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %267, ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull align 8 dereferenceable(32) %273, i32 noundef 63) #8
          to label %1326 unwind label %1335

1326:                                             ; preds = %1325
  unreachable

1327:                                             ; preds = %1321
  %1328 = landingpad { ptr, i32 }
          cleanup
  br label %1340

1329:                                             ; preds = %1322
  %1330 = landingpad { ptr, i32 }
          cleanup
  br label %1339

1331:                                             ; preds = %1323
  %1332 = landingpad { ptr, i32 }
          cleanup
  br label %1338

1333:                                             ; preds = %1324
  %1334 = landingpad { ptr, i32 }
          cleanup
  br label %1337

1335:                                             ; preds = %1325
  %1336 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #7
  br label %1337

1337:                                             ; preds = %1335, %1333
  %.pn568 = phi { ptr, i32 } [ %1336, %1335 ], [ %1334, %1333 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %274) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %274) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #7
  br label %1338

1338:                                             ; preds = %1337, %1331
  %.pn568.pn = phi { ptr, i32 } [ %.pn568, %1337 ], [ %1332, %1331 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #7
  br label %1339

1339:                                             ; preds = %1338, %1329
  %.pn568.pn.pn = phi { ptr, i32 } [ %.pn568.pn, %1338 ], [ %1330, %1329 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %270) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #7
  br label %1340

1340:                                             ; preds = %1339, %1327
  %.pn568.pn.pn.pn = phi { ptr, i32 } [ %.pn568.pn.pn, %1339 ], [ %1328, %1327 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %268) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %268) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #7
  br label %1449

1341:                                             ; preds = %1319
  %1342 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 2)
          to label %1343 unwind label %1212

1343:                                             ; preds = %1341
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %275) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %276) #7
  store i32 -1, ptr %276, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %275, ptr nonnull %276, i64 1)
          to label %1344 unwind label %1353

1344:                                             ; preds = %1343
  %1345 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1342, ptr noundef nonnull align 8 dereferenceable(24) %275)
          to label %1346 unwind label %1355

1346:                                             ; preds = %1344
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %275) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %276) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %275) #7
  br i1 %1345, label %1372, label %1347

1347:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %277) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %278) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %278) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %278)
          to label %1348 unwind label %1358

1348:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %279) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %280) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %280) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %279, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %280)
          to label %1349 unwind label %1360

1349:                                             ; preds = %1348
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %281) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %282) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %282) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %282)
          to label %1350 unwind label %1362

1350:                                             ; preds = %1349
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %283) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %284) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %284) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %283, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %284)
          to label %1351 unwind label %1364

1351:                                             ; preds = %1350
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(32) %279, ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef nonnull align 8 dereferenceable(32) %283, i32 noundef 63) #8
          to label %1352 unwind label %1366

1352:                                             ; preds = %1351
  unreachable

1353:                                             ; preds = %1343
  %1354 = landingpad { ptr, i32 }
          cleanup
  br label %1357

1355:                                             ; preds = %1344
  %1356 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %275) #7
  br label %1357

1357:                                             ; preds = %1355, %1353
  %.pn413 = phi { ptr, i32 } [ %1356, %1355 ], [ %1354, %1353 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %276) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %275) #7
  br label %1449

1358:                                             ; preds = %1347
  %1359 = landingpad { ptr, i32 }
          cleanup
  br label %1371

1360:                                             ; preds = %1348
  %1361 = landingpad { ptr, i32 }
          cleanup
  br label %1370

1362:                                             ; preds = %1349
  %1363 = landingpad { ptr, i32 }
          cleanup
  br label %1369

1364:                                             ; preds = %1350
  %1365 = landingpad { ptr, i32 }
          cleanup
  br label %1368

1366:                                             ; preds = %1351
  %1367 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %283) #7
  br label %1368

1368:                                             ; preds = %1366, %1364
  %.pn563 = phi { ptr, i32 } [ %1367, %1366 ], [ %1365, %1364 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %284) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %284) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %283) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #7
  br label %1369

1369:                                             ; preds = %1368, %1362
  %.pn563.pn = phi { ptr, i32 } [ %.pn563, %1368 ], [ %1363, %1362 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %282) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %282) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %281) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #7
  br label %1370

1370:                                             ; preds = %1369, %1360
  %.pn563.pn.pn = phi { ptr, i32 } [ %.pn563.pn, %1369 ], [ %1361, %1360 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %280) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %280) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %279) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #7
  br label %1371

1371:                                             ; preds = %1370, %1358
  %.pn563.pn.pn.pn = phi { ptr, i32 } [ %.pn563.pn.pn, %1370 ], [ %1359, %1358 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %278) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %278) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %277) #7
  br label %1449

1372:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %285) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %286) #7
  store i32 7, ptr %286, align 4, !tbaa !5
  %1373 = getelementptr inbounds i8, ptr %286, i64 4
  store i32 8, ptr %1373, align 4, !tbaa !5
  %1374 = getelementptr inbounds i8, ptr %286, i64 8
  store i32 9, ptr %1374, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %285, ptr nonnull %286, i64 3)
          to label %1375 unwind label %1387

1375:                                             ; preds = %1372
  %1376 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %226, ptr noundef nonnull align 8 dereferenceable(24) %285)
          to label %1377 unwind label %1389

1377:                                             ; preds = %1375
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %285) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %286) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %285) #7
  %1378 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 3)
          to label %1379 unwind label %1212

1379:                                             ; preds = %1377
  %1380 = call noundef i32 @_ZNK3cgp8numarrayIiE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1378)
  %.not417 = icmp eq i32 %1380, 3
  br i1 %.not417, label %1406, label %1381

1381:                                             ; preds = %1379
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %287) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %288) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %288)
          to label %1382 unwind label %1392

1382:                                             ; preds = %1381
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %289) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %290) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %289, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %290)
          to label %1383 unwind label %1394

1383:                                             ; preds = %1382
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %291) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %292) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %292) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %292)
          to label %1384 unwind label %1396

1384:                                             ; preds = %1383
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %293) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %294) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %294) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %294)
          to label %1385 unwind label %1398

1385:                                             ; preds = %1384
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull align 8 dereferenceable(32) %289, ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef nonnull align 8 dereferenceable(32) %293, i32 noundef 65) #8
          to label %1386 unwind label %1400

1386:                                             ; preds = %1385
  unreachable

1387:                                             ; preds = %1372
  %1388 = landingpad { ptr, i32 }
          cleanup
  br label %1391

1389:                                             ; preds = %1375
  %1390 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %285) #7
  br label %1391

1391:                                             ; preds = %1389, %1387
  %.pn415 = phi { ptr, i32 } [ %1390, %1389 ], [ %1388, %1387 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %286) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %285) #7
  br label %1449

1392:                                             ; preds = %1381
  %1393 = landingpad { ptr, i32 }
          cleanup
  br label %1405

1394:                                             ; preds = %1382
  %1395 = landingpad { ptr, i32 }
          cleanup
  br label %1404

1396:                                             ; preds = %1383
  %1397 = landingpad { ptr, i32 }
          cleanup
  br label %1403

1398:                                             ; preds = %1384
  %1399 = landingpad { ptr, i32 }
          cleanup
  br label %1402

1400:                                             ; preds = %1385
  %1401 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  br label %1402

1402:                                             ; preds = %1400, %1398
  %.pn558 = phi { ptr, i32 } [ %1401, %1400 ], [ %1399, %1398 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %294) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %294) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #7
  br label %1403

1403:                                             ; preds = %1402, %1396
  %.pn558.pn = phi { ptr, i32 } [ %.pn558, %1402 ], [ %1397, %1396 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %292) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %292) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %291) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #7
  br label %1404

1404:                                             ; preds = %1403, %1394
  %.pn558.pn.pn = phi { ptr, i32 } [ %.pn558.pn, %1403 ], [ %1395, %1394 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %290) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %289) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #7
  br label %1405

1405:                                             ; preds = %1404, %1392
  %.pn558.pn.pn.pn = phi { ptr, i32 } [ %.pn558.pn.pn, %1404 ], [ %1393, %1392 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %288) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #7
  br label %1449

1406:                                             ; preds = %1379
  %1407 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3cgp8numarrayINS0_IiEEEixEi(ptr noundef nonnull align 8 dereferenceable(24) %226, i32 noundef 3)
          to label %1408 unwind label %1212

1408:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %295) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %296) #7
  store i32 7, ptr %296, align 4, !tbaa !5
  %1409 = getelementptr inbounds i8, ptr %296, i64 4
  store i32 8, ptr %1409, align 4, !tbaa !5
  %1410 = getelementptr inbounds i8, ptr %296, i64 8
  store i32 9, ptr %1410, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %295, ptr nonnull %296, i64 3)
          to label %1411 unwind label %1420

1411:                                             ; preds = %1408
  %1412 = invoke noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24) %1407, ptr noundef nonnull align 8 dereferenceable(24) %295)
          to label %1413 unwind label %1422

1413:                                             ; preds = %1411
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %295) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %296) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %295) #7
  br i1 %1412, label %1439, label %1414

1414:                                             ; preds = %1413
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %297) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %298) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %298)
          to label %1415 unwind label %1425

1415:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %299) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %300) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %300) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %300)
          to label %1416 unwind label %1427

1416:                                             ; preds = %1415
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %301) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %302) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %302) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %302)
          to label %1417 unwind label %1429

1417:                                             ; preds = %1416
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %303) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %304) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %304) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %303, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %304)
          to label %1418 unwind label %1431

1418:                                             ; preds = %1417
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef nonnull align 8 dereferenceable(32) %303, i32 noundef 65) #8
          to label %1419 unwind label %1433

1419:                                             ; preds = %1418
  unreachable

1420:                                             ; preds = %1408
  %1421 = landingpad { ptr, i32 }
          cleanup
  br label %1424

1422:                                             ; preds = %1411
  %1423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %295) #7
  br label %1424

1424:                                             ; preds = %1422, %1420
  %.pn418 = phi { ptr, i32 } [ %1423, %1422 ], [ %1421, %1420 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %296) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %295) #7
  br label %1449

1425:                                             ; preds = %1414
  %1426 = landingpad { ptr, i32 }
          cleanup
  br label %1438

1427:                                             ; preds = %1415
  %1428 = landingpad { ptr, i32 }
          cleanup
  br label %1437

1429:                                             ; preds = %1416
  %1430 = landingpad { ptr, i32 }
          cleanup
  br label %1436

1431:                                             ; preds = %1417
  %1432 = landingpad { ptr, i32 }
          cleanup
  br label %1435

1433:                                             ; preds = %1418
  %1434 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #7
  br label %1435

1435:                                             ; preds = %1433, %1431
  %.pn553 = phi { ptr, i32 } [ %1434, %1433 ], [ %1432, %1431 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %304) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %304) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #7
  br label %1436

1436:                                             ; preds = %1435, %1429
  %.pn553.pn = phi { ptr, i32 } [ %.pn553, %1435 ], [ %1430, %1429 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %302) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %302) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %301) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  br label %1437

1437:                                             ; preds = %1436, %1427
  %.pn553.pn.pn = phi { ptr, i32 } [ %.pn553.pn, %1436 ], [ %1428, %1427 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %300) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %300) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %299) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  br label %1438

1438:                                             ; preds = %1437, %1425
  %.pn553.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn, %1437 ], [ %1426, %1425 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #7
  br label %1449

1439:                                             ; preds = %1413
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %226) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %226) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %305) #7
  call void @_ZN3cgp8numarrayIiEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %306) #7
  invoke void @_ZN3cgp8type_strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %306, ptr noundef nonnull align 8 dereferenceable(24) %305)
          to label %1440 unwind label %1451

1440:                                             ; preds = %1439
  %1441 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef nonnull @.str.33)
          to label %1442 unwind label %1453

1442:                                             ; preds = %1440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %306) #7
  br i1 %1441, label %1470, label %1443

1443:                                             ; preds = %1442
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %307) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %308) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %308)
          to label %1444 unwind label %1456

1444:                                             ; preds = %1443
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %309) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %310) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %310)
          to label %1445 unwind label %1458

1445:                                             ; preds = %1444
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %311) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %312) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %312)
          to label %1446 unwind label %1460

1446:                                             ; preds = %1445
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %313) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %314) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %314)
          to label %1447 unwind label %1462

1447:                                             ; preds = %1446
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull align 8 dereferenceable(32) %313, i32 noundef 69) #8
          to label %1448 unwind label %1464

1448:                                             ; preds = %1447
  unreachable

1449:                                             ; preds = %1438, %1424, %1405, %1391, %1371, %1357, %1340, %1316, %1302, %1283, %1259, %1245, %1227, %1212
  %.pn588.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn588.pn.pn.pn, %1227 ], [ %.pn583.pn.pn.pn, %1259 ], [ %.pn578.pn.pn.pn, %1283 ], [ %.pn573.pn.pn.pn, %1316 ], [ %.pn568.pn.pn.pn, %1340 ], [ %.pn563.pn.pn.pn, %1371 ], [ %.pn558.pn.pn.pn, %1405 ], [ %.pn553.pn.pn.pn, %1438 ], [ %.pn418, %1424 ], [ %1213, %1212 ], [ %.pn415, %1391 ], [ %.pn413, %1357 ], [ %.pn410, %1302 ], [ %.pn407, %1245 ]
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %226) #7
  br label %1450

1450:                                             ; preds = %1449, %.loopexit732
  %.pn588.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn588.pn.pn.pn.pn, %1449 ], [ %.pn403.pn.pn723, %.loopexit732 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %226) #7
  br label %1998

1451:                                             ; preds = %1439
  %1452 = landingpad { ptr, i32 }
          cleanup
  br label %1455

1453:                                             ; preds = %1440
  %1454 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  br label %1455

1455:                                             ; preds = %1453, %1451
  %.pn420 = phi { ptr, i32 } [ %1454, %1453 ], [ %1452, %1451 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %306) #7
  br label %1545

1456:                                             ; preds = %1443
  %1457 = landingpad { ptr, i32 }
          cleanup
  br label %1469

1458:                                             ; preds = %1444
  %1459 = landingpad { ptr, i32 }
          cleanup
  br label %1468

1460:                                             ; preds = %1445
  %1461 = landingpad { ptr, i32 }
          cleanup
  br label %1467

1462:                                             ; preds = %1446
  %1463 = landingpad { ptr, i32 }
          cleanup
  br label %1466

1464:                                             ; preds = %1447
  %1465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #7
  br label %1466

1466:                                             ; preds = %1464, %1462
  %.pn547 = phi { ptr, i32 } [ %1465, %1464 ], [ %1463, %1462 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %314) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #7
  br label %1467

1467:                                             ; preds = %1466, %1460
  %.pn547.pn = phi { ptr, i32 } [ %.pn547, %1466 ], [ %1461, %1460 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %312) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #7
  br label %1468

1468:                                             ; preds = %1467, %1458
  %.pn547.pn.pn = phi { ptr, i32 } [ %.pn547.pn, %1467 ], [ %1459, %1458 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %310) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %309) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #7
  br label %1469

1469:                                             ; preds = %1468, %1456
  %.pn547.pn.pn.pn = phi { ptr, i32 } [ %.pn547.pn.pn, %1468 ], [ %1457, %1456 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %308) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #7
  br label %1545

1470:                                             ; preds = %1442
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %315) #7
  call void @_ZN3cgp8numarrayIfEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %315)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %316) #7
  invoke void @_ZN3cgp8type_strIfEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %316, ptr noundef nonnull align 8 dereferenceable(24) %315)
          to label %1471 unwind label %1480

1471:                                             ; preds = %1470
  %1472 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull @.str.35)
          to label %1473 unwind label %1482

1473:                                             ; preds = %1471
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #7
  br i1 %1472, label %1499, label %1474

1474:                                             ; preds = %1473
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %317) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %318) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %318)
          to label %1475 unwind label %1485

1475:                                             ; preds = %1474
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %319) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %320) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %320)
          to label %1476 unwind label %1487

1476:                                             ; preds = %1475
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %321) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %322) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %322) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %322)
          to label %1477 unwind label %1489

1477:                                             ; preds = %1476
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %323) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %324) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %324)
          to label %1478 unwind label %1491

1478:                                             ; preds = %1477
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef nonnull align 8 dereferenceable(32) %323, i32 noundef 70) #8
          to label %1479 unwind label %1493

1479:                                             ; preds = %1478
  unreachable

1480:                                             ; preds = %1470
  %1481 = landingpad { ptr, i32 }
          cleanup
  br label %1484

1482:                                             ; preds = %1471
  %1483 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  br label %1484

1484:                                             ; preds = %1482, %1480
  %.pn422 = phi { ptr, i32 } [ %1483, %1482 ], [ %1481, %1480 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #7
  br label %1544

1485:                                             ; preds = %1474
  %1486 = landingpad { ptr, i32 }
          cleanup
  br label %1498

1487:                                             ; preds = %1475
  %1488 = landingpad { ptr, i32 }
          cleanup
  br label %1497

1489:                                             ; preds = %1476
  %1490 = landingpad { ptr, i32 }
          cleanup
  br label %1496

1491:                                             ; preds = %1477
  %1492 = landingpad { ptr, i32 }
          cleanup
  br label %1495

1493:                                             ; preds = %1478
  %1494 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #7
  br label %1495

1495:                                             ; preds = %1493, %1491
  %.pn541 = phi { ptr, i32 } [ %1494, %1493 ], [ %1492, %1491 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %324) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #7
  br label %1496

1496:                                             ; preds = %1495, %1489
  %.pn541.pn = phi { ptr, i32 } [ %.pn541, %1495 ], [ %1490, %1489 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %322) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %322) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #7
  br label %1497

1497:                                             ; preds = %1496, %1487
  %.pn541.pn.pn = phi { ptr, i32 } [ %.pn541.pn, %1496 ], [ %1488, %1487 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %320) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #7
  br label %1498

1498:                                             ; preds = %1497, %1485
  %.pn541.pn.pn.pn = phi { ptr, i32 } [ %.pn541.pn.pn, %1497 ], [ %1486, %1485 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %318) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %317) #7
  br label %1544

1499:                                             ; preds = %1473
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %325) #7
  call void @_ZN3cgp8numarrayINS0_IiEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %325)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %326) #7
  invoke void @_ZN3cgp8type_strINS_8numarrayIiEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS1_IT_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %326, ptr noundef nonnull align 8 dereferenceable(24) %325)
          to label %1500 unwind label %1509

1500:                                             ; preds = %1499
  %1501 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef nonnull @.str.37)
          to label %1502 unwind label %1511

1502:                                             ; preds = %1500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %326) #7
  br i1 %1501, label %1528, label %1503

1503:                                             ; preds = %1502
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %327) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %328) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %328)
          to label %1504 unwind label %1514

1504:                                             ; preds = %1503
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %329) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %330) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %1505 unwind label %1516

1505:                                             ; preds = %1504
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %331) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %332) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %332)
          to label %1506 unwind label %1518

1506:                                             ; preds = %1505
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %333) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %334) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %333, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %334)
          to label %1507 unwind label %1520

1507:                                             ; preds = %1506
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull align 8 dereferenceable(32) %333, i32 noundef 71) #8
          to label %1508 unwind label %1522

1508:                                             ; preds = %1507
  unreachable

1509:                                             ; preds = %1499
  %1510 = landingpad { ptr, i32 }
          cleanup
  br label %1513

1511:                                             ; preds = %1500
  %1512 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  br label %1513

1513:                                             ; preds = %1511, %1509
  %.pn424 = phi { ptr, i32 } [ %1512, %1511 ], [ %1510, %1509 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %326) #7
  br label %1543

1514:                                             ; preds = %1503
  %1515 = landingpad { ptr, i32 }
          cleanup
  br label %1527

1516:                                             ; preds = %1504
  %1517 = landingpad { ptr, i32 }
          cleanup
  br label %1526

1518:                                             ; preds = %1505
  %1519 = landingpad { ptr, i32 }
          cleanup
  br label %1525

1520:                                             ; preds = %1506
  %1521 = landingpad { ptr, i32 }
          cleanup
  br label %1524

1522:                                             ; preds = %1507
  %1523 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #7
  br label %1524

1524:                                             ; preds = %1522, %1520
  %.pn535 = phi { ptr, i32 } [ %1523, %1522 ], [ %1521, %1520 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %334) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #7
  br label %1525

1525:                                             ; preds = %1524, %1518
  %.pn535.pn = phi { ptr, i32 } [ %.pn535, %1524 ], [ %1519, %1518 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %332) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #7
  br label %1526

1526:                                             ; preds = %1525, %1516
  %.pn535.pn.pn = phi { ptr, i32 } [ %.pn535.pn, %1525 ], [ %1517, %1516 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %330) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #7
  br label %1527

1527:                                             ; preds = %1526, %1514
  %.pn535.pn.pn.pn = phi { ptr, i32 } [ %.pn535.pn.pn, %1526 ], [ %1515, %1514 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %328) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #7
  br label %1543

1528:                                             ; preds = %1502
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %325) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %325) #7
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %315) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %315) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %305) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %335) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %336) #7
  store i32 4, ptr %336, align 4, !tbaa !5
  %1529 = getelementptr inbounds i8, ptr %336, i64 4
  store i32 5, ptr %1529, align 4, !tbaa !5
  %1530 = getelementptr inbounds i8, ptr %336, i64 8
  store i32 6, ptr %1530, align 4, !tbaa !5
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %335, ptr nonnull %336, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %336) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %337) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %338) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %339) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef nonnull @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %339)
          to label %1531 unwind label %1546

1531:                                             ; preds = %1528
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %340) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %341) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %341)
          to label %1532 unwind label %1548

1532:                                             ; preds = %1531
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %342) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %343) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %1533 unwind label %1550

1533:                                             ; preds = %1532
  invoke void @_ZN3cgp3strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EERKS6_SD_SD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %337, ptr noundef nonnull align 8 dereferenceable(24) %335, ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 8 dereferenceable(32) %342)
          to label %1534 unwind label %1552

1534:                                             ; preds = %1533
  %1535 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull @.str.40)
          to label %1536 unwind label %1554

1536:                                             ; preds = %1534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %339) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %338) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #7
  br i1 %1535, label %1574, label %1537

1537:                                             ; preds = %1536
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %344) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %345) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %345) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %344, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %345)
          to label %1538 unwind label %1560

1538:                                             ; preds = %1537
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %346) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %347) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %346, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %347)
          to label %1539 unwind label %1562

1539:                                             ; preds = %1538
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %348) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %349) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %349)
          to label %1540 unwind label %1564

1540:                                             ; preds = %1539
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %350) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %351) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %351)
          to label %1541 unwind label %1566

1541:                                             ; preds = %1540
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %344, ptr noundef nonnull align 8 dereferenceable(32) %346, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 8 dereferenceable(32) %350, i32 noundef 76) #8
          to label %1542 unwind label %1568

1542:                                             ; preds = %1541
  unreachable

1543:                                             ; preds = %1527, %1513
  %.pn535.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn535.pn.pn.pn, %1527 ], [ %.pn424, %1513 ]
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %325) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %325) #7
  br label %1544

1544:                                             ; preds = %1543, %1498, %1484
  %.pn541.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn541.pn.pn.pn, %1498 ], [ %.pn535.pn.pn.pn.pn, %1543 ], [ %.pn422, %1484 ]
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %315) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %315) #7
  br label %1545

1545:                                             ; preds = %1544, %1469, %1455
  %.pn547.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn547.pn.pn.pn, %1469 ], [ %.pn541.pn.pn.pn.pn, %1544 ], [ %.pn420, %1455 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %305) #7
  br label %1998

1546:                                             ; preds = %1528
  %1547 = landingpad { ptr, i32 }
          cleanup
  br label %1559

1548:                                             ; preds = %1531
  %1549 = landingpad { ptr, i32 }
          cleanup
  br label %1558

1550:                                             ; preds = %1532
  %1551 = landingpad { ptr, i32 }
          cleanup
  br label %1557

1552:                                             ; preds = %1533
  %1553 = landingpad { ptr, i32 }
          cleanup
  br label %1556

1554:                                             ; preds = %1534
  %1555 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #7
  br label %1556

1556:                                             ; preds = %1554, %1552
  %.pn426 = phi { ptr, i32 } [ %1555, %1554 ], [ %1553, %1552 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  br label %1557

1557:                                             ; preds = %1556, %1550
  %.pn426.pn = phi { ptr, i32 } [ %.pn426, %1556 ], [ %1551, %1550 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  br label %1558

1558:                                             ; preds = %1557, %1548
  %.pn426.pn.pn = phi { ptr, i32 } [ %.pn426.pn, %1557 ], [ %1549, %1548 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #7
  br label %1559

1559:                                             ; preds = %1558, %1546
  %.pn426.pn.pn.pn = phi { ptr, i32 } [ %.pn426.pn.pn, %1558 ], [ %1547, %1546 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %339) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %338) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #7
  br label %1679

1560:                                             ; preds = %1537
  %1561 = landingpad { ptr, i32 }
          cleanup
  br label %1573

1562:                                             ; preds = %1538
  %1563 = landingpad { ptr, i32 }
          cleanup
  br label %1572

1564:                                             ; preds = %1539
  %1565 = landingpad { ptr, i32 }
          cleanup
  br label %1571

1566:                                             ; preds = %1540
  %1567 = landingpad { ptr, i32 }
          cleanup
  br label %1570

1568:                                             ; preds = %1541
  %1569 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  br label %1570

1570:                                             ; preds = %1568, %1566
  %.pn529 = phi { ptr, i32 } [ %1569, %1568 ], [ %1567, %1566 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %351) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %350) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #7
  br label %1571

1571:                                             ; preds = %1570, %1564
  %.pn529.pn = phi { ptr, i32 } [ %.pn529, %1570 ], [ %1565, %1564 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %349) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %348) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #7
  br label %1572

1572:                                             ; preds = %1571, %1562
  %.pn529.pn.pn = phi { ptr, i32 } [ %.pn529.pn, %1571 ], [ %1563, %1562 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %347) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  br label %1573

1573:                                             ; preds = %1572, %1560
  %.pn529.pn.pn.pn = phi { ptr, i32 } [ %.pn529.pn.pn, %1572 ], [ %1561, %1560 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %345) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %345) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %344) #7
  br label %1679

1574:                                             ; preds = %1536
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %352) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %353) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %354) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %354) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %353, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %354)
          to label %1575 unwind label %1587

1575:                                             ; preds = %1574
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %355) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %356) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %356) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %355, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %356)
          to label %1576 unwind label %1589

1576:                                             ; preds = %1575
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %357) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %358) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %358) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %358)
          to label %1577 unwind label %1591

1577:                                             ; preds = %1576
  invoke void @_ZN3cgp3strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EERKS6_SD_SD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %352, ptr noundef nonnull align 8 dereferenceable(24) %335, ptr noundef nonnull align 8 dereferenceable(32) %353, ptr noundef nonnull align 8 dereferenceable(32) %355, ptr noundef nonnull align 8 dereferenceable(32) %357)
          to label %1578 unwind label %1593

1578:                                             ; preds = %1577
  %1579 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull @.str.43)
          to label %1580 unwind label %1595

1580:                                             ; preds = %1578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %358) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %358) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %357) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %356) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %356) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %355) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %354) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %354) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %353) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %352) #7
  br i1 %1579, label %1615, label %1581

1581:                                             ; preds = %1580
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %359) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %360) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %360) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %359, ptr noundef nonnull @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %360)
          to label %1582 unwind label %1601

1582:                                             ; preds = %1581
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %361) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %362) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %362)
          to label %1583 unwind label %1603

1583:                                             ; preds = %1582
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %363) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %364) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %364)
          to label %1584 unwind label %1605

1584:                                             ; preds = %1583
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %365) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %366) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %366) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %365, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %366)
          to label %1585 unwind label %1607

1585:                                             ; preds = %1584
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %359, ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 8 dereferenceable(32) %365, i32 noundef 77) #8
          to label %1586 unwind label %1609

1586:                                             ; preds = %1585
  unreachable

1587:                                             ; preds = %1574
  %1588 = landingpad { ptr, i32 }
          cleanup
  br label %1600

1589:                                             ; preds = %1575
  %1590 = landingpad { ptr, i32 }
          cleanup
  br label %1599

1591:                                             ; preds = %1576
  %1592 = landingpad { ptr, i32 }
          cleanup
  br label %1598

1593:                                             ; preds = %1577
  %1594 = landingpad { ptr, i32 }
          cleanup
  br label %1597

1595:                                             ; preds = %1578
  %1596 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #7
  br label %1597

1597:                                             ; preds = %1595, %1593
  %.pn431 = phi { ptr, i32 } [ %1596, %1595 ], [ %1594, %1593 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #7
  br label %1598

1598:                                             ; preds = %1597, %1591
  %.pn431.pn = phi { ptr, i32 } [ %.pn431, %1597 ], [ %1592, %1591 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %358) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %358) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %357) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #7
  br label %1599

1599:                                             ; preds = %1598, %1589
  %.pn431.pn.pn = phi { ptr, i32 } [ %.pn431.pn, %1598 ], [ %1590, %1589 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %356) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %356) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %355) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #7
  br label %1600

1600:                                             ; preds = %1599, %1587
  %.pn431.pn.pn.pn = phi { ptr, i32 } [ %.pn431.pn.pn, %1599 ], [ %1588, %1587 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %354) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %354) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %353) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %352) #7
  br label %1679

1601:                                             ; preds = %1581
  %1602 = landingpad { ptr, i32 }
          cleanup
  br label %1614

1603:                                             ; preds = %1582
  %1604 = landingpad { ptr, i32 }
          cleanup
  br label %1613

1605:                                             ; preds = %1583
  %1606 = landingpad { ptr, i32 }
          cleanup
  br label %1612

1607:                                             ; preds = %1584
  %1608 = landingpad { ptr, i32 }
          cleanup
  br label %1611

1609:                                             ; preds = %1585
  %1610 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #7
  br label %1611

1611:                                             ; preds = %1609, %1607
  %.pn524 = phi { ptr, i32 } [ %1610, %1609 ], [ %1608, %1607 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %366) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %366) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %365) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #7
  br label %1612

1612:                                             ; preds = %1611, %1605
  %.pn524.pn = phi { ptr, i32 } [ %.pn524, %1611 ], [ %1606, %1605 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %364) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %363) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #7
  br label %1613

1613:                                             ; preds = %1612, %1603
  %.pn524.pn.pn = phi { ptr, i32 } [ %.pn524.pn, %1612 ], [ %1604, %1603 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %362) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #7
  br label %1614

1614:                                             ; preds = %1613, %1601
  %.pn524.pn.pn.pn = phi { ptr, i32 } [ %.pn524.pn.pn, %1613 ], [ %1602, %1601 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %360) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %360) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %359) #7
  br label %1679

1615:                                             ; preds = %1580
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %367) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %368) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %369) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %369)
          to label %1616 unwind label %1628

1616:                                             ; preds = %1615
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %370) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %371) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %371)
          to label %1617 unwind label %1630

1617:                                             ; preds = %1616
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %372) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %373) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %373)
          to label %1618 unwind label %1632

1618:                                             ; preds = %1617
  invoke void @_ZN3cgp3strIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8numarrayIT_EERKS6_SD_SD_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %367, ptr noundef nonnull align 8 dereferenceable(24) %335, ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef nonnull align 8 dereferenceable(32) %372)
          to label %1619 unwind label %1634

1619:                                             ; preds = %1618
  %1620 = invoke noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull @.str.47)
          to label %1621 unwind label %1636

1621:                                             ; preds = %1619
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %372) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %371) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %369) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %368) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #7
  br i1 %1620, label %1656, label %1622

1622:                                             ; preds = %1621
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %374) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %375) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef nonnull @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %375)
          to label %1623 unwind label %1642

1623:                                             ; preds = %1622
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %376) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %377) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %377) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %377)
          to label %1624 unwind label %1644

1624:                                             ; preds = %1623
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %378) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %379) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %379)
          to label %1625 unwind label %1646

1625:                                             ; preds = %1624
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %380) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %381) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %381)
          to label %1626 unwind label %1648

1626:                                             ; preds = %1625
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull align 8 dereferenceable(32) %380, i32 noundef 78) #8
          to label %1627 unwind label %1650

1627:                                             ; preds = %1626
  unreachable

1628:                                             ; preds = %1615
  %1629 = landingpad { ptr, i32 }
          cleanup
  br label %1641

1630:                                             ; preds = %1616
  %1631 = landingpad { ptr, i32 }
          cleanup
  br label %1640

1632:                                             ; preds = %1617
  %1633 = landingpad { ptr, i32 }
          cleanup
  br label %1639

1634:                                             ; preds = %1618
  %1635 = landingpad { ptr, i32 }
          cleanup
  br label %1638

1636:                                             ; preds = %1619
  %1637 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #7
  br label %1638

1638:                                             ; preds = %1636, %1634
  %.pn436 = phi { ptr, i32 } [ %1637, %1636 ], [ %1635, %1634 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  br label %1639

1639:                                             ; preds = %1638, %1632
  %.pn436.pn = phi { ptr, i32 } [ %.pn436, %1638 ], [ %1633, %1632 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %372) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #7
  br label %1640

1640:                                             ; preds = %1639, %1630
  %.pn436.pn.pn = phi { ptr, i32 } [ %.pn436.pn, %1639 ], [ %1631, %1630 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %371) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #7
  br label %1641

1641:                                             ; preds = %1640, %1628
  %.pn436.pn.pn.pn = phi { ptr, i32 } [ %.pn436.pn.pn, %1640 ], [ %1629, %1628 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %369) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %368) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #7
  br label %1679

1642:                                             ; preds = %1622
  %1643 = landingpad { ptr, i32 }
          cleanup
  br label %1655

1644:                                             ; preds = %1623
  %1645 = landingpad { ptr, i32 }
          cleanup
  br label %1654

1646:                                             ; preds = %1624
  %1647 = landingpad { ptr, i32 }
          cleanup
  br label %1653

1648:                                             ; preds = %1625
  %1649 = landingpad { ptr, i32 }
          cleanup
  br label %1652

1650:                                             ; preds = %1626
  %1651 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  br label %1652

1652:                                             ; preds = %1650, %1648
  %.pn519 = phi { ptr, i32 } [ %1651, %1650 ], [ %1649, %1648 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %381) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %380) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #7
  br label %1653

1653:                                             ; preds = %1652, %1646
  %.pn519.pn = phi { ptr, i32 } [ %.pn519, %1652 ], [ %1647, %1646 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %379) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %378) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #7
  br label %1654

1654:                                             ; preds = %1653, %1644
  %.pn519.pn.pn = phi { ptr, i32 } [ %.pn519.pn, %1653 ], [ %1645, %1644 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %377) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %377) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %376) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  br label %1655

1655:                                             ; preds = %1654, %1642
  %.pn519.pn.pn.pn = phi { ptr, i32 } [ %.pn519.pn.pn, %1654 ], [ %1643, %1642 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %375) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %374) #7
  br label %1679

1656:                                             ; preds = %1621
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %335) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %335) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %382) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %383) #7
  store i32 4, ptr %383, align 4, !tbaa !5
  %1657 = getelementptr inbounds i8, ptr %383, i64 4
  store i32 5, ptr %1657, align 4, !tbaa !5
  %1658 = getelementptr inbounds i8, ptr %383, i64 8
  store i32 6, ptr %1658, align 4, !tbaa !5
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %382, ptr nonnull %383, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %383) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %384) #7
  %1659 = call ptr @_ZN3cgp8numarrayIiE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %382)
  store ptr %1659, ptr %384, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %385) #7
  %1660 = call ptr @_ZN3cgp8numarrayIiE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %382)
  store ptr %1660, ptr %385, align 8
  %1661 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef nonnull align 8 dereferenceable(8) %385) #7
  br i1 %1661, label %.lr.ph.preheader, label %._crit_edge.thread

.lr.ph.preheader:                                 ; preds = %1656
  %1662 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %.not499.peel = icmp eq i32 %1663, 4
  br i1 %.not499.peel, label %1664, label %1680

1664:                                             ; preds = %.lr.ph.preheader
  %1665 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1666 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef nonnull align 8 dereferenceable(8) %385) #7
  br i1 %1666, label %1667, label %._crit_edge.thread

1667:                                             ; preds = %1664
  %1668 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %.not500.peel742 = icmp eq i32 %1669, 5
  br i1 %.not500.peel742, label %1670, label %1700

1670:                                             ; preds = %1667
  %1671 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1672 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef nonnull align 8 dereferenceable(8) %385) #7
  br i1 %1672, label %1673, label %._crit_edge.thread

1673:                                             ; preds = %1670
  %1674 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %.not501.peel752 = icmp eq i32 %1675, 6
  br i1 %.not501.peel752, label %1676, label %1720

1676:                                             ; preds = %1673
  %1677 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1678 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef nonnull align 8 dereferenceable(8) %385) #7
  br i1 %1678, label %.lr.ph.peel.next746, label %._crit_edge.thread772

._crit_edge.thread772:                            ; preds = %1676
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %385) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #7
  br label %1765

._crit_edge.thread:                               ; preds = %1656, %1664, %1670
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %385) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #7
  br label %1745

._crit_edge:                                      ; preds = %.lr.ph.peel.next746
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %385) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #7
  %.not441 = icmp eq i32 %1741, 3
  br i1 %.not441, label %1765, label %1745

1679:                                             ; preds = %1655, %1641, %1614, %1600, %1573, %1559
  %.pn529.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn529.pn.pn.pn, %1573 ], [ %.pn524.pn.pn.pn, %1614 ], [ %.pn519.pn.pn.pn, %1655 ], [ %.pn436.pn.pn.pn, %1641 ], [ %.pn431.pn.pn.pn, %1600 ], [ %.pn426.pn.pn.pn, %1559 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %335) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %335) #7
  br label %1998

1680:                                             ; preds = %.lr.ph.preheader
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %386) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %387) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %387) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %386, ptr noundef nonnull @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %387)
          to label %1681 unwind label %1686

1681:                                             ; preds = %1680
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %388) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %389) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %389) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %389)
          to label %1682 unwind label %1688

1682:                                             ; preds = %1681
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %390) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %391) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %391)
          to label %1683 unwind label %1690

1683:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %392) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %393) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %393) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %392, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %393)
          to label %1684 unwind label %1692

1684:                                             ; preds = %1683
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %386, ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef nonnull align 8 dereferenceable(32) %392, i32 noundef 85) #8
          to label %1685 unwind label %1694

1685:                                             ; preds = %1684
  unreachable

1686:                                             ; preds = %1680
  %1687 = landingpad { ptr, i32 }
          cleanup
  br label %1699

1688:                                             ; preds = %1681
  %1689 = landingpad { ptr, i32 }
          cleanup
  br label %1698

1690:                                             ; preds = %1682
  %1691 = landingpad { ptr, i32 }
          cleanup
  br label %1697

1692:                                             ; preds = %1683
  %1693 = landingpad { ptr, i32 }
          cleanup
  br label %1696

1694:                                             ; preds = %1684
  %1695 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %392) #7
  br label %1696

1696:                                             ; preds = %1694, %1692
  %.pn512 = phi { ptr, i32 } [ %1695, %1694 ], [ %1693, %1692 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %393) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %393) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %392) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #7
  br label %1697

1697:                                             ; preds = %1696, %1690
  %.pn512.pn = phi { ptr, i32 } [ %.pn512, %1696 ], [ %1691, %1690 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %391) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %390) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #7
  br label %1698

1698:                                             ; preds = %1697, %1688
  %.pn512.pn.pn = phi { ptr, i32 } [ %.pn512.pn, %1697 ], [ %1689, %1688 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %389) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %389) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %388) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #7
  br label %1699

1699:                                             ; preds = %1698, %1686
  %.pn512.pn.pn.pn = phi { ptr, i32 } [ %.pn512.pn.pn, %1698 ], [ %1687, %1686 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %387) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %387) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %386) #7
  br label %1744

1700:                                             ; preds = %1667
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %394) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %395) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %395) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %395)
          to label %1701 unwind label %1706

1701:                                             ; preds = %1700
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %396) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %397) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %397)
          to label %1702 unwind label %1708

1702:                                             ; preds = %1701
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %398) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %399) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %398, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %399)
          to label %1703 unwind label %1710

1703:                                             ; preds = %1702
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %400) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %401) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %401) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %401)
          to label %1704 unwind label %1712

1704:                                             ; preds = %1703
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef nonnull align 8 dereferenceable(32) %398, ptr noundef nonnull align 8 dereferenceable(32) %400, i32 noundef 86) #8
          to label %1705 unwind label %1714

1705:                                             ; preds = %1704
  unreachable

1706:                                             ; preds = %1700
  %1707 = landingpad { ptr, i32 }
          cleanup
  br label %1719

1708:                                             ; preds = %1701
  %1709 = landingpad { ptr, i32 }
          cleanup
  br label %1718

1710:                                             ; preds = %1702
  %1711 = landingpad { ptr, i32 }
          cleanup
  br label %1717

1712:                                             ; preds = %1703
  %1713 = landingpad { ptr, i32 }
          cleanup
  br label %1716

1714:                                             ; preds = %1704
  %1715 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %400) #7
  br label %1716

1716:                                             ; preds = %1714, %1712
  %.pn507 = phi { ptr, i32 } [ %1715, %1714 ], [ %1713, %1712 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %401) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %401) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %400) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %398) #7
  br label %1717

1717:                                             ; preds = %1716, %1710
  %.pn507.pn = phi { ptr, i32 } [ %.pn507, %1716 ], [ %1711, %1710 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %399) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %398) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #7
  br label %1718

1718:                                             ; preds = %1717, %1708
  %.pn507.pn.pn = phi { ptr, i32 } [ %.pn507.pn, %1717 ], [ %1709, %1708 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %397) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %396) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #7
  br label %1719

1719:                                             ; preds = %1718, %1706
  %.pn507.pn.pn.pn = phi { ptr, i32 } [ %.pn507.pn.pn, %1718 ], [ %1707, %1706 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %395) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %395) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %394) #7
  br label %1744

1720:                                             ; preds = %1673
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %402) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %403) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %402, ptr noundef nonnull @.str.51, ptr noundef nonnull align 1 dereferenceable(1) %403)
          to label %1721 unwind label %1726

1721:                                             ; preds = %1720
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %404) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %405) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %405)
          to label %1722 unwind label %1728

1722:                                             ; preds = %1721
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %406) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %407) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %407)
          to label %1723 unwind label %1730

1723:                                             ; preds = %1722
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %408) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %409) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %409)
          to label %1724 unwind label %1732

1724:                                             ; preds = %1723
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %402, ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef nonnull align 8 dereferenceable(32) %408, i32 noundef 87) #8
          to label %1725 unwind label %1734

1725:                                             ; preds = %1724
  unreachable

1726:                                             ; preds = %1720
  %1727 = landingpad { ptr, i32 }
          cleanup
  br label %1739

1728:                                             ; preds = %1721
  %1729 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1730:                                             ; preds = %1722
  %1731 = landingpad { ptr, i32 }
          cleanup
  br label %1737

1732:                                             ; preds = %1723
  %1733 = landingpad { ptr, i32 }
          cleanup
  br label %1736

1734:                                             ; preds = %1724
  %1735 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #7
  br label %1736

1736:                                             ; preds = %1734, %1732
  %.pn502 = phi { ptr, i32 } [ %1735, %1734 ], [ %1733, %1732 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %409) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %408) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #7
  br label %1737

1737:                                             ; preds = %1736, %1730
  %.pn502.pn = phi { ptr, i32 } [ %.pn502, %1736 ], [ %1731, %1730 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %407) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %406) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #7
  br label %1738

1738:                                             ; preds = %1737, %1728
  %.pn502.pn.pn = phi { ptr, i32 } [ %.pn502.pn, %1737 ], [ %1729, %1728 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %405) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %404) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %402) #7
  br label %1739

1739:                                             ; preds = %1738, %1726
  %.pn502.pn.pn.pn = phi { ptr, i32 } [ %.pn502.pn.pn, %1738 ], [ %1727, %1726 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %403) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %402) #7
  br label %1744

.lr.ph.peel.next746:                              ; preds = %1676, %.lr.ph.peel.next746
  %.0362737 = phi i32 [ %1741, %.lr.ph.peel.next746 ], [ 3, %1676 ]
  %1740 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1741 = add nuw nsw i32 %.0362737, 1
  %1742 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #7
  %1743 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef nonnull align 8 dereferenceable(8) %385) #7
  br i1 %1743, label %.lr.ph.peel.next746, label %._crit_edge, !llvm.loop !13

1744:                                             ; preds = %1739, %1719, %1699
  %.pn512.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn512.pn.pn.pn, %1699 ], [ %.pn507.pn.pn.pn, %1719 ], [ %.pn502.pn.pn.pn, %1739 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %385) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #7
  br label %1776

1745:                                             ; preds = %._crit_edge.thread, %._crit_edge
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %410) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %411) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %411)
          to label %1746 unwind label %1751

1746:                                             ; preds = %1745
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %412) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %413) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %413)
          to label %1747 unwind label %1753

1747:                                             ; preds = %1746
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %414) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %415) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %414, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %415)
          to label %1748 unwind label %1755

1748:                                             ; preds = %1747
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %416) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %417) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %416, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %417)
          to label %1749 unwind label %1757

1749:                                             ; preds = %1748
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull align 8 dereferenceable(32) %414, ptr noundef nonnull align 8 dereferenceable(32) %416, i32 noundef 90) #8
          to label %1750 unwind label %1759

1750:                                             ; preds = %1749
  unreachable

1751:                                             ; preds = %1745
  %1752 = landingpad { ptr, i32 }
          cleanup
  br label %1764

1753:                                             ; preds = %1746
  %1754 = landingpad { ptr, i32 }
          cleanup
  br label %1763

1755:                                             ; preds = %1747
  %1756 = landingpad { ptr, i32 }
          cleanup
  br label %1762

1757:                                             ; preds = %1748
  %1758 = landingpad { ptr, i32 }
          cleanup
  br label %1761

1759:                                             ; preds = %1749
  %1760 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %416) #7
  br label %1761

1761:                                             ; preds = %1759, %1757
  %.pn494 = phi { ptr, i32 } [ %1760, %1759 ], [ %1758, %1757 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %417) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %416) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #7
  br label %1762

1762:                                             ; preds = %1761, %1755
  %.pn494.pn = phi { ptr, i32 } [ %.pn494, %1761 ], [ %1756, %1755 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %415) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %414) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  br label %1763

1763:                                             ; preds = %1762, %1753
  %.pn494.pn.pn = phi { ptr, i32 } [ %.pn494.pn, %1762 ], [ %1754, %1753 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %413) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %412) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #7
  br label %1764

1764:                                             ; preds = %1763, %1751
  %.pn494.pn.pn.pn = phi { ptr, i32 } [ %.pn494.pn.pn, %1763 ], [ %1752, %1751 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %411) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %410) #7
  br label %1776

1765:                                             ; preds = %._crit_edge.thread772, %._crit_edge
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %382) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %382) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %418) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %419) #7
  store i32 7, ptr %419, align 4, !tbaa !5
  %1766 = getelementptr inbounds i8, ptr %419, i64 4
  store i32 5, ptr %1766, align 4, !tbaa !5
  %1767 = getelementptr inbounds i8, ptr %419, i64 8
  store i32 -1, ptr %1767, align 4, !tbaa !5
  call void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %418, ptr nonnull %419, i64 3)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %419) #7
  %1768 = invoke noundef i32 @_ZN3cgp14size_in_memoryIiEEiRKNS_8numarrayIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %418)
          to label %1769 unwind label %1777

1769:                                             ; preds = %1765
  %.not442 = icmp eq i32 %1768, 12
  br i1 %.not442, label %1793, label %1770

1770:                                             ; preds = %1769
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %420) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %421) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %421)
          to label %1771 unwind label %1779

1771:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %422) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %423) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %423)
          to label %1772 unwind label %1781

1772:                                             ; preds = %1771
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %424) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %425) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %425) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %425)
          to label %1773 unwind label %1783

1773:                                             ; preds = %1772
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %426) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %427) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %427) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %426, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %427)
          to label %1774 unwind label %1785

1774:                                             ; preds = %1773
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef nonnull align 8 dereferenceable(32) %426, i32 noundef 95) #8
          to label %1775 unwind label %1787

1775:                                             ; preds = %1774
  unreachable

1776:                                             ; preds = %1764, %1744
  %.pn512.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn512.pn.pn.pn.pn, %1744 ], [ %.pn494.pn.pn.pn, %1764 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %382) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %382) #7
  br label %1998

1777:                                             ; preds = %1765
  %1778 = landingpad { ptr, i32 }
          cleanup
  br label %1849

1779:                                             ; preds = %1770
  %1780 = landingpad { ptr, i32 }
          cleanup
  br label %1792

1781:                                             ; preds = %1771
  %1782 = landingpad { ptr, i32 }
          cleanup
  br label %1791

1783:                                             ; preds = %1772
  %1784 = landingpad { ptr, i32 }
          cleanup
  br label %1790

1785:                                             ; preds = %1773
  %1786 = landingpad { ptr, i32 }
          cleanup
  br label %1789

1787:                                             ; preds = %1774
  %1788 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %426) #7
  br label %1789

1789:                                             ; preds = %1787, %1785
  %.pn488 = phi { ptr, i32 } [ %1788, %1787 ], [ %1786, %1785 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %427) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %427) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %426) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #7
  br label %1790

1790:                                             ; preds = %1789, %1783
  %.pn488.pn = phi { ptr, i32 } [ %.pn488, %1789 ], [ %1784, %1783 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %425) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %425) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %424) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #7
  br label %1791

1791:                                             ; preds = %1790, %1781
  %.pn488.pn.pn = phi { ptr, i32 } [ %.pn488.pn, %1790 ], [ %1782, %1781 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %423) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %422) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #7
  br label %1792

1792:                                             ; preds = %1791, %1779
  %.pn488.pn.pn.pn = phi { ptr, i32 } [ %.pn488.pn.pn, %1791 ], [ %1780, %1779 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %421) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %420) #7
  br label %1849

1793:                                             ; preds = %1769
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %428) #7
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %429) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %430) #7
  store i32 1, ptr %430, align 4, !tbaa !5
  %1794 = getelementptr inbounds i8, ptr %430, i64 4
  store i32 2, ptr %1794, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %429, ptr nonnull %430, i64 2)
          to label %1795 unwind label %.thread724

1795:                                             ; preds = %1793
  %1796 = getelementptr inbounds i8, ptr %429, i64 24
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %431) #7
  store i32 2, ptr %431, align 4, !tbaa !5
  %1797 = getelementptr inbounds i8, ptr %431, i64 4
  store i32 3, ptr %1797, align 4, !tbaa !5
  %1798 = getelementptr inbounds i8, ptr %431, i64 8
  store i32 4, ptr %1798, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1796, ptr nonnull %431, i64 3)
          to label %1799 unwind label %.thread775

1799:                                             ; preds = %1795
  %1800 = getelementptr inbounds i8, ptr %429, i64 48
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %432) #7
  store i32 -1, ptr %432, align 4, !tbaa !5
  invoke void @_ZN3cgp8numarrayIiEC2ESt16initializer_listIiE(ptr noundef nonnull align 8 dereferenceable(24) %1800, ptr nonnull %432, i64 1)
          to label %1801 unwind label %1818

1801:                                             ; preds = %1799
  invoke void @_ZN3cgp8numarrayINS0_IiEEEC2ESt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(24) %428, ptr nonnull %429, i64 3)
          to label %1802 unwind label %.thread781

1802:                                             ; preds = %1801
  %1803 = getelementptr inbounds i8, ptr %429, i64 48
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1803) #7
  %1804 = getelementptr inbounds i8, ptr %429, i64 24
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1804) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %429) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %432) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %431) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %430) #7
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %429) #7
  %1805 = invoke noundef i32 @_ZN3cgp14size_in_memoryINS_8numarrayIiEEEEiRKNS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(24) %428)
          to label %1806 unwind label %1823

1806:                                             ; preds = %1802
  %.not447 = icmp eq i32 %1805, 24
  br i1 %.not447, label %1839, label %1807

1807:                                             ; preds = %1806
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %433) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %434) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %434) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %433, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %434)
          to label %1808 unwind label %1825

1808:                                             ; preds = %1807
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %435) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %436) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %436) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %435, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %436)
          to label %1809 unwind label %1827

1809:                                             ; preds = %1808
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %437) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %438) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %438)
          to label %1810 unwind label %1829

1810:                                             ; preds = %1809
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %439) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %440) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %440)
          to label %1811 unwind label %1831

1811:                                             ; preds = %1810
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %433, ptr noundef nonnull align 8 dereferenceable(32) %435, ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull align 8 dereferenceable(32) %439, i32 noundef 98) #8
          to label %1812 unwind label %1833

1812:                                             ; preds = %1811
  unreachable

.thread724:                                       ; preds = %1793
  %1813 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %430) #7
  br label %.loopexit

.thread775:                                       ; preds = %1795
  %1814 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %431) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %430) #7
  br label %.preheader.preheader

.thread781:                                       ; preds = %1801
  %1815 = landingpad { ptr, i32 }
          cleanup
  %1816 = getelementptr inbounds i8, ptr %429, i64 48
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1816) #7
  %1817 = getelementptr inbounds i8, ptr %429, i64 24
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1817) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %429) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %432) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %431) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %430) #7
  br label %.loopexit

1818:                                             ; preds = %1799
  %1819 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %432) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %431) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %430) #7
  br label %.preheader.preheader

.preheader.preheader:                             ; preds = %1818, %.thread775
  %.pn443.pn780 = phi { ptr, i32 } [ %1814, %.thread775 ], [ %1819, %1818 ]
  %.0363779 = phi ptr [ %1796, %.thread775 ], [ %1800, %1818 ]
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %.preheader
  %1820 = phi ptr [ %1821, %.preheader ], [ %.0363779, %.preheader.preheader ]
  %1821 = getelementptr inbounds i8, ptr %1820, i64 -24
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1821) #7
  %1822 = icmp eq ptr %1821, %429
  br i1 %1822, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %.preheader, %.thread781, %.thread724
  %.pn443.pn.pn729 = phi { ptr, i32 } [ %1813, %.thread724 ], [ %1815, %.thread781 ], [ %.pn443.pn780, %.preheader ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %429) #7
  br label %1848

1823:                                             ; preds = %1802
  %1824 = landingpad { ptr, i32 }
          cleanup
  br label %1847

1825:                                             ; preds = %1807
  %1826 = landingpad { ptr, i32 }
          cleanup
  br label %1838

1827:                                             ; preds = %1808
  %1828 = landingpad { ptr, i32 }
          cleanup
  br label %1837

1829:                                             ; preds = %1809
  %1830 = landingpad { ptr, i32 }
          cleanup
  br label %1836

1831:                                             ; preds = %1810
  %1832 = landingpad { ptr, i32 }
          cleanup
  br label %1835

1833:                                             ; preds = %1811
  %1834 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #7
  br label %1835

1835:                                             ; preds = %1833, %1831
  %.pn481 = phi { ptr, i32 } [ %1834, %1833 ], [ %1832, %1831 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %440) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %439) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #7
  br label %1836

1836:                                             ; preds = %1835, %1829
  %.pn481.pn = phi { ptr, i32 } [ %.pn481, %1835 ], [ %1830, %1829 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %438) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %437) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #7
  br label %1837

1837:                                             ; preds = %1836, %1827
  %.pn481.pn.pn = phi { ptr, i32 } [ %.pn481.pn, %1836 ], [ %1828, %1827 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %436) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %436) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %435) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %433) #7
  br label %1838

1838:                                             ; preds = %1837, %1825
  %.pn481.pn.pn.pn = phi { ptr, i32 } [ %.pn481.pn.pn, %1837 ], [ %1826, %1825 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %434) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %434) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %433) #7
  br label %1847

1839:                                             ; preds = %1806
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %428) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %428) #7
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %418) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %418) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %441) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %442) #7
  store float 4.500000e+00, ptr %442, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %443) #7
  store float 0x4020666660000000, ptr %443, align 4, !tbaa !9
  call void @_ZN3cgp8numarrayIfE9linespaceERKfS3_i(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::numarray.3") align 8 %441, ptr noundef nonnull align 4 dereferenceable(4) %442, ptr noundef nonnull align 4 dereferenceable(4) %443, i32 noundef 6)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %443) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %442) #7
  %1840 = call noundef i32 @_ZNK3cgp8numarrayIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %441)
  %.not448 = icmp eq i32 %1840, 6
  br i1 %.not448, label %1866, label %1841

1841:                                             ; preds = %1839
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %444) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %445) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %445) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %444, ptr noundef nonnull @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %445)
          to label %1842 unwind label %1852

1842:                                             ; preds = %1841
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %446) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %447) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %447)
          to label %1843 unwind label %1854

1843:                                             ; preds = %1842
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %448) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %449) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %449)
          to label %1844 unwind label %1856

1844:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %450) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %451) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %451)
          to label %1845 unwind label %1858

1845:                                             ; preds = %1844
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %444, ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull align 8 dereferenceable(32) %450, i32 noundef 104) #8
          to label %1846 unwind label %1860

1846:                                             ; preds = %1845
  unreachable

1847:                                             ; preds = %1838, %1823
  %.pn481.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn481.pn.pn.pn, %1838 ], [ %1824, %1823 ]
  call void @_ZN3cgp8numarrayINS0_IiEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %428) #7
  br label %1848

1848:                                             ; preds = %1847, %.loopexit
  %.pn481.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn481.pn.pn.pn.pn, %1847 ], [ %.pn443.pn.pn729, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %428) #7
  br label %1849

1849:                                             ; preds = %1848, %1792, %1777
  %.pn488.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn488.pn.pn.pn, %1792 ], [ %.pn481.pn.pn.pn.pn.pn, %1848 ], [ %1778, %1777 ]
  call void @_ZN3cgp8numarrayIiED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %418) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %418) #7
  br label %1998

1850:                                             ; preds = %1894, %1892, %1868, %1866
  %1851 = landingpad { ptr, i32 }
          cleanup
  br label %1929

1852:                                             ; preds = %1841
  %1853 = landingpad { ptr, i32 }
          cleanup
  br label %1865

1854:                                             ; preds = %1842
  %1855 = landingpad { ptr, i32 }
          cleanup
  br label %1864

1856:                                             ; preds = %1843
  %1857 = landingpad { ptr, i32 }
          cleanup
  br label %1863

1858:                                             ; preds = %1844
  %1859 = landingpad { ptr, i32 }
          cleanup
  br label %1862

1860:                                             ; preds = %1845
  %1861 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #7
  br label %1862

1862:                                             ; preds = %1860, %1858
  %.pn475 = phi { ptr, i32 } [ %1861, %1860 ], [ %1859, %1858 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %451) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %450) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #7
  br label %1863

1863:                                             ; preds = %1862, %1856
  %.pn475.pn = phi { ptr, i32 } [ %.pn475, %1862 ], [ %1857, %1856 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %449) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %448) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #7
  br label %1864

1864:                                             ; preds = %1863, %1854
  %.pn475.pn.pn = phi { ptr, i32 } [ %.pn475.pn, %1863 ], [ %1855, %1854 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %447) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %446) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  br label %1865

1865:                                             ; preds = %1864, %1852
  %.pn475.pn.pn.pn = phi { ptr, i32 } [ %.pn475.pn.pn, %1864 ], [ %1853, %1852 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %445) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %445) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %444) #7
  br label %1929

1866:                                             ; preds = %1839
  %1867 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIfEixEi(ptr noundef nonnull align 8 dereferenceable(24) %441, i32 noundef 0)
          to label %1868 unwind label %1850

1868:                                             ; preds = %1866
  %1869 = load float, ptr %1867, align 4, !tbaa !9
  %1870 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %1869, float noundef 4.500000e+00)
          to label %1871 unwind label %1850

1871:                                             ; preds = %1868
  br i1 %1870, label %1892, label %1872

1872:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %452) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %453) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %453) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %453)
          to label %1873 unwind label %1878

1873:                                             ; preds = %1872
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %454) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %455) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %455)
          to label %1874 unwind label %1880

1874:                                             ; preds = %1873
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %456) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %457) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %457) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %457)
          to label %1875 unwind label %1882

1875:                                             ; preds = %1874
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %458) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %459) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %459) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %458, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %459)
          to label %1876 unwind label %1884

1876:                                             ; preds = %1875
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %458, i32 noundef 105) #8
          to label %1877 unwind label %1886

1877:                                             ; preds = %1876
  unreachable

1878:                                             ; preds = %1872
  %1879 = landingpad { ptr, i32 }
          cleanup
  br label %1891

1880:                                             ; preds = %1873
  %1881 = landingpad { ptr, i32 }
          cleanup
  br label %1890

1882:                                             ; preds = %1874
  %1883 = landingpad { ptr, i32 }
          cleanup
  br label %1889

1884:                                             ; preds = %1875
  %1885 = landingpad { ptr, i32 }
          cleanup
  br label %1888

1886:                                             ; preds = %1876
  %1887 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %458) #7
  br label %1888

1888:                                             ; preds = %1886, %1884
  %.pn470 = phi { ptr, i32 } [ %1887, %1886 ], [ %1885, %1884 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %459) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %459) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %458) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #7
  br label %1889

1889:                                             ; preds = %1888, %1882
  %.pn470.pn = phi { ptr, i32 } [ %.pn470, %1888 ], [ %1883, %1882 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %457) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %457) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %456) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #7
  br label %1890

1890:                                             ; preds = %1889, %1880
  %.pn470.pn.pn = phi { ptr, i32 } [ %.pn470.pn, %1889 ], [ %1881, %1880 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %455) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %454) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #7
  br label %1891

1891:                                             ; preds = %1890, %1878
  %.pn470.pn.pn.pn = phi { ptr, i32 } [ %.pn470.pn.pn, %1890 ], [ %1879, %1878 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %453) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %453) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %452) #7
  br label %1929

1892:                                             ; preds = %1871
  %1893 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIfEixEi(ptr noundef nonnull align 8 dereferenceable(24) %441, i32 noundef 5)
          to label %1894 unwind label %1850

1894:                                             ; preds = %1892
  %1895 = load float, ptr %1893, align 4, !tbaa !9
  %1896 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %1895, float noundef 0x4020666660000000)
          to label %1897 unwind label %1850

1897:                                             ; preds = %1894
  br i1 %1896, label %1918, label %1898

1898:                                             ; preds = %1897
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %460) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %461) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %461) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %461)
          to label %1899 unwind label %1904

1899:                                             ; preds = %1898
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %462) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %463) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %463)
          to label %1900 unwind label %1906

1900:                                             ; preds = %1899
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %464) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %465) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %465)
          to label %1901 unwind label %1908

1901:                                             ; preds = %1900
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %466) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %467) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %467) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %467)
          to label %1902 unwind label %1910

1902:                                             ; preds = %1901
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef nonnull align 8 dereferenceable(32) %466, i32 noundef 106) #8
          to label %1903 unwind label %1912

1903:                                             ; preds = %1902
  unreachable

1904:                                             ; preds = %1898
  %1905 = landingpad { ptr, i32 }
          cleanup
  br label %1917

1906:                                             ; preds = %1899
  %1907 = landingpad { ptr, i32 }
          cleanup
  br label %1916

1908:                                             ; preds = %1900
  %1909 = landingpad { ptr, i32 }
          cleanup
  br label %1915

1910:                                             ; preds = %1901
  %1911 = landingpad { ptr, i32 }
          cleanup
  br label %1914

1912:                                             ; preds = %1902
  %1913 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #7
  br label %1914

1914:                                             ; preds = %1912, %1910
  %.pn465 = phi { ptr, i32 } [ %1913, %1912 ], [ %1911, %1910 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %467) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %467) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %466) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %464) #7
  br label %1915

1915:                                             ; preds = %1914, %1908
  %.pn465.pn = phi { ptr, i32 } [ %.pn465, %1914 ], [ %1909, %1908 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %465) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %464) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #7
  br label %1916

1916:                                             ; preds = %1915, %1906
  %.pn465.pn.pn = phi { ptr, i32 } [ %.pn465.pn, %1915 ], [ %1907, %1906 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %463) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %462) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #7
  br label %1917

1917:                                             ; preds = %1916, %1904
  %.pn465.pn.pn.pn = phi { ptr, i32 } [ %.pn465.pn.pn, %1916 ], [ %1905, %1904 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %461) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %461) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %460) #7
  br label %1929

1918:                                             ; preds = %1897
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %441) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %441) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %468) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %469) #7
  store <4 x float> <float 4.500000e+00, float 0x4020666660000000, float 0x4018666660000000, float 0xC00CCCCCC0000000>, ptr %469, align 16, !tbaa !9
  call void @_ZN3cgp8numarrayIfEC2ESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %468, ptr nonnull %469, i64 4)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %469) #7
  %1919 = invoke noundef float @_ZN3cgp3minIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %468)
          to label %1920 unwind label %1930

1920:                                             ; preds = %1918
  %1921 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %1919, float noundef 0xC00CCCCCC0000000)
          to label %1922 unwind label %1930

1922:                                             ; preds = %1920
  br i1 %1921, label %1946, label %1923

1923:                                             ; preds = %1922
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %470) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %471) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %471)
          to label %1924 unwind label %1932

1924:                                             ; preds = %1923
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %472) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %473) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %473)
          to label %1925 unwind label %1934

1925:                                             ; preds = %1924
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %474) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %475) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %475) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %474, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %475)
          to label %1926 unwind label %1936

1926:                                             ; preds = %1925
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %476) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %477) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %477) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %476, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %477)
          to label %1927 unwind label %1938

1927:                                             ; preds = %1926
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef nonnull align 8 dereferenceable(32) %474, ptr noundef nonnull align 8 dereferenceable(32) %476, i32 noundef 112) #8
          to label %1928 unwind label %1940

1928:                                             ; preds = %1927
  unreachable

1929:                                             ; preds = %1917, %1891, %1865, %1850
  %.pn475.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn475.pn.pn.pn, %1865 ], [ %.pn470.pn.pn.pn, %1891 ], [ %.pn465.pn.pn.pn, %1917 ], [ %1851, %1850 ]
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %441) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %441) #7
  br label %1998

1930:                                             ; preds = %1973, %1971, %1948, %1946, %1920, %1918
  %1931 = landingpad { ptr, i32 }
          cleanup
  br label %1997

1932:                                             ; preds = %1923
  %1933 = landingpad { ptr, i32 }
          cleanup
  br label %1945

1934:                                             ; preds = %1924
  %1935 = landingpad { ptr, i32 }
          cleanup
  br label %1944

1936:                                             ; preds = %1925
  %1937 = landingpad { ptr, i32 }
          cleanup
  br label %1943

1938:                                             ; preds = %1926
  %1939 = landingpad { ptr, i32 }
          cleanup
  br label %1942

1940:                                             ; preds = %1927
  %1941 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %476) #7
  br label %1942

1942:                                             ; preds = %1940, %1938
  %.pn459 = phi { ptr, i32 } [ %1941, %1940 ], [ %1939, %1938 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %477) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %477) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %476) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %474) #7
  br label %1943

1943:                                             ; preds = %1942, %1936
  %.pn459.pn = phi { ptr, i32 } [ %.pn459, %1942 ], [ %1937, %1936 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %475) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %475) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %474) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #7
  br label %1944

1944:                                             ; preds = %1943, %1934
  %.pn459.pn.pn = phi { ptr, i32 } [ %.pn459.pn, %1943 ], [ %1935, %1934 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %473) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %472) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #7
  br label %1945

1945:                                             ; preds = %1944, %1932
  %.pn459.pn.pn.pn = phi { ptr, i32 } [ %.pn459.pn.pn, %1944 ], [ %1933, %1932 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %471) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %470) #7
  br label %1997

1946:                                             ; preds = %1922
  %1947 = invoke noundef float @_ZN3cgp3maxIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %468)
          to label %1948 unwind label %1930

1948:                                             ; preds = %1946
  %1949 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef %1947, float noundef 0x4020666660000000)
          to label %1950 unwind label %1930

1950:                                             ; preds = %1948
  br i1 %1949, label %1971, label %1951

1951:                                             ; preds = %1950
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %478) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %479) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef nonnull @.str.59, ptr noundef nonnull align 1 dereferenceable(1) %479)
          to label %1952 unwind label %1957

1952:                                             ; preds = %1951
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %480) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %481) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %481)
          to label %1953 unwind label %1959

1953:                                             ; preds = %1952
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %482) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %483) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %483)
          to label %1954 unwind label %1961

1954:                                             ; preds = %1953
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %484) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %485) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %485)
          to label %1955 unwind label %1963

1955:                                             ; preds = %1954
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef nonnull align 8 dereferenceable(32) %484, i32 noundef 113) #8
          to label %1956 unwind label %1965

1956:                                             ; preds = %1955
  unreachable

1957:                                             ; preds = %1951
  %1958 = landingpad { ptr, i32 }
          cleanup
  br label %1970

1959:                                             ; preds = %1952
  %1960 = landingpad { ptr, i32 }
          cleanup
  br label %1969

1961:                                             ; preds = %1953
  %1962 = landingpad { ptr, i32 }
          cleanup
  br label %1968

1963:                                             ; preds = %1954
  %1964 = landingpad { ptr, i32 }
          cleanup
  br label %1967

1965:                                             ; preds = %1955
  %1966 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #7
  br label %1967

1967:                                             ; preds = %1965, %1963
  %.pn454 = phi { ptr, i32 } [ %1966, %1965 ], [ %1964, %1963 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %485) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %484) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #7
  br label %1968

1968:                                             ; preds = %1967, %1961
  %.pn454.pn = phi { ptr, i32 } [ %.pn454, %1967 ], [ %1962, %1961 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %483) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %482) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %480) #7
  br label %1969

1969:                                             ; preds = %1968, %1959
  %.pn454.pn.pn = phi { ptr, i32 } [ %.pn454.pn, %1968 ], [ %1960, %1959 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %481) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %480) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %478) #7
  br label %1970

1970:                                             ; preds = %1969, %1957
  %.pn454.pn.pn.pn = phi { ptr, i32 } [ %.pn454.pn.pn, %1969 ], [ %1958, %1957 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %479) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %478) #7
  br label %1997

1971:                                             ; preds = %1950
  %1972 = invoke noundef float @_ZN3cgp3sumIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %468)
          to label %1973 unwind label %1930

1973:                                             ; preds = %1971
  %1974 = invoke noundef zeroext i1 @_ZN3cgp8is_equalEfd(float noundef %1972, double noundef 0x402E66664CCCCCCD)
          to label %1975 unwind label %1930

1975:                                             ; preds = %1973
  br i1 %1974, label %1996, label %1976

1976:                                             ; preds = %1975
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %486) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %487) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %487) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %486, ptr noundef nonnull @.str.60, ptr noundef nonnull align 1 dereferenceable(1) %487)
          to label %1977 unwind label %1982

1977:                                             ; preds = %1976
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %488) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %489) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %489) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %488, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %489)
          to label %1978 unwind label %1984

1978:                                             ; preds = %1977
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %490) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %491) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %490, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %491)
          to label %1979 unwind label %1986

1979:                                             ; preds = %1978
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %492) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %493) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %493) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %492, ptr noundef nonnull @__func__._ZN8cgp_test13test_numarrayEv, ptr noundef nonnull align 1 dereferenceable(1) %493)
          to label %1980 unwind label %1988

1980:                                             ; preds = %1979
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %486, ptr noundef nonnull align 8 dereferenceable(32) %488, ptr noundef nonnull align 8 dereferenceable(32) %490, ptr noundef nonnull align 8 dereferenceable(32) %492, i32 noundef 114) #8
          to label %1981 unwind label %1990

1981:                                             ; preds = %1980
  unreachable

1982:                                             ; preds = %1976
  %1983 = landingpad { ptr, i32 }
          cleanup
  br label %1995

1984:                                             ; preds = %1977
  %1985 = landingpad { ptr, i32 }
          cleanup
  br label %1994

1986:                                             ; preds = %1978
  %1987 = landingpad { ptr, i32 }
          cleanup
  br label %1993

1988:                                             ; preds = %1979
  %1989 = landingpad { ptr, i32 }
          cleanup
  br label %1992

1990:                                             ; preds = %1980
  %1991 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %492) #7
  br label %1992

1992:                                             ; preds = %1990, %1988
  %.pn449 = phi { ptr, i32 } [ %1991, %1990 ], [ %1989, %1988 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %493) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %493) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %492) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %490) #7
  br label %1993

1993:                                             ; preds = %1992, %1986
  %.pn449.pn = phi { ptr, i32 } [ %.pn449, %1992 ], [ %1987, %1986 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %491) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %490) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %488) #7
  br label %1994

1994:                                             ; preds = %1993, %1984
  %.pn449.pn.pn = phi { ptr, i32 } [ %.pn449.pn, %1993 ], [ %1985, %1984 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %489) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %489) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %488) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %486) #7
  br label %1995

1995:                                             ; preds = %1994, %1982
  %.pn449.pn.pn.pn = phi { ptr, i32 } [ %.pn449.pn.pn, %1994 ], [ %1983, %1982 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %487) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %487) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %486) #7
  br label %1997

1996:                                             ; preds = %1975
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %468) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %468) #7
  ret void

1997:                                             ; preds = %1995, %1970, %1945, %1930
  %.pn459.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn459.pn.pn.pn, %1945 ], [ %.pn454.pn.pn.pn, %1970 ], [ %.pn449.pn.pn.pn, %1995 ], [ %1931, %1930 ]
  call void @_ZN3cgp8numarrayIfED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %468) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %468) #7
  br label %1998

1998:                                             ; preds = %1997, %1929, %1849, %1776, %1679, %1545, %1450, %1201, %1087, %861, %729, %597
  %.pn709.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn709.pn.pn.pn.pn, %597 ], [ %.pn693.pn.pn.pn.pn, %729 ], [ %.pn672.pn.pn.pn.pn, %861 ], [ %.pn651.pn.pn.pn.pn, %1087 ], [ %.pn605.pn.pn.pn.pn, %1201 ], [ %.pn588.pn.pn.pn.pn.pn, %1450 ], [ %.pn547.pn.pn.pn.pn, %1545 ], [ %.pn529.pn.pn.pn.pn, %1679 ], [ %.pn512.pn.pn.pn.pn.pn, %1776 ], [ %.pn488.pn.pn.pn.pn, %1849 ], [ %.pn475.pn.pn.pn.pn, %1929 ], [ %.pn459.pn.pn.pn.pn, %1997 ]
  resume { ptr, i32 } %.pn709.pn.pn.pn.pn.pn
}

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: noreturn
declare void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfEEbRKNS_8numarrayIT_EES5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIiEclEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #0 align 2

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN3cgp8is_equalERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3cgp14size_in_memoryIiEEiRKNS_8numarrayIT_EE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3cgp14size_in_memoryINS_8numarrayIiEEEEiRKNS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp8numarrayIfE9linespaceERKfS3_i(ptr dead_on_unwind noalias writable sret(%"struct.cgp::numarray.3") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #0 align 2

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

declare noundef zeroext i1 @_ZN3cgp8is_equalEff(float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp8numarrayIfEixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN3cgp3minIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN3cgp3maxIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN3cgp8is_equalEfd(float noundef, double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN3cgp3sumIfEET_RKNS_8numarrayIS1_EE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { "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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{i64 0, i64 20, !12}
!12 = !{!7, !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.peeled.count", i32 3}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass